Гибкая методология разработки

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
Разработка программного обеспечения
Процесс разработки ПО
Шаги процесса

Анализ | Проектирование | Реализация | Тестирование | Внедрение | Сопровождение

Модели / Методы

Agile | Cleanroom | Итеративная | RAD | Scrum | RUP | OpenUP | MSF | Спиральная | Водопад | XP

Сопутствующие дисциплины

Конфигурационное управление | Документирование | Управление проектами


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

Большинство гибких методологий нацелены на минимизацию рисков, путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся одну-две недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре, и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, кодирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации, команда выполняет переоценку приоритетов разработки.

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

Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объем письменной документации, по сравнению с другими методами. Это привело к критике этих методов, как недисциплинированных.

Содержание

Принципы

Agile — семейство процессов разработки, а не единственный подход в разработке программном обеспечения, и определяется Agile Manifesto[1]. Agile не включает практик, а определяет ценности и принципы, которыми руководствуются успешные команды.

Agile Manifesto разработан и принят 11-13 февраля 2001 года на лыжном курорте The Lodge at Snowbird в горах Юты. Манифест подписали представители следующих методологий Extreme programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming.[2] Содержит 4 ценности, 12 принципов и не содержит практик.

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

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

Понятия справа важны, но мы больше ценим понятия слева.

Принципы, которые разъясняет Agile Manifesto[4]:

  • Удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО
  • Приветствие изменения требований, даже в конце разработки. Это может повысить конкурентоспособность полученного продукта
  • Частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще)
  • Тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта
  • Проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием.
  • Рекомендуемый метод передачи информации это личный разговор (лицом к лицу)
  • Рабочее ПО — лучший измеритель прогресса
  • Спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок
  • Постоянное внимание на улучшение технического мастерства и удобный дизайн
  • Простота — искусство НЕ делать лишней работы
  • Лучшие архитектура, требования и дизайн получаются у самоорганизованной команды
  • Постоянная(Частая) адаптация(улучшение эффективности работы) к изменяющимся обстоятельствам

Методологии

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

Внешние ссылки

Ссылки (сообщества)

Примечания


<tr><th style="white-space:nowrap;" >Концепции</th> <td style="width:100%;background:#f0f0f0" > Моделирование данныхАрхитектура программного обеспеченияFunctional specificationЯзык моделированияПарадигма программированияПрограммное обеспечениеАрхитектура программного обеспеченияМетодология разработки программного обеспеченияЦикл разработки программного обеспеченияКачество программного обеспеченияОбеспечение качества программного обеспеченияСтруктурный анализ программного обеспечения </span></td></tr><tr><th style="white-space:nowrap;" >Направления</th> <td style="width:100%;" > Гибкая методология разработкиАспектно-ориентированное программированиеОбъектно-ориентированное программированиеПроблемно-ориентированное программированиеОнтологияСервисно-ориентированная архитектураЦикл разработки программного обеспеченияОценка затрат на разработку программного обеспечения</span></td></tr><tr><th style="white-space:nowrap;" >Модели</th> <td style="width:100%;background:#f0f0f0" > Модели разработки: Гибкая методология разработкиCleanroomИтеративная разработкаRUPOpenUPRADScrumMSFСпиральная модельМодель водопадаXPV-Model
Другие модели: CMMCMMIМодель данныхFunction modelIDEFInformation modelMetamodelingObject modelView modelUML </span></td></tr><tr><th style="white-space:nowrap;" >Выдающиеся
деятели</th> <td style="width:100%;" > Kent BeckГради БучФред БруксBarry BoehmУорд КаннингемОле-Йохан ДальTom DeMarcoЭдсгер Вибе ДейкстраДональд КнутМартин ФаулерЧарльз Энтони Ричард ХоарWatts HumphreyMichael A. JacksonIvar JacobsonCraig LarmanJames MartinBertrand MeyerDavid ParnasWinston W. RoyceJames RumbaughНиклаус ВиртЭдвард Йордан</span></td></tr><tr><th style="white-space:nowrap;" >Связанные
статьи</th> <td style="width:100%;background:#f0f0f0" > ИнформатикаКомпьютерная инженерияОрганизационная инженерияИстория разработки ПОКонфигурационное управлениеМенеджментДокументированиеМатематикаУправление проектамиУправление программамиВсеобщее управление качествомЭргономикаСистемотехникаОбратная разработка</span></td></tr></table>bg:Гъвкава методологияca:Metodologia àgilda:Agilede:Agile Softwareentwicklungen:Agile software developmentes:Desarrollo ágil de softwarefi:Ketterä ohjelmistokehitysfr:Méthode agilehe:פיתוח תוכנה זריזit:Metodologia agileja:アジャイルソフトウェア開発ko:애자일 개발 프로세스lt:Lankstusis programavimaslv:Spējā izstrādenl:Agile-software-ontwikkelingpl:Zwinne programowaniept:Desenvolvimento ágil de softwaresh:Agilni razvoj softverasl:Agilne metode razvoja programske opremesr:Agilni razvoj softverasv:Agil systemutvecklingta:ஆஜில் மென்பொருள் விருத்திth:เอจายล์ (การพัฒนาซอฟต์แวร์)uk:Гнучка розробка програмного забезпеченняvi:Lập trình linh hoạtzh:敏捷软件开发
Личные инструменты

Served in 0.413 secs.