Skip to content

План работы

Стадии разработки ПО

Классически разработка программного обеспечения состоит из следующих шагов (software development lifecycle - SDLC):

  1. Бизнес-анализ
  2. Архитектура и дизайн
  3. Разработка
  4. Развертывание
  5. Тестирование и QA
  6. Документирование
  7. Поддержка

С пятого шага можно вернуться на второй или третий для корректировки требований и плана, и таких итераций может быть много.

Рассмотрим каждую стадию отдельно.

Бизнес-анализ

Цель данной стадии в том, чтобы изучить представление заказчика о том, что он хочет получить, и перевести его на язык, понятный разработчикам. Даже если клиент и разработчик - это вы. Проблема кроется в восприятии, терминах и понятийном аппарате в целом. Недопонимание может привести к нарушению сроков, «раздутому» бюджету проекта и несоответствию результата целям бизнеса.

В процессе работы аналитика, как интерпретатора с языка бизнеса на язык IT, как правило, возникают следующие артефакты:

  • Видение проекта. Определяются границы проекта.
  • Скоуп задач. Позволяет определить, кто и какие задачи будет выполнять.
  • Описание сущностей. Описание логических связей между сущностями, потоков данных.
  • Диаграммы. Используются для наглядного описания процессов, алгоритмов, взаимосвязей между сущностями и т.д.
  • Описание поведения UI интерфейса. Нужно для более чёткого понимания, как работает интерфейс, какие существуют правила и как обрабатываются альтернативные сценарии.
  • Нефункциональные требования. Касаются производительности, безопасности и т.д.
  • Пользовательская документация. Объясняет, как пользователю использовать программу.

Архитектура и дизайн

Архитектура системы описывает ее основные компоненты, их взаимосвязи и способы взаимодействия друг с другом.

Она определяет структурированное решение, удовлетворяющее всем техническим и эксплуатационным требованиям, оптимизируя при этом общие атрибуты качества, такие как производительность и безопасность.

Кроме того, она включает в себя набор важных решений, связанных с разработкой программного обеспечения, и каждое из этих решений может оказать значительное влияние на качество, сопровождаемость, производительность и общий успех конечного продукта. Эти решения включают в себя:

  • Выбор основных структурных элементов и их интерфейсов, из которых состоит система.
  • Поведение, определяемое взаимодействием между этими элементами.
  • Объединение этих структурных и поведенческих элементов в бОльшую подсистему.
  • Согласование архитектурных решений с бизнес-целями.
  • Архитектурное руководство по стилю (style guide) для дальнейшей разработки.

Хорошая архитектура позволяет комфортно разрабатывать проект и удобно поддерживать и модифицировать его в долгосрочной перспективе.

Дизайн программной системы предусматривает разработку спецификации (software requirements specification - SRS), которая описывает элементы системы, их соответствие и совместную работу для выполнения требований, предъявляемых к системе. Дизайн выполняет роль чертежа в процессе разработки.

Разработка

Разработка включает в себя реализацию поставленных в спецификации задач.

Развертывание

Развертывание на сервере. CI/CD для автоматизации не только доставки, билда и деплоя, но и тестирования, бэкапа, версионности.

Тестирование и QA

Тестирование на первом этапе ручное, после - интеграционные (e2e) тесты.

Документирование

Данное руководство будет служить документацией, пока не понадобится отдельная.

Поддержка

Поддержка включает в себя не только оказание помощи пользователям и исправление ошибок, но и получение обратной связи от них с целью улучшения продукта.