ЖАНРЫ

Agile-трансформация. Раскрывая гибкость бизнеса
Шрифт:

Scrum обращен к управленческой стороне разработки продуктов, но не освещает специфические технические практики в ПО. Кент Бек, выдающийся инженер ПО, обратился напрямую к этой стороне вопроса, когда в конце 1990-х представил концепцию экстремального программирования (Extreme Programming, XP) в одноименной книге. Главная цель XP – уменьшение стоимости изменений; чем быстрее схлопывается петля обратной связи для поступательных циклических изменений в процессе работы, тем с большей вероятностью мы создаем ПО, которые хотели создать. Бек убеждал менеджеров признать: изменения – естественный и желательный аспект разработки ПО. Вместо того чтобы пытаться определить стабильный набор требований, нужно быть готовым к изменениям и предвидеть их как ожидаемую часть процесса разработки продукта (см. рис. 1.1) [17] .

17

Kent Beck. Extreme Programming Explained. Addison-Wesley, 2000.

Рис. 1.1. Практики экстремального программирования создают возможности быстрого обучения посредством множественных слоев петли обратной связи

Работа Бека привлекла внимание Роберта Мартина, успешного консультанта по С++ и объектно-ориентированному проектированию, работавшего в Чикаго. Клиенты часто просили Мартина придумать процесс, который сможет систематизировать практики, поставляемые им своим клиентам. Поэтому его заинтриговала работа Бека и после мюнхенской конференции, посвященной вопросам ПО, они стали общаться. Мартин чувствовал, что Бек знает что-то действительно важное, и поехал в Портленд, чтобы научиться разработке через тестирование и парному программированию. Чем больше Мартин узнавал, тем больше убеждался, что они с Беком приближаются к тому, о чем просили клиенты.

Одновременно с этим, в 1991 году, Алистеру Коуберну, методологу, работающему в новой консалтинговой группе компании IBM, дали задание найти причины успеха проектных групп. Углубившись в изучение проектов на Smalltalk и С++, Коуберн обнаружил, что в литературе того времени не были описаны факторы, делающие проектные группы успешными. Опросив десятки таких групп, он выделил ключевые элементы успешных команд в семейство методологий Crystal: серию легких процессов, подходящих к определенным типам проектов. Основная идея заключается в том, что каждому проекту нужна своя методология и методы должны меняться так же, как меняется ситуация [18] .

18

http://agileuprising.libsyn.com/manifesto-co-author-interview-alistair-cockburn

Пока эти лидеры мнений искали способы написать лучшее ПО, индустрия сама по себе находилась в плачевном состоянии. На протяжении 1970–1990-х было несколько происшествий, породивших заголовки о крупных превышениях сметы, хронических проблемах с качеством и возмутительных задержках продукта. В 1994 году группа из Стандиша опубликовала отчет CHAOS (акроним, англ. chaos – хаос), согласно которому среднее превышение запланированных расходов на проекты программного обеспечения составляло 189 % [19] . Отчет часто цитировали. Согласно другим данным, примерно половина проектов работали, но немногие из них считались успешными. Кроме того, три четверти всех крупных программных продуктов, представленных потребителям, не отвечали их требованиям.

19

https://www.standishgroup.com/sample_research_files/chaos_report_1994.pdf

Ситуация не осталась без внимания программистов. Они поняли, что текущая ситуация неустойчива. На протяжении 1990-х профессионалы сферы ПО регулярно встречались и делились идеями. Что общего есть у появляющихся подходов? Какими способами можно улучшить написание ПО? Люди понимали, что ситуацию надо менять, но их идеи еще не могли срастись во что-то значимое.

Нужно было что-то делать. Поскольку XP начало продвигаться в сообществе, Мартин встретился в Чикаго с Мартином Фаулером, экспертом XP, с которым он познакомился на конференции Кента Бека XP Leadership осенью 2000 года. Вместе они пришли к выводу, что необходимо организовать что-то вроде саммита, чтобы люди с похожими взглядами смогли собраться и создать манифест легких процессов. Мартин и Фаулер начали подбирать участников этой встречи так, чтобы на ней были представлены разные взгляды. Одним из тех, кто получил приглашение на «саммит легких процессов» по электронной почте, был Алистер Коуберн.

Коуберн, который в тот момент был занят организацией похожей встречи по тем же причинам, что и Мартин с Фаулером, с радостью принял приглашение, предложил взять на себя логистику и организовать встречу неподалеку от его дома в Юте [20] .

Несколько месяцев спустя, в феврале 2001 года, Бек, Коуберн, Мартин, Фаулер, Швабер, Сазерленд и еще одиннадцать опытных лидеров мнений собрались в городе Сноуберде, чтобы понять, что не так в способах создания ПО. Они задались вопросом: как они могли бы улучшить способы разработки ПО, используя свой опыт? Как разработчики ПО, они истово гордились собственным ремеслом, однако их не удовлетворяло ни состояние отрасли в целом, ни негативное восприятие разработки ПО как профессии. Они хотели создавать ПО, которое нравится потребителям, и повлиять на организации, формировавшие среду с лучшим ПО [21] , [22] .

20

Алистер Кокберн, переписка, январь 2018-го.

21

http://podcast.agileuprising.com/manifesto-co-author-interview-robert-martin/

22

http://podcast.agileuprising.com/manifesto-co-author-review-brian-marick/

Через несколько дней споров и обсуждений разработчики создали «Манифест гибкой разработки программного обеспечения» (Agile-манифест), состоящий из четырех ценностей и двенадцати принципов [23] .

Манифест гибкой разработки программного обеспечения [24]

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

Благодаря проделанной работе мы смогли осознать, что:

люди и взаимодействие важнее процессов и инструментов;

работающий продукт важнее исчерпывающей документации;

сотрудничество с заказчиком важнее согласования условий контракта;

готовность к изменениям важнее следования первоначальному плану.

То есть, не отрицая важности того, что справа, мы все-таки больше ценим то, что слева.

23

agilemanifesto.org

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] .

25

http://agilemanifesto.org/history.html

26

Джеймс Греннинг, беседа с автором, август 2017-го.

Подписанты в первую очередь были заинтересованы в том, чтобы найти способ создать среду для написания лучшего ПО, однако сама профессия переживала кризис. Их соглашение было названо «Манифестом гибкой разработки программного обеспечения» не просто так [27] .

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

27

http://agilemanifesto.org/history.html

Поделиться с друзьями: