Блог

Всеволод Фролов
Начальник отдела управления проектами

Как устроен график работ над релизом

Жизненный путь задачи: сбор требований, описание (ТЗ), реализация, тестирование, доработка и исправление багов, тестирование изменений, публикация.
Каждым этапом занимаются разные участники процесса. Аналитик пишет описание, разработчик программирует, тестировщик проверяет, администратор публикует.
Если решать этапы последовательно, то каждый отдельный участник процесса разработки будет периодически простаивать. Возникает необходимость решать задачи параллельно. Пока мы не начали применять ветки (бранчи), такой подход был невозможен. О том, как мы пришли к использованию бранчей, я напишу в одной из следующих публикаций. А пока речь пойдет о графике работ над релизом.

Спринт* у нас четырехнедельный. Каждый спринт живет в своей ветке и заканчивается релизом. Поскольку работы идут параллельно, предыдущий, текущий и следующий спринты перекрывают друг друга и сдвинуты между собой на две недели. Из этой схемы получается, что релиз мы выпускаем также один раз в две недели. Основные затраты времени возникают у разработчиков и тестировщиков, поэтому схема в основном базируется на их потребностях. Если пронумеровать календарные недели по порядку, то схему можно представить следующим образом.

  • Текущая ветка: первая и вторая неделя – на разработку, третья неделя – тестирование, четвертая – публикация.
  • Следующая ветка: третья и четвертая неделя – разработка, пятая неделя – тестирование, шестая – публикация.
  • Предыдущая ветка: минус вторая и минус первая неделя – разработка, первая неделя – тестирование, вторая – публикация.

Следует заметить, что есть еще такой класс тестирования, как «фоновое», когда тестировщик проверяет задачи текущей ветки по мере завершения их разработки, не дожидаясь тестовой недели.
А также неделя публикации включает в себя тестирование препродакшн-площадки и пострелизные тесты.

На данный момент, со старта проекта е-сайтов в июле 2011 года, выпущено уже 112 релизов, и останавливаться мы не собираемся :)

 

* Спринт – в гибкой методологии разработки это период времени (итерация), требуемый для разработки новых возможностей продукта и публикации их для пользователей.