Коуберн, который в тот момент был занят организацией похожей встречи по тем же причинам, что и Мартин с Фаулером, с радостью принял приглашение, предложил взять на себя логистику и организовать встречу неподалеку от его дома в Юте[20].
Несколько месяцев спустя, в феврале 2001 года, Бек, Коуберн, Мартин, Фаулер, Швабер, Сазерленд и еще одиннадцать опытных лидеров мнений собрались в городе Сноуберде, чтобы понять, что не так в способах создания ПО. Они задались вопросом: как они могли бы улучшить способы разработки ПО, используя свой опыт? Как разработчики ПО, они истово гордились собственным ремеслом, однако их не удовлетворяло ни состояние отрасли в целом, ни негативное восприятие разработки ПО как профессии. Они хотели создавать ПО, которое нравится потребителям, и повлиять на организации, формировавшие среду с лучшим ПО[21],[22].
Через несколько дней споров и обсуждений разработчики создали «Манифест гибкой разработки программного обеспечения» (Agile-манифест), состоящий из четырех ценностей и двенадцати принципов[23].
Манифест гибкой разработки программного обеспечения[24]
Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим.
Благодаря проделанной работе мы смогли осознать, что:
люди и взаимодействие важнее процессов и инструментов;
работающий продукт важнее исчерпывающей документации;
сотрудничество с заказчиком важнее согласования условий контракта;
готовность к изменениям важнее следования первоначальному плану.
То есть, не отрицая важности того, что справа, мы все-таки больше ценим то, что слева.
Следом за ценностями через несколько недель после встречи в Сноуберде были разработаны двенадцать принципов.
1. Наивысший приоритет для нас удовлетворение потребностей заказчика благодаря регулярной и ранней поставке ценного программного обеспечения.
2. Изменение требований приветствуется даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения, чтобы обеспечить заказчику конкурентное преимущество.
3. Работающий продукт следует выпускать как можно чаще, с периодичностью от двух-трех недель до двух-трех месяцев.
4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
5. Над проектом должны работать мотивированные профессионалы. Чтобы проект был реализован, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
6. Непосредственное общение наиболее практичный и эффективный способ обмена информацией как с командой, так и внутри команды.
7. Работающий продукт основной показатель прогресса.
8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
10. Простота искусство минимизации лишней работы крайне необходима.
11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
12. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
Цели и принципы Agile-манифеста были вдохновлены движениями, сформированными на протяжении нескольких лет: Scrum, Crystal, Extreme Programming, Dynamic Systems Development Method (DSDM) и Feature-Driven Programming (в главе 3 вы узнаете больше об этих методологиях). Все эти методологии и философии, лежащие в их основе, направлены на разработку лучшего ПО, однако авторы манифеста поняли, что создали нечто более глубокое и основательное, чем программный документ.
Джим Хайсмит, один из подписантов, сказал:
«Я думаю, что аgile-методологи на самом деле сентиментальны они поставляют потребителям хорошие продукты, работая в среде, которая не только говорит: Люди наш самый важный ресурс, но и действительно ведет себя так, как будто люди это самое важное, теряя при этом слово ресурс»[25].
Джеймс Греннинг, другой автор манифеста, соглашается:
«Манифест был написан в то время, когда процесс ценился однозначно больше, чем люди. Поскольку мы писали код каждый день, мы видели весь вред, который такое мышление приносило нашей работе и создаваемым нами продуктам. Прежде всего Agile-манифест говорит о том, как сделать мир безопасным для программистов»[26].
Подписанты в первую очередь были заинтересованы в том, чтобы найти способ создать среду для написания лучшего ПО, однако сама профессия переживала кризис. Их соглашение было названо «Манифестом гибкой разработки программного обеспечения» не просто так[27].
В то же самое время целые рынки, индустрии и экономики рушились, не сумев адаптироваться к повсеместному проникновению ПО, возросшей мобильности и широкополосному доступу в интернет. Облачные технологии быстро дешевели, и доступ к информации приближался к абсолютному. Сочетание легкодоступных технологий и информации с низким входным барьером подорвало традиционный цикл деятельности бизнеса.
Несмотря на то что в прошлом огромные корпорации имели над меньшими конкурентами очевидное преимущество, теперь оно быстро обесценивалось и превращалось в существенный недостаток. Важнейшие ресурсы для конкуренции из физических стали виртуальными, и небольшие проворные организации могли быстро получить доступ к техническим единицам, необходимым, чтобы соревноваться с более крупными конкурентами.
Программное обеспечение изменило способы обработки информации, и теперь оно значительно влияло на целые рынки и индустрии а следовательно, и компании, работающие в них.
В 2011 году Марк Андриссен, выдающийся инвестор и сооснователь интернет-браузера Netscape, решился заявить, что «программное обеспечение поглощает мир». В статье «Почему ПО поглощает мир», опубликованной влиятельным Wall Street Journal, Андриссен отметил, что почти каждая отрасль финансы, недвижимость, реклама, здравоохранение, телекоммуникации и т. д. значительно изменилась, и фирмы, работающие в данных сферах, имеют свойство разрушаться.
«60 лет компьютерной революции, 40 лет с изобретения микропроцессора и 20 лет с момента появления современного интернета. Все технологии, необходимые для трансформации отраслей с помощью ПО, наконец работают и могут распространяться на весь земной шар!»[28]
VUCA И CYNEFIN: КОММЕРЧЕСКОЕ ОРИЕНТИРОВАНИЕ В ДИВНОМ НОВОМ МИРЕ
Идея, что традиционные «законы производства» изменились и признанные лидеры на самом деле проигрывали более быстрым и адаптивным конкурентам, легко и точно была изложена Американской военной академией.
Военнослужащие заметили: подобно тому как традиционные бизнес-планы разрушались из-за возросшей скорости бизнеса, так и их тщательно продуманные планы становились все менее эффективны на поле боя после холодной войны. События 11 сентября 2001 года и последующая террористическая активность заставили военных описать новую среду, в которой им пришлось работать, с помощью акронима VUCA: нестабильность (volatility), неопределенность (uncertainty), сложность (complexity) и неоднозначность (ambiguity) (см. рис. 1.2).
Рис. 1.2. Нестабильность, неопределенность, сложность, неоднозначность
VUCA можно определить следующим образом.