История создания Agile-манифеста
11–13 февраля 2021 исполнилось 20 лет Манифесту Agile-разработки ПО. Давайте вспомним, какие подходы существовали до него, почему возникла потребность в таком манифесте, как он создавался, кто в этом участвовал, как появился термин "agile", и что думают авторы о полученном результате.
Что было до Agile-манифеста
Уже существовали итеративные подходы.
- Наример, был RUP. Кстати, он использует UML, настраивается под нужды и не требует использования всего-всего, что в нем описано.
- Был и Скрам, о котором Кен и Джефф рассказали в 1995 на конференции OOPSLA. А вот первая книга по Скраму "Agile Software Development with Scrum" вышла только в октябре 2001, а первая версия Scrum Guide только в 2010. При переводе книги "Agile project management with Scrum", с одной стороны, ее старались адаптировать к текущей версии Руководства по Скраму (тогда это была версия 2017 года), а с другой, не сильно отступать от оригинала, поэтому, читая ее, понимаешь, что в 2004 и Скрам был другим.
- Первый проект по XP стартовал в 1996, а оформился подход в 1999. Тогда же и TDD.
- Ещё были менее популярные сейчас Crystal c 1994 года и FDD c 1997.
- Уже давно существовал Lean manufacturing 1988-1996 (а TPS сильно раньше), а вот Lean software development появился позднее в 2003 в одноименной книге.
Встреча в 2000 в Орегоне
Весной 2000 Kent Beck (один из авторов eXtreme Programming и TDD) на встречу с названием "Extreme Programming Leadership Conference" в The Rogue River Lodge недалеко от города Медфорд в штате Орегон пригласил:
- активных практиков XP, включая (Uncle) Bob Martin, Ron Jeffries, Martin Fowler, Ken Auer,
- других заинтересованных, в частности, Alistair Cockburn, Jim Highsmith, "Pragmatic" Dave Thomas.
На встрече в числе других вопросов обсуждали:
- связь между XP и другими методами, которые в то время называли Lightweight Methods,
- и создание организации для их продвижения и поддержки.
Идея была холодно поддержана некоторыми участниками. Поэтому (Uncle) Bob Martin и Martin Fowler в перерыве договорились организовать встречу с представителями более широкого круга методов, включая Scrum и Crystal.
2. Встреча в 2001 в Юте
Организация встречи
Bob Martin и Martin Fowler составили предварительный список. Примерно в то же время Alistair Cockburn собирал похожую встречу. Два списка объединили, да и вообще постарались собрать всех активных, кому может быть интересно. Рабочим названием встречи стало "Lightweight Methods Summit", а в качестве цели в приглашении указали:
Создание манифеста, описывающего общие характеристики легковесных подходов.
Организацию логистики подхватил Alistair Cockburn. Он предложил встретиться недалеко от Солт-Лейк-Сити в штате Юта. Вместе с Jim Highsmith они организовали проживание, питание и активности.
Кто-то из ~20 приглашённых приехать не смог, например, Grady Booch (один из авторов языка UML) и "Big Dave" Thomas (тёзка другого Дейва — "Pragmatic Dave" Thomas, который приехать смог).
11–13 февраля 2001 года 17 "умников" экспертов-практиков разработки ПО собрались в кондоминиуме The Lodge горнолыжного курорта Snowbird в горах Уосатч в штате Юта — это в западной части континентальных США недалеко от Солт-Лейк Cити.
Каждый практиковал какую-то альтернативу тяжеловесным процессам, основанным на документации. Они собрались, чтобы поговорить, покататься на лыжах, отдохнуть и найти то общее, что объединяет их процессы/методы, которые в то время уже называли lightweight (легковесными).
- eXtreme Programming, TDD,
- Scrum,
- DSDM — Dynamic Systems Development Method,
- RAD — Rapid Application Development,
- Adaptive Software Development,
- Семейство Crystal, включая Clear,
- FDD — Feature-Driven Development,
- Pragmatic Programming, и другие.
Сама встреча
Встречу начал Боб Мартин, поделившись своим взглядом на общие моменты в существующих легковесных процессах, и предложил цель — зафиксировать эти общие характеристики во благо всей отрасли для создания полезного ПО. Далее фасилитировать встречу стали Martin Fowler & Ward Cunningham. Кстати, знаменитую фотографию, выложенную на странице Манифеста, сделал именно Уорд.
Ожидания от встречи у всех были разными, но не завышенными.
Я не ожидал, что конкретно эта группа сможет договориться о чём-то значительном.
Я надеялся, что мы сможем узнать друг друга получше, и общение приведёт к чему-то интересному. Однако мы быстро нашли много общего.
"Дядя Боб" Мартин впоследствии охарактеризовал их так:
- Группа людей с набором близких ценностей, основанных на взаимном доверии и уважении;
- способствуют развитию организационных моделей, основанных на людях и сотрудничестве;
- выстраивают такие виды организационных сообществ, в которых хочется работать;
- создают хорошие продукты для клиентов в среде, где не просто говорят о "людях, как самом ценном ресурсе", но своим поведением показывают, что люди критически важны. И без слова "ресурс".
О чём договорились?
Договорились о многих аспектах разработки ПО, и поэтому решили оформить этот общий базис в виде боевого клича для всей отрасли. Хотели показать, что отстаивают и чему сопротивляются.
Вообще-то, это я и Мартин Фаулер, рисуя на доске во время обеда, сформулировали первые 3 сравнения. Группа расширила их до 5, а затем сократила до 4.
Мы хотим восстановить баланс. Мы поддерживаем моделирование, но не ради того, чтобы диаграмма пылилась в корпоративном репозитории. Мы поддерживаем документацию, но не сотни страниц никогда неактуализируемых и редко используемых томов. Мы планируем, но признаём ограничения планирования в турбулентной среде.
Группа оформила зафиксированные 4 ценности в виде "Манифеста Agile-разработки ПО".
Надеюсь, что Манифест прояснит, что является и не является agile.
Почему именно "Манифест"? Почему именно "Agile"? Читайте в статье "Почему Agile так называется?"
Черновик 12 принципов группа записала во второй части встречи.
Группа назвала себя "The Agile Alliance".
После Юты
После встречи группа ещё пару месяцев дорабатывала формулировки 12 принципов. Ward Cunningham (изобретатель технологии wiki) позднее создал страницу AgileManifesto.org.
Почти все авторы снова встретились в октябре 2001 на конференции OOPSLA, где объявили, что не хотят какой-то выделенной роли в распространении ценностей и принципов Agile-разработки, и это могут делать не только они.
В конце 2001 они организовали НКО Agile Alliance для развития Agile-методов.
Итоговые впечатления
Я очень доволен результатом.
Думаю, я никогда не участвовал во встрече, на которой группа так сохраняла фокус и достигла целей с лёгкостью и минимумом конфликтов.
Лично я в восторге от итоговой формулировки Манифеста. Я был удивлён, что и другие так же довольны итоговыми фразами. Так что, мы всё же договорились о чём-то значительном.
Что сейчас
Были попытки докрутить манифест 2001 года, и есть несколько вариаций от других авторов, но сам оригинал остался неизменным.
Статистика применения Agile-подходов собирается по большей части с компаний, их использующих: "по результатам онлайн-опроса 100% россиян пользуются интернетом". Поэтому скажу из своего опыта работы с ИТ-компаниями. С каждым годом Манифест выглядит всё менее революционным:
- бизнес-участники работают рядом с техническими спецами,
- всё меньше кабинетов и больше open spaces,
- всё меньше проектных матриц и больше стабильных команд.
Участники тренингов, знакомясь с Манифестом, отвечают: "Ну, так это логично. У нас почти так и есть." И это хорошо! Значит, движемся в хорошем направлении: от формализма и бюрократии к людям и крутым продуктам!
Все причастные к этому движению,
с 20-летием Agile-манифеста вас!
Если интересно, то ещё можете прочитать:
- Как правильно произносить: эджАйл или Эджл? И как переводится?
- Почему Agile так называется? Были другие варианты? (Спойлер: да, были.)
- Что привело к необходимости появления "Манифеста Agile-разработки ПО"?
- Что такое Agile? И вообще, корректен ли такой вопрос?
- Ответы на вопрос "Что такое Agile?" в разных источника Сети
Использованные источники:
- Видео-лекция 2016 Robert "Uncle Bob" Martin с хронологией развития программирования "The Future of Programming".
- Заметки 2001 Jim Highsmith сразу после встречи на курорте Snowbird — важная страница на сайте AgileManifesto.org.
- Заметки 2001–2006 Martin Fowler о создании Манифеста "Writing The Agile Manifesto".
- Заметки 2007 Роберта "Дяди Боба" Мартина "The Founding of the Agile Alliance".