Выбор модели ЖЦ программного проекта
На всем протяжении итерационного цикла требования постоянно меняются, причем цикл состоит из очень коротких итераций.
Базовые действия на каждой итерации: кодирование, тестирование, выслушивание заказчика, проектирование.
Динамизм обеспечивается следующими характеристиками:
· непрерывная связь с заказчиком;
· простота (всегда выбирается минимальное решение)
· быстрая обратная связь (модульное и функциональное тестирование)
· смелость в проведении профилактики возможных проблем.
Базис XP образуют 12 методов:
1. Игра планирования - Локальный заказчик обеспечивает набор "историй", которые описывают требуемую функциональность. К каждой новой версии в текущий набор "историй" вносятся наиболее важные истории (сценарии обслуживания).
2. Частая смена версий - новые версии каждые 2 недели.
3. Метафора - вся разработка проводится на основе простой общедоступной истории о том, как работает система. Истории обеспечивают заказчики.
4. Простое проектирование.
5. Тестирование - непрерывное написание тестов для модулей. Входным критерием для написания кода является отказавший тестовый вариант. Заказчики участвуют в тестировании.
6. Реорганизация - система реструктуризируется, но ее поведение не меняется. Цель упростить систему, улучшить взаимодействие или добавить в нее гибкость.
7. Парное программирование - весь код пишется двумя программистами, работающими на одном компьютере. Оно приводит к повышению качества и уменьшению времени цикла на 40-50%, при увеличении затрат на ресурсы на 15%
8. Коллективное владение кодом - любой разработчик может изменить любой фрагмент кода в любое время (использование современных технологий обеспечивает отображение изменения кода в единой информационной модели системы, с которой работают все участники проекта). Непрерывная интеграция, тестирование и парное программирование обеспечивает защиту от возникающих при этом проблем.
9. Непрерывная интеграция - интегрирование системы несколько раз в день по мере завершения каждой задачи.
10. 40-часовая неделя - нельзя работать сверхурочно.
11. Локальный заказчик - в группе все время должен находиться компетентный представитель заказчика, готовый отвечать на все вопросы.
12. Стандарты кодирования - правила, обеспечивающие одинаковое представление программного кода.
Какой тип жизненного цикла будет наиболее эффективным для вашего проекта? Это очень важный стратегический вопрос, потому что неверный выбор может привести к катастрофическим результатам. Подумайте только о запоздалых результатах, недовольных клиентах, перерасходах и отмененных проектах!
При выборе модели ЖЦ программного проекта следует найти ответ на ряд следующих вопросов.