Манифест гибкой разработки
Манифест гибкой разработки программного обеспечения (англ. Manifesto for Agile Software Development) — это документ, сформулированный и опубликованный в феврале 2001 года группой из семнадцати разработчиков программного обеспечения, который определил набор ценностей и принципов, известных как гибкая методология разработки (Agile). Манифест стал реакцией на «тяжеловесные», бюрократизированные и документоориентированные процессы разработки, доминировавшие в индустрии в 1990-х годах (прежде всего, каскадная модель и различные варианты методологии Rational Unified Process). Документ не является строгим методом или инструкцией, а представляет собой философскую основу, на базе которой впоследствии возникли такие практики, как Scrum, Extreme Programming (XP), Kanban, Lean Software Development и другие.
История возникновения
В конце 1990-х годов в сообществе разработчиков программного обеспечения нарастало недовольство существующими процессами, которые требовали детального планирования на годы вперёд, объёмной документации и строгого следования изначальному плану. Многие проекты страдали от перерасхода бюджета, срыва сроков и несоответствия конечного продукта реальным потребностям заказчика.
В феврале 2001 года семнадцать ведущих специалистов и авторов альтернативных методологий собрались на горнолыжном курорте Сноубирд (штат Юта, США). Среди участников были Кент Бек (автор Extreme Programming), Джефф Сазерленд и Кен Швабер (соавторы Scrum), Мартин Фаулер, Роберт Мартин (дядя Боб), Алистер Кокберн, Джим Хайсмит и другие. Целью встречи было обсуждение общих принципов, объединяющих их подходы, и выработка единого документа.
После двух дней обсуждений участники сформулировали четыре ключевые ценности и двенадцать принципов, которые и составили Манифест гибкой разработки программного обеспечения. Название «Agile» (гибкий) было предложено как термин, наиболее точно отражающий суть подхода — способность быстро адаптироваться к изменениям.
Четыре ценности Манифеста
Манифест провозглашает, что авторы ценят определённые вещи больше, чем другие. Формулировки даны в виде парных утверждений, где первая часть считается более ценной, чем вторая:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану.
Важно понимать, что Манифест не отрицает ценность процессов, документации, контрактов и планов. Он лишь утверждает, что в контексте разработки программного обеспечения первые элементы (люди, продукт, сотрудничество, адаптивность) имеют приоритетное значение.
Двенадцать принципов гибкой разработки
В дополнение к четырём ценностям Манифест содержит двенадцать принципов, которые конкретизируют, как следует применять гибкий подход на практике:
- Наивысшим приоритетом является удовлетворение потребностей заказчика за счёт ранней и непрерывной поставки ценного программного обеспечения.
- Изменение требований приветствуется, даже на поздних стадиях разработки. Гибкие процессы позволяют использовать изменения для обеспечения конкурентного преимущества заказчика.
- Работающий продукт следует поставлять как можно чаще, с периодичностью от пары недель до пары месяцев, предпочтительно через короткие промежутки времени.
- Заказчик и разработчики должны работать вместе ежедневно на протяжении всего проекта.
- Над проектом должны работать мотивированные профессионалы. Для них нужно создать необходимые условия, обеспечить поддержку и доверие.
- Наиболее эффективным и действенным способом обмена информацией между членами команды является личный разговор (face-to-face).
- Работающий продукт — основной показатель прогресса.
- Гибкие процессы способствуют устойчивому развитию. Заказчики, разработчики и пользователи должны иметь возможность сохранять постоянный темп работы неопределённо долго.
- Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
- Простота — искусство минимизации лишней работы — является важнейшим принципом.
- Самые лучшие архитектуры, требования и проекты получаются у самоорганизующихся команд.
- Команда должна регулярно анализировать свою эффективность и в соответствии с этим корректировать своё поведение.
Влияние и критика
Влияние на индустрию
Манифест оказал огромное влияние на индустрию разработки программного обеспечения. Он стал основой для массового перехода от «водопадных» моделей к итеративным и инкрементальным подходам. Крупные корпорации (Microsoft, IBM, Google, Amazon) и государственные структуры (например, правительство США через 18F) внедрили элементы Agile в свои процессы. По данным опросов State of Agile, проводимых компанией VersionOne (ныне Digital.ai), более 90% респондентов заявляют об использовании Agile-практик в своих командах.
Критика
Несмотря на широкое распространение, Манифест и его интерпретации подвергаются критике по нескольким направлениям:
- Размывание понятия «Agile»: Термин стал маркетинговым ярлыком, под который подгоняют любые практики, включая те, которые противоречат духу Манифеста (например, микроменеджмент под видом Scrum).
- Недостаток внимания к масштабированию: Манифест изначально ориентирован на небольшие, самоорганизующиеся команды. Попытки применить его в крупных корпорациях с сотнями разработчиков привели к появлению фреймворков масштабирования (SAFe, LeSS, Nexus), которые часто критикуются за возврат к бюрократии.
- Игнорирование технического долга: В погоне за «работающим продуктом» и скоростью поставки команды могут пренебрегать архитектурой и качеством кода, что приводит к накоплению технического долга.
- Культовая приверженность: Некоторые организации воспринимают Манифест как догму, а не как набор рекомендаций, что приводит к формальному соблюдению ритуалов (ежедневные стендапы, ретроспективы) без реального понимания их целей.
Интересные факты
- Оригинальный текст Манифеста был написан на салфетке во время встречи в Сноубирде, хотя окончательная версия была набрана на компьютере.
- Название «Agile» было выбрано путём голосования среди участников встречи. Альтернативными вариантами были «Adaptive» и «Lean».
- Манифест доступен на более чем 60 языках мира, включая русский. Официальный перевод на русский язык был выполнен сообществом и одобрен авторами.
- В 2011 году, к десятилетию Манифеста, группа его авторов опубликовала «Декларацию взаимозависимости» (Declaration of Interdependence), которая попыталась расширить принципы Agile на управление проектами в целом.
Источники
- Beck, K., et al. (2001). Manifesto for Agile Software Development.
- Fowler, M. (2001). The New Methodology.
- Highsmith, J. (2002). Agile Software Development Ecosystems.
- Cohn, M. (2004). User Stories Applied: For Agile Software Development.
- Sutherland, J., & Schwaber, K. (2013). The Scrum Guide.
- Digital.ai. (2023). 17th State of Agile Report.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →