- •Rup и другие методологии разработки по. Часть 1. Принципы сравнения методологий разработки по
- •Как «измерить» методологию
- •Итеративная или каскадная разработка
- •Каскадный подход
- •Итеративный подход
- •Почему это важно
- •Уровень формализма Что такое формализм в проекте
- •Почему важна степень формализма
- •Что будем сравнивать
- •Часть 2. Сравнение методологий разработки по
- •Как получится…
- •Структурные методологии
- •Гибкие методологии
- •EXtreme Programming, или xp (экстремальное программирование)
- •Crystal Clear
- •Feature Driven Development
- •Общие черты
- •Модели зрелости процесса разработки (cmm, cmmi)
- •Часть 3. Как выбирать методологию?
- •Сколько формализма нужно? Польза документации
- •Общение вместо документации
- •Как выбирать?
- •Сколько итераций потребуется? Еще раз об итерациях
- •Польза и вред итераций
- •Как выбирать?
- •Подведем итоги
Польза и вред итераций
Итерации в процессе разработки позволяют:
контролировать и корректировать выполнение проекта (необходимость продемонстрировать работающий релиз в конце итерации не позволяет программисту ограничиться типичным ответом о 90%-ной готовности класса или метода);
более эффективно работать с изменяющимися требованиями (например, осуществляя анализ изменившихся требований и решая, что будет переработано в продукте в ходе подготовки к очередной итерации);
более эффективно оперировать рисками, корректируя планы очередной итерации в соответствии с текущим состоянием списка наиболее приоритетных рисков;
на ранних этапах оценивать потенциальные характеристики системы (поскольку наличие работоспособного релиза позволяет начать тестирование системы с самых первых итераций);
не тратить время на разработку бесполезных детальных планов на далекую перспективу (если требования к проекту могут существенно меняться раз в месяц, а принципиальная архитектура еще не выбрана, стоит ли детально планировать работы на следующий квартал?).
Однако проведение итерации — это определенные дополнительные расходы на подведение итогов и (пере)планирование, размер которых зависит от числа и распределения участников проекта. Для группы из пяти человек, работающих в одной комнате, подведение итогов итерации может занять час, а для группы из сотни разработчиков, работающих в разных городах, на сбор и подведение итогов может уйти пара недель, и еще почти столько же уйдет на доведение до их сведения новых планов и организацию работы по ним.
Как выбирать?
Таким образом, при выборе количества и длительности итераций, как и при выборе степени формализма, нужно искать оптимальное решение. Продолжительность итерации должна быть тем больше, чем больше команда и чем шире география ее членов, и тем меньше, чем выше неопределенность проекта, например используется новая технология или нестабильны требования к проекту.
Еще одним фактором, влияющим на выбор длительности итерации, является применение инструментальных средств. Так, средства управления изменениями и конфигурациями и средства автоматизации тестирования позволяют уменьшить не только трудоемкость процесса разработки, но и накладные расходы на подведение итогов итерации.
На основании опыта собственных разработок, а также собранной статистики IBM Rational рекомендует выбирать продолжительность итерации в диапазоне от одной до восьми недель. Итерации длительностью восемь недель, как правило, хватает даже для команд численностью порядка ста человек.
Подведем итоги
Итак, мы рассмотрели показатели, характеризующие различные методологии разработки ПО, провели сравнение ряда известных методологий разработки и требований ГОСТов по этим показателям и разобрались, как оценить, какие значения показателей нужны для того или иного проекта.
Заодно мы выяснили, что RUP является одной из наиболее универсальных методологий. Она позволяет в очень широких пределах менять как степень формализма разработки, так и его итеративность.
Хорошо освоенная RUP позволяет разработать универсальный процесс, который можно успешно использовать в различных проектах. Для этого достаточно освоить RUP и способы ее настройки, чтобы иметь в запасе несколько вариантов процесса разработки для разных типов проектов.
RUP также позволяет легко удовлетворять требования ГОСТов и обеспечивает сертификацию организации на весьма высокий уровень модели CMM.
