План работы
Стадии разработки ПО
Классически разработка программного обеспечения состоит из следующих шагов (software development lifecycle - SDLC):
- Бизнес-анализ
- Архитектура и дизайн
- Разработка
- Развертывание
- Тестирование и QA
- Документирование
- Поддержка
С пятого шага можно вернуться на второй или третий для корректировки требований и плана, и таких итераций может быть много.
Рассмотрим каждую стадию отдельно.
Бизнес-анализ
Цель данной стадии в том, чтобы изучить представление заказчика о том, что он хочет получить, и перевести его на язык, понятный разработчикам. Даже если клиент и разработчик - это вы. Проблема кроется в восприятии, терминах и понятийном аппарате в целом. Недопонимание может привести к нарушению сроков, «раздутому» бюджету проекта и несоответствию результата целям бизнеса.
В процессе работы аналитика, как интерпретатора с языка бизнеса на язык IT, как правило, возникают следующие артефакты:
- Видение проекта. Определяются границы проекта.
- Скоуп задач. Позволяет определить, кто и какие задачи будет выполнять.
- Описание сущностей. Описание логических связей между сущностями, потоков данных.
- Диаграммы. Используются для наглядного описания процессов, алгоритмов, взаимосвязей между сущностями и т.д.
- Описание поведения UI интерфейса. Нужно для более чёткого понимания, как работает интерфейс, какие существуют правила и как обрабатываются альтернативные сценарии.
- Нефункциональные требования. Касаются производительности, безопасности и т.д.
- Пользовательская документация. Объясняет, как пользователю использовать программу.
Архитектура и дизайн
Архитектура системы описывает ее основные компоненты, их взаимосвязи и способы взаимодействия друг с другом.
Она определяет структурированное решение, удовлетворяющее всем техническим и эксплуатационным требованиям, оптимизируя при этом общие атрибуты качества, такие как производительность и безопасность.
Кроме того, она включает в себя набор важных решений, связанных с разработкой программного обеспечения, и каждое из этих решений может оказать значительное влияние на качество, сопровождаемость, производительность и общий успех конечного продукта. Эти решения включают в себя:
- Выбор основных структурных элементов и их интерфейсов, из которых состоит система.
- Поведение, определяемое взаимодействием между этими элементами.
- Объединение этих структурных и поведенческих элементов в бОльшую подсистему.
- Согласование архитектурных решений с бизнес-целями.
- Архитектурное руководство по стилю (style guide) для дальнейшей разработки.
Хорошая архитектура позволяет комфортно разрабатывать проект и удобно поддерживать и модифицировать его в долгосрочной перспективе.
Дизайн программной системы предусматривает разработку спецификации (software requirements specification - SRS), которая описывает элементы системы, их соответствие и совместную работу для выполнения требований, предъявляемых к системе. Дизайн выполняет роль чертежа в процессе разработки.
Разработка
Разработка включает в себя реализацию поставленных в спецификации задач.
Развертывание
Развертывание на сервере. CI/CD для автоматизации не только доставки, билда и деплоя, но и тестирования, бэкапа, версионности.
Тестирование и QA
Тестирование на первом этапе ручное, после - интеграционные (e2e) тесты.
Документирование
Данное руководство будет служить документацией, пока не понадобится отдельная.
Поддержка
Поддержка включает в себя не только оказание помощи пользователям и исправление ошибок, но и получение обратной связи от них с целью улучшения продукта.