+7 (499) 638-64-11
Попробовать
Постановка и автоматизация процессов разработки ПО

Использование стадий процесса

Любой проект подразумевает выполнение некоторых типовых активностей и создание артефактов ради достижения поставленной цели, что подразумевает наличие какого-то процесса. Процессы могут быть формализованными, общеизвестными или ad-hoc, то есть вашими собственными. Даже если вы считаете, что в вашем проекте нет никакого процесса, то это лишь от того, что вы пока не задавались целью его описать.

 

Любой процесс, связанный с разработкой ПО, делится на этапы, в каждом из которых обозначаются цели этапа, полезные результаты (deliverables), задачи по получению этих результатов, распределение зон ответственности между типовыми ролями участников процесса. Рассмотрим для примера стадии двух известных процессов, отличающихся по структуре:

  • Open Unified Process
    • Inception - на этой стадии определяется видение будущей системы, основные функциональные возможности и границы применимости. Проектная команда выявляется критичные требования, вырабатывает концепцию программного решения (solution) и его архитектуру, определяет критерии приемки (сценарии тестирования).
    • Elaboration - основная цель этой стадии - снизить вероятность технических и нетехнических рисков в проекте, что достигается детализацией требований, архитектуры и дизайна создаваемого решения. На этой стадии создаются первые прототипы для проверки реализуемости выявленных требований.
    • Construction - на этой стадии разрабатывается полностью функциональное решение, перечень функций которого был согласован на предыдущих стадиях. На этой стадии выполняются задачи по программированию и тестированию решения, сгруппированные по итерациям, по окончании которых выполняется настройка команды посредством отчетных собраний и ретроспектив.
    • Transition - это завершающая стадия процесса, на которой подтверждается готовность решения, согласуется с заказчиком, выполняются всевозможные тесты приемки, подготавливается справочная документация и т.п. По завершении стадии готовый продукт передается заказчику или запускается в режиме боевой эксплуатации.
  • Scrum
    • Pre-game - на этой стадии решаются две крупные задачи: планирование и создание высокоуровневого дизайна или архитектуры системы. В результате планирования команда получает набор функций, необходимых заказчику, их приоритеты и оценки по трудоемкости. Выявляются всевозможные риски, окончательно формируется команда и правила игры. В результате высокоуровневого дизайна у команды появляется понимание того, каким образом в техническом плане будет разрабатываться решение.
    • Game - данная стадия состоит из некоторого количества итераций (sprints), в рамках которых вся команда занимается детализацией требований, их реализацией и тестированием. В результате каждой итерации создается работающий продукт, выполняется настройка команды посредством ретроспектив, результаты работы за итерацию демонстрируются заказчику.
    • Post-game - это завершающая стадия, на которой выполняется конечная интеграция компонентов решения в продукт, создается необходимая документация, проводится обучение заказчика и передается продукт.

img1 Каждая стадия процесса определяет тот минимальный набор задач, которые должны быть выполнены, чтобы достичь нужного результата по каждой стадии. Система управления проектами DEVPROM позволяет связать типы задач (типы активностей) со стадиями процесса разработки, решая тем самым две задачи:

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

Например, при использовании OpenUP, вы планируете "разобраться" с некоторой фичей на стадии Inception, при этом DEVPROM вам предложит только тот перечень задач, который специфичен для данной стадии процесса. Таким образом, вы не забудете запланировать необходимых задач и система скроет те задачи, которые на данной стадии не нужны.

 

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

Еще интересные статьи на эту тему: