Thursday, August 11, 2011

Рассуждение о релизных циклах и методологиях ведения проектов


Если вы хотите быстро получить информацию о том какая методология используется в той или иной компании для ведения проектов спросите, "сколько у вас длиться релизный цикл?" ответом на этот вопрос может быть фраза от "1 день или неделя" до "1 год".
Так вот если ответом был первый то это скорее Agile методология, если второй то скорее всего традиционный подход.
Теперь подумаем что плохого в той или иной продолжительности циклов и стоит ли сразу переходить от одного к другому.
Сначала я встану на защиту традиционного подхода, хотя сразу оговорюсь - я не являюсь его поклонником. Итак релизный цикл 6 - 12 месяцев. Скорее всего процессы компании настроены таким образом, что требования подготавливаются перед началом цикла и заказчик ожидает получить новые фичи к концу. Заказчик готов к тому, что у него раз в год или полгода происходит обновления программного обеспечения и это его полностью удовлетворяет. Учитывая что релиз достаточно болезненное мероприятие как для компании разработчика так и для заказчика то, чем меньше их тем лучше для обоих :) поэтому некоторые стараются увеличить релизные циклы, однако с увеличением они становятся все сложнее и болезненней. Сокращение же релизного цикла приведет ко многим изменениям организации процессов начиная от IT департаментов заканчивая Sales и к этому нужно быть готовым. Кроме того Agile методология с её короткими релизными циклами лучше всего подходит к Software as a Service (SaaS), когда заказчик даже не подозревает, что на продакшен серверах происходит обновление программного обеспечения. Хотя вам ничего не мешает делать Private Releases.
Теперь поговорим о всем том плохом, что сопровождает длинные релизные циклы. Как правило при таком подходе 2/3 времени занимает разработка фичи, а остальное на её тестирование. Итак представьте что вы взяли в очередное релиз цикл 20 фич, при этом цикл у вас занимает 6 месяцев. 4 месяца разработка и 2 тестирование (автоматизированное, UAT и т.д.) Итак посчитаем сколько времени необходимо потратить чтобы фича прошла все стадии и была готова к релизу. 6 мес (24 недели) / 20 = 1.2 недели. округлим в большую сторону и получим 2 недели на одну фичу (это разработка и тестирование и выпуск её в релиз). Вместо этого заказчик её увидит через 6 месяцев эффективность можно посчитать 2/24 = 0.08 что составляет примерно 8 процентов.
Итак возникает вопрос, а стоит ли увеличивать релизные циклы и вечно бегать от страшного наказания под названием "релиз"? Что если наоборот уменьшать их? от полугодового перейти к поквартальному. От поквартального к ежемесячному и наконец к еженедельному и ежедневному, когда фичи поставляются как пирожки на конвейере. Да вам скорее придется обратиться в веру Agile, но подумайте над этим, стоит ли противиться этой новой вере?

No comments: