Методологии разработки ПО в IT

Методология разработки ПО — это система принципов, а также совокупность идей, понятий, способов  и средств, определяющих стиль разработки ПО. 

Наиболее популярные модели разработки ПО

Каскадная модель (waterfall model, модель “водопад) является одной из самых старых — она упоминается с 1970 года. Модель разбивает жизненный цикл ПО на стадии: проектирование, дизайн, кодирование, тестирование, поддержка. Каждая стадия должна завершиться до начала следующей. 

Каскадная модель чаще всего применяется в государственных компаниях. Такая модель обычно используется в банковских системах, корпорациях с гос. участием. 

Agile-подходы (гибкая методология разработки) — это семейство “гибких” подходов к разработке ПО. Такие подходы также иногда называют фреймворками или agile-методологиями. В гибкой методологии разработки после каждой итерации заказчик может наблюдать результат и понимать, удовлетворяет он его или нет. Это одно из ее преимуществ. К недостаткам относят то, что из-за отсутствия конкретных формулировок результатов сложно оценить трудозатратность и стоимость разработки. 

В основе гибкой методологии лежат непродолжительные отрезки времени (sprint), во-время которых выполняется определенный (ограниченный) список задач, ежедневные встречи (stand-up meeting) и регулярные собрания (планирование спринта, итоги спринта). На ежедневных совещаниях участники команды обсуждают: 

  • Отчет о проделанной работе с момента последнего stand-up meeting;
  • Список задач, которые сотрудник должен выполнить до следующего собрания;
  • Затруднения, возникшие в ходе работы.

Методология подходит для больших или нацеленных на длительный жизненный цикл проектов, постоянно адаптируемых  к условиям рынка. Соответственно, в процессе реализации требования изменяются. Заказчик может видеть результат через короткий промежуток времени, например через неделю. 

Сравнительный анализ моделей разработки

Различия agile и waterfall (“водопад”): 

  • В методологии разработки “водопад” чётко и заранее определены требования, в agile требования в процессе реализации меняются. 
  • В agile плавающее значение стоимости продукта, а “водопаде” — фиксированная стоимость. 
  • В agile готовность к изменениям в процессе разработки важнее, чем беспрекословное следование изначальному плану, в отличии от методологии “водопад”. Также в agile очень важно сначала действие, а потому уже требования. Зачастую, на начальном этапе требований к проекту нет, требования подтягиваются в процессе разработки. 
  • В agile разработка идет через короткие итерации (неделя — две), в “водопаде” — длительная разработка (месяц — год). В основном, все современные IT компании используют agile разработку. 
  • В agile заказчик привлекается к процессу разработки продукта, в “водопаде” нет. 
  • Приоритет в agile — удовлетворение потребностей заказчика, в “водопаде” — жёсткая последовательность этапов разработки.

Ссылка на основную публикацию