в облаке
Попробовать

Методология

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

 

Scrum

Одна из самых популярных методологий гибкой разработки. Одна из причин ее популярности - простота. Scrum по-настоящему прост, его можно описать в одной короткой статье. Основные используемые инструменты: burndown диаграмма, backlog, истории пользователей.

 

eXtreme Programming

Не много команд, полностью следующих этой методологии гибкой разработки, однако те, кто выбрал именно ее никогда уже больше от нее не откажутся. Требует использования таких практик как: разработка через тестирование (TDD), парное программирование, непрерывная интеграция, рефакторинг, коллективное владение кодом (включая парное программирование), описание требуемой функциональности при помощи историй пользователей и др.

 

Feature Driven Development (FDD)

Относительно легковесная методология, появившаяся еще до манифеста Agile, но декларирующая схожие принципы. Разработка ведется короткими итерациями, в каждой из которых добавляется новая фича (полезное поведение с точки зрения заказчика). В отличие от Agile методологий больше внимания уделяется предварительному моделированию, отчетности и графикам. Больше подходит для корпоративной разработки.

 

Crystal

Алистер Коуберн называет это "семейством", так как убежден, что разным проектам нужны разные методологии. Он вводит следующую градацию проектов: по одной оси откладывается количество занятых в проекте людей, по другой - критичность ошибок. Каждая из методологий "семейства" предназначена для определенной ячейки получившийся сетки. Таким образом, проект, в котором занято 40 человек, и на котором компания может позволить себе потерять некоторую сумму, будет работать по другой методологии, нежели проект для 6 разработчиков, от которого зависит существование компании.

Процессы (frameworks)

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

 

Rational Unified Process (RUP)

Методология, а точнее библиотека процессов, разработки программного обеспечения, созданная компанией Rational Software, принадлежащей теперь IBM. Тяжеловесная и сильно формализованная, предназначенная для применения в промышленной разработке ПО. Основным языком общения между членами команды является UML.

 

OpenUP

Облегченная версия RUP, ориентированная на принципы Agile и дополненная соответствующими практиками. OpenUP делит жизненный цикл проекта на четыре фазы: начальная фаза, фазы уточнения, конструирования и передачи. Жизненный цикл проекта обеспечивает предоставление заинтересованным лицам и членам коллектива точек ознакомления и принятия решений на протяжении всего проекта.

 

Microsoft Solutions Framework (MSF)

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

Практики

Model Driven Development (MDD)

Данная практика является частью методологии Model Driven Software Development, которая в свою очередь является адаптированным вариантом Model Driven Engineering. В рамках этой практики все результаты работы команды сосредоточены в моделях, постепенное развитие которых обеспечивает коммуникацию всех участников проекта.

 

Agile Model Driven Development (AMDD)

Адаптированная под Agile практика MDD, в которой основное внимание уделяется эволюционному моделированию, то есть проектированию некоторого участника системы, нужного в ближайшей перспективе и последующая его реализация с применением TDD. Общение членов команды осуществляется посредством моделей.