Разработка проекта на заказ может быть организована традиционным способом или по методологии Agile.
Традиционный способ
Основу традиционного способа разработки составляет полное техническое задание (ТЗ) — документ, в деталях определяющий структуру, функциональность, пути следования и другие требования к проекту. В разработке ТЗ участвует как заказчик, так и подрядчик. На основании ТЗ разрабатывается дизайн и программируется функционал. При этом все требования к проекту, которые не включены в ТЗ, являются доработками. Традиционный способ разработки хорошо зарекомендовал себя на малых и средних проектах. В разработке крупных интернет-приложений у традиционного способа появляются следующие недостатки:
- Изначально у заказчика и подрядчика есть только общее представление о будущем проекте. Невозможно в деталях представить все, с чем столкнутся разработчики через три месяца работы на проектом.
- Требования к проекту имеют свойства меняться с течением разработки. Нередко бывает так, что по изначальной задумке на странице был один функционал, к моменту когда начинается работа над ней он уже сильно расширен или изменен.
- В ходе работы над проектом неизбежно возникают доработки, не оговоренные в ТЗ. Проблема учета доработок может негативно отражаться на скорости их внедрения на проекте.
Методология Agile
Альтернативой традиционному способу разработки крупных проектов является разработка по методологии Agile. В разработке крупных проектов у методологии Agile есть ряд преимуществ по сравнению с традиционным способом:
- Вместо детального ТЗ на этапе проектирования готовится общий функциональный план — Backlog. На основе оценки этого плана определяется примерный срок разработки проекта, а также необходимые ресурсы.
- Заказчик (представитель заказчика) выступает в роли Product Owner на протяжении всей разработки. Он уточняет требования в виде Историй на функционал, определяет приоритеты разрабоки на итерацию, участвует в оценке и демонстрации результатов. Чаще всего Product Owner корректирует начальные требования к проекту, адаптируя их к изменяющимся условиям бизнеса.
- Разработка проекта начинается с самых необходимых функций для Заказчика, что позволяет получить 80% бизнес функционала уже к середине разработки. Часто проекты Agile могут начинать свою работу в интернете, находясь на стадии разработки.
- Совместная работа над проектом позволяет достичь большего взаимопонимания между Заказчиком и разработчиками. Даже на протяжении длительного срока разработки крупного проекта поддерживается высокая мотивация разработчиков, которые становятся более самостоятельными и ответствеными за результат.
Практика показала, что все больше профессиональных Заказчиков выбирают методологию Agile для разработки интернет-порталов, социальных сетей, веб-сервисов.
Ярким примером разработки по методологии Agile может служить веб-система Напишем.ру. Общие трудозатраты разработки составили 7,5 лет человеко часов. Трудно представить себе реализацию такого проекта традиционным способом разработки.