Методология разработки ПО — это система принципов, а также совокупность идей, понятий, способов и средств, определяющих стиль разработки ПО.
Наиболее популярные модели разработки ПО
Каскадная модель (waterfall model, модель “водопад) является одной из самых старых — она упоминается с 1970 года. Модель разбивает жизненный цикл ПО на стадии: проектирование, дизайн, кодирование, тестирование, поддержка. Каждая стадия должна завершиться до начала следующей.
Каскадная модель чаще всего применяется в государственных компаниях. Такая модель обычно используется в банковских системах, корпорациях с гос. участием.
Agile-подходы (гибкая методология разработки) — это семейство “гибких” подходов к разработке ПО. Такие подходы также иногда называют фреймворками или agile-методологиями. В гибкой методологии разработки после каждой итерации заказчик может наблюдать результат и понимать, удовлетворяет он его или нет. Это одно из ее преимуществ. К недостаткам относят то, что из-за отсутствия конкретных формулировок результатов сложно оценить трудозатратность и стоимость разработки.
В основе гибкой методологии лежат непродолжительные отрезки времени (sprint), во-время которых выполняется определенный (ограниченный) список задач, ежедневные встречи (stand-up meeting) и регулярные собрания (планирование спринта, итоги спринта). На ежедневных совещаниях участники команды обсуждают:
- Отчет о проделанной работе с момента последнего stand-up meeting;
- Список задач, которые сотрудник должен выполнить до следующего собрания;
- Затруднения, возникшие в ходе работы.
Методология подходит для больших или нацеленных на длительный жизненный цикл проектов, постоянно адаптируемых к условиям рынка. Соответственно, в процессе реализации требования изменяются. Заказчик может видеть результат через короткий промежуток времени, например через неделю.
Сравнительный анализ моделей разработки
Различия agile и waterfall (“водопад”):
- В методологии разработки “водопад” чётко и заранее определены требования, в agile требования в процессе реализации меняются.
- В agile плавающее значение стоимости продукта, а “водопаде” — фиксированная стоимость.
- В agile готовность к изменениям в процессе разработки важнее, чем беспрекословное следование изначальному плану, в отличии от методологии “водопад”. Также в agile очень важно сначала действие, а потому уже требования. Зачастую, на начальном этапе требований к проекту нет, требования подтягиваются в процессе разработки.
- В agile разработка идет через короткие итерации (неделя — две), в “водопаде” — длительная разработка (месяц — год). В основном, все современные IT компании используют agile разработку.
- В agile заказчик привлекается к процессу разработки продукта, в “водопаде” нет.
- Приоритет в agile — удовлетворение потребностей заказчика, в “водопаде” — жёсткая последовательность этапов разработки.