ScholarGate
Ассистент

Гибкая разработка программного обеспечения

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает ценности и принципы Agile-манифеста; конкретные фреймворки, такие как Scrum, экстремальное программирование (XP) и Kanban; практики, включая короткие итерации, непрерывную обратную связь, разработку через тестирование, парное программирование, рефакторинг и частые релизы; а также роли, церемонии и артефакты, которые структурируют гибкие команды.

Core questions

  • Какие ценности и принципы отличают гибкие методы от разработки, управляемой планом?
  • Как фреймворки, такие как Scrum и XP, структурируют итерации, роли и обратную связь?
  • Какие инженерные практики делают возможной частую и надежную поставку?
  • Когда и насколько хорошо гибкие методы масштабируются для крупных или распределенных организаций?

Key theories

Ценности Agile-манифеста
Четыре ценностных утверждения отдают приоритет людям и взаимодействиям, работающему программному обеспечению, сотрудничеству с заказчиком и реагированию на изменения, с двенадцатью поддерживающими принципами, подчеркивающими раннюю и непрерывную поставку и приветствующими меняющиеся требования.
Фреймворк Scrum
Scrum организует работу в спринты фиксированной длительности с определенными ролями (владелец продукта, скрам-мастер, разработчики), артефактами (бэклог продукта и спринта, инкремент) и событиями (планирование спринта, ежедневный скрам, обзор, ретроспектива) для инкрементальной поставки ценности.
Практики экстремального программирования
XP сочетает короткие итерации с дисциплинированными инженерными практиками, такими как разработка через тестирование, парное программирование, непрерывная интеграция, коллективное владение кодом и рефакторинг, чтобы поддерживать низкую стоимость изменений.

Clinical relevance

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

Evidence & guidelines

Руководство Scrum (The Scrum Guide) предоставляет широко принятое определение фреймворка Scrum, а Agile-манифест остается основополагающим заявлением о гибких ценностях; фреймворки масштабирования, такие как SAFe и LeSS, расширяют гибкие практики на крупные организации.

History

Легковесные методы, такие как Scrum и XP, появились в 1990-х годах как реакция на тяжеловесные, ориентированные на документацию процессы. В 2001 году семнадцать практиков опубликовали Agile-манифест, объединив эти методы под общими ценностями; впоследствии гибкая разработка стала мейнстримом и породила фреймворки масштабирования в 2010-х годах.

Debates

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

Key figures

  • Kent Beck
  • Ken Schwaber
  • Jeff Sutherland
  • Martin Fowler
  • Alistair Cockburn

Related topics

Seminal works

  • beck2001
  • beck2004
  • schwaber2020

Frequently asked questions

Является ли Agile противоположностью дисциплинированной инженерии?
Нет. Эффективный Agile в значительной степени зависит от инженерной дисциплины, такой как автоматизированное тестирование, непрерывная интеграция и рефакторинг; акцент Agile делается на быстрой адаптации к изменениям, а не на отказе от строгости.
В чем разница между Scrum и Agile?
Agile — это широкий набор ценностей и принципов; Scrum — это один конкретный фреймворк, который реализует их с помощью определенных ролей, событий и артефактов. XP и Kanban — это другие Agile-фреймворки с различными акцентами.

Methods for this concept

Related concepts