Методология

 – это способ разработки программного обеспечения, включающий определенные этапы и имеющий определенные особенности и идеи. Это целая система, которая определяет процесс и стиль создания продукта. Как известно, создание любой программы следует определенной методологии.

В современной разработке существует огромное количество методологий, среди которых есть наиболее распространенные. Давайте их и рассмотрим:

RUP

RUP (Rational Unified Process) – методология разработки ПО, созданная компанией Rational Software. Читать про RUP

Waterfall

Каскадная модель (англ. waterfall model, иногда переводят, как модель «Водопад») — модель процесса разработки программного обеспечения, в которой процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки. Читать про Waterfall

XP (Extreme Programming)

Экстремальное программирование (англ. Extreme Programming, XP) — одна из гибких методологий разработки программного обеспечения. Читать про XP

Agile

Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование интерактивной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Читать про Agile

Scrum

Скрам является одной из гибких методологий разработки ПО. Основополагающим принципом данной методологии является качественный контроль разработки ПО. Читать про Scrum

Canban

Канбан также является одной из гибких методологий разработки ПО.  Он во многом схож со скрамом, но тем не менее отличается от него по ряду характеристик. Читать про Canban

Методология и различия
Методология и различия

В современной практике модели разработки программного обеспечения многовариантны. Нет единственно верной для всех проектов, стартовых условий и моделей оплаты. Даже столь любимая всеми нами Agile не может применяться повсеместно из-за неготовности некоторых заказчиков или невозможности гибкого финансирования. Методологии частично пересекаются в средствах и отчасти похожи друг на друга. Некоторые другие концепции использовались лишь для пропаганды собственных компиляторов и не привносили в практику ничего нового.

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

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