все посты
← назад
s&C
Jun 19, 2024

В феврале 2001 года группа из 17 экспертов в области программного обеспечения собралась на горнолыжном курорте Snowbird в штате Юта, США, чтобы обсудить набирающие популярность подходы к разработке программного обеспечения, которые тогда называли легкими методами.

Думаю, дальнейшую историю вы знаете - там был создан и подписан Agile-манифест разработки программного обеспечения, в котором изложены ценности и принципы Agile разработки.

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

Предпосылки

Давайте сначала вернемся еще на 10 лет назад и посмотрим, что происходило в 1990-х годах.

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

Поэтому неудивительно, что стали формироваться разные подходы к разработке программного обеспечения:

  • Кент Бек, создатель XP или экстремального программирования, работал вместе с Уордом Каннингемом, создателем первой вики, над улучшением подходов к разработке программного обеспечения. Кент усовершенствовал и развил многие из этих практик вместе с Роном Джеффрисом и позже Мартином Фаулером во время работы над проектом C3 в Chrysler, и именно в это время группа повысила осведомленность об этих практиках с помощью вики, а также первой книги Кента об XP.
  • В Бостоне, Джефф Сазерленд и Кен Швабер экспериментировал с различными подходами к управлению проектами, основанными на бережливом мышлении и идеях из статьи  "Новая игра разработки новых продуктов" Такеучи и Нонаки. Кен и Джефф совместно создали Scrum и представили его на конференции OOPSLA в 1995 году.
  • Джон Керн вместе с Питером Коадом работал над другим подходом под названием Feature Driven Development (FDD), а Ари Ван Беннекен был в Европе, работая с консорциумом DSDM над еще одним подходом под названием Dynamic System Development Method.
  • Джим Хайсмит работал над подходом под названием Adaptive Software Development, а Алистер Кокберн проводил исследования в IBM и разрабатывал подход под названием Crystal.

Все эти подходы в то время, до написания Манифеста Agile, назывались легкими методами или легкими процессами и имели много общего.

Из воспоминаний Дяди Боба:

“Весной 2000 года Кент Бек созвал встречу в Rogue River Lodge недалеко от своего дома в Медфорде, штат Орегон. Он назвал ее Конференцией лидеров экстремального программирования.

На одной из сессий мы обсуждали создание организации, которая будет стимулировать и поддерживать внедрение XP. Я поддержал эту идею. Мне казалось, что индустрия только выиграет от организации, которая будет продвигать идеи легких методов, таких как XP. Однако эта идея не вызвала энтузиазма у многих других участников. Сессия превратилась в набор болезненных воспоминаний о предыдущей попытке создать организацию вокруг движения Patterns. Я ушел убежденным в том, что создание такой организации должно быть поручено другой группе людей.

Очевидно, я был не одинок. Мартин Фаулер заметил аргументы, которые я приводил на сессии, и подошел ко мне во время перерыва. Мы вкратце обсудили идею расширить сферу деятельности предлагаемой организации, включив в нее всевозможные "легкие методы", такие как Scrum и Crystal Light. Мы чувствовали, что людям, поддерживающим эти методы, есть что добавить, и они могли бы составить основу всеобъемлющего движения.

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

Приглашение на Lightweight Process Summit вызвало восторженный отклик среди приглашенных. Особенно заинтересовался Алистер Кокберн. Так получилось, что он был на грани того, чтобы разослать собственное приглашение на подобное мероприятие. Его комментарий ко мне гласил: "Ваш список приглашений лучше, чем мой". Два списка приглашений были объединены, и началось обсуждение логистики.

Алистер стал фактическим организатором. Он предложил изменить место проведения с Анкиллы на Сноуберд в Солт-Лейк-Сити. Алистер и Джим Хайсмит занялись организацией номеров, питания и мероприятий. Все получилось быстро.

На встрече присутствовали 17 из ~20 приглашенных.”


Контракт Snowbird и Алистером Кокберном

Некоторые из приглашенных не смогли присутствовать, в их числе Крейг Ларман, автор фреймворка LeSS. Крейг теперь постоянно сокрушается, что не смог поехать.

Создание Манифеста

День 1

Поиск общего

Участники приехали в Snowbird с разными ожиданиями. Но никто не ждал чего-то особенного. Думали, что будет очередная конференция, где происходят полезные знакомства, обсуждаются сплетни, выпивается много пива, а время течет приятно и расслабленно.

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

Начали с рассказа о своих подходах: XP, Scrum, Crystal, DSDM, ASD и т. д..

Из воспоминаний Мартина Фаулера:

“Мы быстро обнаружили, что у нас много общего и мы согласны со многими важными аспектами разработки программного обеспечения. Поэтому мы решили пойти дальше, чем просто поговорить. Нам понравилась идея написать документ, который бы одновременно отражал общие взгляды, которые, как нам казалось, мы обнаружили, и служил бы призывом для индустрии программного обеспечения.”

Заметки Дейва Томаса

Выбор названия

Сразу встал вопрос о названии такого документа. "Легкие методы" или "легкие процессы" никому не нравились. В ходе мозгового штурма было предложено множество вариантов, включая lean, responsive, adaptive и agile.  В результате голосования, лидерами стали “Adaptive” и “Agile”.

У Джима Хайсмита была компания “Adaptive Software Development”, и чтобы не давать преимуществ какому-то отдельному подходу, остановились на слове “Agile”.  “Agile”, которое предложил Майкл Бидл, отражало адаптивность и реакцию на изменения, которые, по мнению участников, были так важны для всех подходов.

День 2

Написание манифеста

Во время разговоров участники часто фокусировались на том, что им нравится, а что не нравится, а не на ценностях, в которые верили, поэтому заметки были в формате “мы предпочитаем X, а не Y”.

Фотография Алистера Кокберна


Первоначально придумали три таких сопоставления. Затем группа довела их до пяти, а потом сократила до четырех. Они много раз корректировали их, пока все не согласились с окончательным вариантом.

Заметки Дейва Томаса

Принципы, лежащие в основе манифеста Agile

Во второй части встречи команда работала над принципами, но времени не хватило.  

Заметки Энди Ханта, показывающие раннее формирование принципов

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

Например, принцип 3 "Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев." , вызвал больше всего споров. Одни считали, что должны поставлять программное обеспечение в течение пары недель, другие полагали, что этого сделать невозможно. Интересно, что спустя больше 20 лет мы все еще ведем такие же разговоры с командами, только начинающими внедрять Agile.

Потом был создан сайт Agile манифеста, где был размещен не только сам манифест, но и небольшая статья Джима Хайсмита, в которой дается некоторая предыстория, ссылки на авторов и возможность подписать манифест.

Мартин Фаулер:

“Манифест - это призыв к действию: в нем говорится, за что мы выступаем, а также против чего. Некоторые пункты были сформулированы так, чтобы четко провести различие между нашими взглядами и взглядами многих других представителей индустрии программного обеспечения. Я считаю, что это важно, чтобы преодолеть туманность, которая омрачает многие вещи в последние несколько лет. Я видел, как термины "инкрементный" и "итеративный" превращались во всевозможные странные формы проектов. Я надеюсь, что манифест прояснит, что является agile, а что нет.”

Agile Alliance

Несколько человек из авторов манифеста, решили создать более постоянную организацию для продолжения задуманного движения. Поэтому в конце 2001 года они создали Agile Alliance -  некоммерческую организацию, которая выступает в качестве центра по развитию agile-методов.

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

Так был написан Agile-манифест разработки программного обеспечения, ценностями и принципами которого мы руководствуемся до сих пор.

Источники

- Заметки Alistair Cockburn, Dave Thomas, Jim Highsmith, и Robert Martin

- Серия подкастов Agile Uprising с интервью авторов Манифеста

- Статья The Winter Getaway That Turned the Software World Upside Down в The Atlantic magazine (2017)