Предварительное проектирование предполагает сбор, систематизацию, анализ и проектирование технических (системных) требований к продукту, перед тем как будет начата его реализация. При этом объем проектируемой функциональности должен составлять лишь небольшую часть всего объема функциональности будущего продукта. Это принципиальное отличие от водопадного подхода, позволяет организовать эффективный процесс разработки и поставку качественного продукта. Такие процессы являются частным случаем итерационного-инкрементного подхода или спиральной модели разработки.
Основным отличием от легковесного подхода является наличие двух циклов: проектировочного и цикла разработки.
На этапе проектирования участвуют:
Участники проектировочного цикла работают с пользовательскими требованиями и производят системные требования, прототипы и макеты, проверяют технические гипотезы (PoC). На основе системных требований формируются задачи для разработки (доработки).
На этапе разработки участвуют:
Программный код, тестовая и эксплуатационная документация трассируются на исходные системные требования, что позволяет контролировать целостность документации и продукта, осуществлять контроль за расходами, анализ влияния при потенциальных изменениях, эффективно поддерживать проектную документацию в актуальном состоянии.
Оба цикла могут выполняться внахлест, то есть пока реализуется проработанная версия продукта, участники проектировочного цикла проектируют следующую версию. Эту практику поддерживают бейзлайны и функциональность по версионированию проектной документации.
Процесс используется при контрактной разработке.
Техническое задание импортируется из документа, переданного заказчиком и дополняется существенными деталями внутри приложения. Детали реализации, макеты и технические требования записываются как дочерние разделы ТЗ.
Детальные требования могут быть предварительно оценены на основе экспертного мнения участников команды. Результаты оценки можно зафиксировать для каждого требования в поле "Оценка, ч." Суммарная оценка для всего ТЗ может использоваться для оценки объема и стоимости работ по ТЗ.
При необходимости получить более детальную оценку, с учетом различных затрат на разного вида работы, для каждого раздела ТЗ создается набор задач, выполнение которых приводит к реализации данного требования. Это могут быть задачи связанные с проектированием интерфейсов, разработкой, тестированием и документированием. Модуль "Трудозатраты по ТЗ" позволяет увидеть подробную смету работ по данному ТЗ. Смету можно выгрузить в Excel для передачи заказчику. При использовании бюджетирования каждому исполнителю можно задать рейт (стоимость часа работы), тогда при помощи модуля "Расходы по требованиям" вы сможете получить детальную смету на проект в деньгах.
После утверждения сметы, плановые трудозатраты по требованиям можно перенести в поле "Оценка, ч.", чтобы зафиксировать договоренности по бюджету проекта.
Управление сроками выполнения ТЗ осуществляется в модуле План. Выполнение ТЗ лучше организовать итерационно - создать итерации, распланировать работы по ним, с использованием модуля "Оперативный план". При помощи настройки группировки доску задач можно разделить по исполнителям или по требованиям.
По окончании планирования вы можете оценить сроки завершения выполнения ТЗ, а также загруженность участников по данному проекту. Загруженность участников проекта отображается в соответствующем модуле, ссылка на который доступна в вертикальном меню, в разделе "Отчеты".
В бэклоге собираются все изменения к ТЗ: новые пожелания, замечания от пользователей, ошибки обнаруженные в процессе тестирования и т.п. Эти изменения изучаются проектной командой и находят свое отражение в техническом задании - создаются новые разделы ТЗ или изменяются существующие.
Изменение в ТЗ может привести к переоценке трудозатрат в большую или меньшую сторону. Бейзлайны позволяют зафиксировать договоренности, а также связанные с ними оценки трудозатрат по требованиям, а также стоимость их реализации. Сравнение бейзлайнов позволяет определить изменения в оценках стоимости, договориться с заказчиком об их оплате, либо использовать собственные резервы для их реализации.
Плюсы |
Глубокая проработка требований и предварительное проектирование вскрывают и устраняют множество проектных рисков. Это позволяет снизить непредвиденные расходы, спроектировать лучшую архитектуру, не тратить время не переделку ранее разработанных функций. Существующие методы оценки трудозатрат по требованиям, позволяют с хорошей точностью прогнозировать сроки реализации больших объемов функциональности. |
Минусы |
Неравномерная загрузка участников проекта. Значительный объем работ по планированию реализации ТЗ. |
Требования |
Наличие в команде специально обученных профессионалов, участвующих в подготовке бизнес- или системных требований. Подготовка и реализация требований порциями (итерациями). |
Все первичные (пользовательские) требования попадают в список пожеланий. В порядке приоритета аналитики берут их в работу для выполнения анализа. Пожелание можно декомпозировать на несколько задач, чтобы распределить работу между несколькими аналитиками и проектировщиками. В результате работы над пожеланием, создаются новые требования или модифицируются существующие.
При описании бизнес-процессов, правил и ограничений, на основе пожеланий создаются бизнес-требования. Это могут быть документы BRD, описание бизнес-кейсов или бизнес-процессов. На основе бизнес-требований создаются производные системные требования, например, в формате вариантов использования, спецификаций, UML-моделей и т.п. Если на проекте формализация бизнес-требований не нужна, то на основе пожеланий сразу создаются системные требования: спецификации или отдельные варианты использования, макеты, UML-модели.
Чтобы распределить работу над документами или разными требованиями, можно создать связанные задачи и назначить их на аналитиков, архитекторов и проектировщиков. Ход разработки документации отражает статусная модель требований. Для контроля целостности бизнес-требований, системных и первичных требований, используйте матрицу трассировки.
Согласование требований реализуется через дополнительные статусы требований. Таким образом вы можете организовать последовательный или параллельный процесс согласования документации. Для привлечения представителей заказчика к согласованию, отправьте им по почте ссылку на документ (операция "Поделиться"). Согласующие смогут оставить свои комментарии и оставить резолюцию.
Когда техническая документация подготовлена, документы можно выгрузить в подходящий формат и передать электронно или распечатать. Либо вы организуете цикл разработки на платформе Devprom ALM.
План реализации требований можно представить в виде релизов или итераций.
Перед передачей системных требований разработчикам, рекомендуем создать бейзлайн, соответствующий плановому релизу продукта. Это позволит сопоставить содержание документа и определенного этапа проекта (релиза или итерации). В будущем вы сможете отслеживать изменения в требованиях между разными бейзлайнами.
Передача требований в разработку происходит путем создания доработок (укрупненных задач на разработку). Доработку можно создать на весь документ, на все требования в документе (кнопка Реализовать) или при помощи массовой операции "Реализовать" над произвольным подмножеством требований. После того как разработка распланирована, можно приступить к проработке документации на следующий релиз. Для этого создается бейзлайн с названием очередного этапа. Изменения, которые будут вноситься в документацию не повлияют на ранее запланированные доработки.
На доске разработки расположены все доработки и ошибки, которые необходимо реализовать в плановом релизе или итерации. У доработок свой жизненный цикл, отличающийся от жизненного цикла пожеланий. Каждая доработка обычно проходит несколько стадий технологического процесса: разработку (то есть создание программного кода), тестирование и документирование. Вы можете добавить собственные стадии производства, например, проектирование. На этой стадии можно создавать модели, программные интерфейсы или макеты UI на основе ранее утвержденных требований. Более того, вы можете заменить процесс Kanban на Scrum, если в данном проекте это добавит эффективности.
После выполнения доработок исходные требования помечаются как реализованные. После выпуска релиза можно приступать к разработке нового релиза.
Плюсы |
Глубокая проработка требований и предварительное проектирование вскрывают и устраняют множество проектных рисков. Это позволяет снизить непредвиденные расходые, спроектировать лучшую архитектуру, не тратить время не переделку ранее разработанных функций. Существующие методы оценки трудозатрат по требованиям, позволяют с хорошей точностью прогнозировать сроки реализации больших объемов функциональности. |
Минусы |
Неравномерная загрузка участников проекта. Пока готовится техническая документация, пользовательские требования могут значительно измениться. |
Требования |
Наличие в команде специально обученных профессионалов, участвующих в подготовке бизнес- или системных требований. Подготовка и реализация требований порциями (релизами). |
.
Этот процесс очень похож на "Разработку по требованиям" с той разницей, что названия этапов проекта приведены в соответствие с ГОСТ-ом. Такой процесс можно применять и адаптировать в ситуациях, когда требуется формальное планирование и управление проектом на основе ГОСТ.
Весь проект делится на стадии, а каждая стадия состоит из нескольких этапов. В этом процессе сознательно перечислены не все стадии, а только ключевые, используемые при разработке и внедрении ПО.
Стадия | Этапы |
---|---|
Формирование требований |
1. Обследование - изучаем предметную область, процессы, текущие способы автоматизации, готовим обоснование необходимости создания ПО. 2. Сбор требований - собираем пользовательские требования, хотелки, формулируем цели и задачи будущей автоматизации. Пользовательские требования заводим в список пожеланий и распределяем работу над ними при помощи задач. 3. Заявка на разработку - информацию, собранную в результате обследования и сбора требований, систематизируем в заявке (документе), которая ляжет в основу будущей концепции ПО. |
Разработка концепции |
4. Изучение объекта - детальное изучение предметной области, выполнение исследований (НИР и Proof of Concept, PoC), снятие всех открытых вопросов, возникших на предыдущей стадии. 5. Разработка концепции - высокоуровневый документ, описывающий проблемы, решения и общую схему ПО. В англоязычной литературе используется термин "Vision" (вИдение). Задача концепции - зафиксировать области автоматизации, роли и пользователей, смежные системы, этапность разработки и ввода в эксплуатацию. |
Техническое задание | 6. На основе собранных требований заказчика и пользователей формируется техническое задание (или несколько). Технические требования верхнего уровня реализуются при помощи доработок, которые составляют бэклог для следующего этапа - подготовки технического проекта. |
Технический проект |
7. Разработка проектных решений - этап, на котором готовится основная техническая документация: варианты использования, UML-модели, макеты UI и другие виды системных и технических требований. Доработки, сформированные на предыдущей стадии проходят цикл проектирования. Распределить работу по нескольким проектировщикам можно при помощи задач. Результаты проектирования сводятся в документы с системными требованиями, например, спецификации. 8. Разработка документации на части ПО - если в проекте участвуют смежники, для них подготавливается документация на основе разработанных спецификаций. Для выгрузки документов по требованиям ГОСТ, используется встроенная возможность задания стилей выгружаемых документов. |
Рабочая документация | 9. Осуществляется разработка и тестирование приложений, стабилизация и исправление обнаруженных дефектов. Подготавливается и дорабатывается необходимая документация: проектная, конструкторская, эксплуатационная и т.п. |
Ввод в действие | 10. Производится внедрение ПО, его частей и связанных систем. Также осуществляется настройка и исправление обнаруженных дефектов, обучение персонала, разработка эксплуатационной документации. |