На недавней конференции Agile Base Camp лично мне больше всего понравился вопрос трезвомыслящего менеджера: “Есть ли альтернатива Agile?”. И тут хочется высказать свою точку зрения о том, почему Agile сейчас так популярен (которую, кстати, я уже не раз озвучивал в кулуарах).
Когда только появился термин Agile, то было очень модно его противопоставлять “последовательному” (aka Waterfall) подходу. Несколько лет назад уже стало неактуально сравнивать “традиционный” подход ведения проектов с одним из существующих Agile подходов. Скорее вставал вопрос “у вас уже Agile или еще нет”. Причем к категории “еще нет” чаще всего относятся проекты у которых разработка ведется по методологии “как получиться” и лишь малый процент мог честно сказать “у нас осознанный и качественный Waterfall”.
Если отмотать ленту истории немного назад, то принято считать, что “водопадная модель” была сформулирована в 1970-м, и стала “официальным” подходом для разработки программного обеспечения. Официальным, потому что на тот момент основным заказчиком ПО были военные, которые закрепили эту методологию соответствующим меморандумом, обязывающем всех подрядчиков именно так и работать. Для тех же, кто не работал с военными, Project Management Institute (PMI) пытался сформулировать основные принципы управления проектами разработки ПО в виде PM Body Of Knowledge (PMBOK), который в версиях тех времен (кажется 3) включал “водопадную модель” как основной и единственный рекомендованный подход. Итак, для военных и крупных корпораций, которые делали огромные проекты по тем временам, это вполне подходило.
Что интересно, упоминания об итеративно-инкрементальной разработке встречались уже в 1968 согласно Крейгу Ларману (Craig Larman) – автору нескольких книг и, можно сказать, исследователю истории Agile. Хотя, по сути, только в середине 1990-х стали активно говорить о несостоятельности “водопадной модели” и, как мы помним, на тот момент уже появлялись первые презентации методологий Scrum, eXtreme Programming, Evo и других. И только в 2001-м году, активисты “не водопадного” подхода собрались и написали тот самый Agile Manifesto. Что их к этому подвигло и ими руководило, мы можем по-прежнему лишь догадываться 😉
Что же поменялось за те 20-30 лет, от 70-х до 2000-х? На мой взгляд, поменялся “рынок потребителей ПО” и вместо больших проектов для больших заказчиков стало во много раз больше маленьких проектов для реальных людей. Теперь уже все компании разработчики ПО хотят выпускать быстрее, чаще, регулярно и т.п. Термины Time-To-Market и “адаптация под нужды пользователя” стали обязательными в словаре не только менеджеров.
Поэтому согласно недавнему опросу почти 80% решений о внедрении в компании Agile методологий и идей, принадлежат менеджерам высшего и среднего звена. Более того, в последней версии PMBOK уже идет речь об итеративно-инкрементальном подходе, как об основном рекомендованном. И, даже PMI начали делать свою Agile-сертификацию 🙂
Все это говорит о том, что “бренд Agile” состоялся, завоевал свою популярность и стал философией de-facto. В тоже время мы по-прежнему еще слабо представляем как именно “работать по Agile”. Как сказал Майк Кон:
Мне хочется, чтобы все agile-бренды в конечном счете исчезли, и осталось просто то, как мы разрабатываем программное обеспечение.
И в этом я с ним согласен. Мы можем сравнивать Scrum и Kanban, сосредотачиваться на техническом совершенстве каждого или наоборот, развивать коммуникации и командную работу или пытаться искать другие “альтернативы Agile”, хотя по сути мы все движемся в одном направлении.
Хорошая новость в том, что нас ждет еще не один год интересных дискуссий, экспериментов и поисков лучших подходов. Ну и соответственно, темы для статей на нашем сайте не иссякнут, оставайтесь с нами 🙂
Еще в 1970 году Уинстон Ройс, которому приписывается авторство “водопада”, на самом деле написал разгромную статью ), критикующую однопроходную водопадную модель.
Автор же военного стандарта DoD STD-2167, очевидно, читал статью Ройса “по диагонали”, и именно по этой иронии судьбы “водопад” приобрел такую популярность. Примечательно, что сами американские военные отказались от этого стандарта еще в 1994 году, а его автор впоследствии высказывал сожаление о том, что на момент создания стандарта не был знаком с итеративно-инкрементальной моделью.
Но. Хотелось бы отметить, что не вполне корректно ставить знак равенства между итеративно-инкрементальным циклом разработки и Agile. Первое – необходимое, но отнюдь не достаточное условие для второго. И вот как раз внедрение остальных Agile практик и связано с куда большими сложностями.
Возьмем, например, самоорганизующиеся команды. ОткрываемКобёрна с его требованием к пропорциям зрелых специалистов в такой команде (“At least 30% full-time Cockburn Level 2 and 3 experts”) и со слезами на глазах сравниваем со столь любимой украинскими аутсорсерами моделью “ледоколы и катерки”.
Или, еще более радикальный пример – fixed-all проекты. Сколько бы апологеты Agile не посылали лучи ненависти в адрес таких проектов, они за 30 лет никуда из реалий бизнеса не делись.
Поэтому, воспринимать и тем более рекламировать Agile как очередную серебряную пулю – рискованное мероприятие: может получиться та же история, что и с “водопадом”. Как и было бы несколько неосмотрительно полностью списывать со счетов практики классического проектного менеджмента. Для большого числа реальных проектов, именно “коктейль” из Agile и традиционных практик будет оптимальным решением.
Тимофей, хотел написать короткий ответ, но получился целый пост. Поэтому линка: http://yurizh.blogspot.com/2011/05/agile.html