Вехи фазы стабилизации
Фаза стабилизации завершается вехой "Готовность решения утверждена" (release readiness approved). В состоянии, достигнутом к этому моменту, решение уже готово к полному внедрению в производственную среду.
К моменту наступления этой вехи проектная группа завершает разрешение всех существенных проблем и происходит выпуск или внедрение решения. Ответственность за непрерывное управление и поддержку решения формально переходит от проектной группы к командам сопровождения.
В течение фазы MSF рекомендует выделить промежуточные вехи:
- Точка конвергенции
В точке конвергенции (bug convergence)[7.1] становится заметен существенный прогресс в устранении ошибок, то есть скорость устранения ошибок начинает превосходить скорость их обнаружения.
Рис. 7.1. Точка конвергенции. Источник: белая книгаПоскольку количество найденных, но не устраненных ошибок может колебаться даже после того, как оно начало убывать, конвергенция может рассматриваться скорее как тенденция, нежели как фиксированный момент во времени. Вслед за этой вехой количество активных ошибок должно продолжать убывать, вплоть до точки достижения нуля. Точка конвергенции дает проектной группе возможность понять, что процесс тестирования близится к концу.
- Точка достижения нуля (zero-bug bounce) [7.1]
Это момент, когда впервые все выявленные ошибки оказываются устраненными. Вслед за ней пики количества активных ошибок должны становиться все меньше, вплоть до полного угасания в момент, когда решение уже достаточно стабильно для выпуска первой версии кандидата.
Рис. 7.2. Точка достижения нуля . Источник: белая книгаСущественную роль играет тщательная приоритезация ошибок, поскольку устранение всякой из них содержит риск внесения новых ошибок. Точка достижения нуля ясно показывает, что проектная группа приближается к созданию стабильной версии кандидата (release candidate).
Заметим, что новые ошибки после достижения этой вехи наверняка будут найдены. Однако точка достижения нуля - это первый момент в работе над проектом, когда команда может честно отчитаться об отсутствии активных ошибок и сфокусироваться на сохранении этого состояния.
- Версии-кандидаты
Для пилотной группы подготавливается и выпускается серия версий-кандидатов. Выпуск каждой из них является промежуточной вехой. Эти версии имеют следующие особенности:
- Каждая версия-кандидат имеет полный набор составляющих, необходимых для внедрения решения в производство.
- Создание версии-кандидата служит тестом готовности решения к выпуску, то есть проверяет готовность всех его составляющих.
- Период тестирования, следующий за созданием каждой версии-кандидата, определяет, пригодна ли созданная версия к внедрению, или же проектная группа должна подготовить новую версию-кандидат, исправляющую недостатки предыдущей.
- Тестирование версий-кандидатов, проходящее внутри проектной группы, требует высокой степени концентрации и интенсивности работы.
- Маловероятно, что первая версия-кандидат окажется заключительной.
- Контрольное тестирование завершено (pre-production test complete)
Суть этой промежуточной вехи заключается в подготовке к пилотному выпуску решения. Данная веха очень важна, поскольку наступает момент, когда решение "столкнется" с производственной средой, и проектная группа должна как можно тщательнее оттестировать решение до этого момента, - до начала испытания пилотного выпуска.
К данной вехе проектная группа должна:
- Оценить результаты тестирования в соответствии с имеющимися критериями успешности.
- Подготовить среду внедрения.
- Создать необходимые для внедрения процедуры, скрипты, массивы данных.
- Иметь готовые учебные материалы.
- Обеспечить условия для сопровождения решения.
- Создать и протестировать план "отката" (rollback plan).
Данная веха может считаться пройденной лишь после обретения проектной группой полной уверенности в готовности всего, что необходимо для внедрения решения. - Тестирование приемлемости для потребителей завершено
Тестирование приемлемости для потребителей (user acceptance testing) и исследование эргономичности (usability studies) выполняются начиная с фазы разработки и продолжаются на протяжении фазы стабилизации.
Их цель - убедиться в том, что новая система отвечает требованиям потребителей и бизнеса.
По достижению данной вехи пользователи осуществляют тестирование и одобряют работу решения в непроизводственной среде (non-production environment). Это включает в себя проверку интеграции системы с работающими в производственной среде бизнес приложениями. Также должны быть проверены разработанные процедуры "отката" и восстановления после сбоев (rollout and backout procedures).
После одобрения менеджерами выпуска, разработанное программное обеспечение и все докупленные к нему компоненты переносятся из архива группы разработки в архив группы сопровождения. - Пилотное внедрение завершено
Во время этой промежуточной вехи проектная группа тестирует решение целиком в среде, максимально приближенной к производственным условиям. В MSF пилотный релиз (pilot release) - это внедрение решения в часть производственной среды или для части пользователей. В зависимости от проекта, пилотный релиз может принимать различные формы.
- На предприятии это может быть релиз для группы пользователей или подмножества серверов данных.
- Для веб-разработки это может быть хостинг на тестовых серверах или в подкаталогах, которые доступны в Internet только через тестовый веб-адрес.
- Производители коммерческого программного обеспечения, такие как Microsoft, часто выпускают новый программный продукт для специальной группы "первоиспытателей" до того, как будет создана окончательная его версия.
Общим для всех этих форм предварительно выпуска является максимальное приближение тестирования к реальным условиям.
Веха "Пилотное внедрение завершено" не может считаться пройденной, пока проектная группа не удостоверилась окончательно, что созданное решение жизнеспособно в производственной среде, и каждая его компонента готова к внедрению.
Как только в результате пилотного внедрения накоплено и проанализировано достаточное количество данных, проектной группе необходимо принять решение о дальнейших действиях.Возможны следующие варианты:
- Шаг вперед: пилотное внедрение нового релиза.
- Откат назад: выполняется план отката, и пилотная группа возвращается к конфигурациям, существовавшим до пилотного внедрения. Позднее попытка пилотного внедрения будет повторена вновь с более стабильной версией решения.
- Приостановка: пилотная версия "замораживается".
- Исправление и продолжение: пилотная группа получает "заплатку" (patch) к существующему коду.
- Переход к фазе внедрения.