ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 343

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Глава 1. Введение в Agile
38
Была идея создать некоммерческую организацию . Я ее горячо продвигал, но многие не разделяли моего энтузиазма . Видимо, у них был неблагоприятный опыт со схожей организацией в под- держку паттернов проектирования . Я был расстроен тем, как про- шло заседание . Но Мартин Фаулер поддержал меня и предложил встретиться позже в Чикаго, чтобы все обсудить и выговориться .
Я согласился .
С Мартином мы встретились осенью 2000 года в кафе неподале- ку от офиса Thought Works, где он работал . Я описал ему свою идею собрать сторонников всех конкурирующих легковесных методологий и составить манифест, провозглашающий единство .
Мартин сделал несколько рекомендаций касательно пригласи- тельного списка . Мы вместе начали составлять приглашение .
В тот же день, немного позже, я отправил это письмо . Темой письма было проведение встречи по обсуждению легковесных методологий .
Одним из приглашенных был Алистер Кокберн . Он позвонил мне и сказал, что тоже подумывал провести подобную встречу, однако наш список ему понравился больше, чем его собственный . Он пред- ложил объединить наши пригласительные списки и договориться о встрече, если мы согласимся провести ее на горнолыжном курор- те Сноуберд неподалеку от Солт-Лейк-Сити .
Итак, встреча намечалась в Сноуберде .
СНОУБЕРД
Я был немало удивлен тем, что так много людей решило по сетить мероприятие . Неужели кому-то действительно была интересна встреча, темой которой были легковесные методологии?

Сноуберд
39
Однако мы все собрались в Сноуберде в гостиничном номере с пре- красным видом из окна .
Пришли 17 человек . С тех пор нас не раз критиковали за то, что все собравшиеся были белыми мужчинами среднего возраста . Критика была бы вполне справедлива, если бы не одно «но» . Дело в том, что в списке приглашенных фигурировала одна женщина — Агнета
Якобсон, но она не смогла приехать .
И, в конце концов, в то время во всем мире подавляющее большин- ство квалифицированных программистов было белыми мужчина- ми среднего возраста . А вот почему так сложилось — это отдельная история для совершенно другой книги .
У всех 17 из нас были довольно разные взгляды на пять различных легковесных методологий . Сторонников экстремального про- граммирования было больше всех . Это были Кент Бек, Джеймс
Греннинг, Уорд Каннингем, Рон Джеффрис и я .
Сторонников Scrum было немного меньше — Кен Швабер, Майк
Бидл и Джефф Сазерленд .
Джон Керн высказывался в поддержку разработки, управляемой функциональностью, а Ариван Беннекум был сторонником мето- да разработки динамических систем . Наконец, Алистер Кокберн выступал за семейство методик, являвшихся его собственной раз- работкой — Crystal .
Остальные участники были относительно самостоятельны . На- пример, Энди Хант и Дейв Томас пропагандировали прагматизм в программировании . Они даже написали работу на эту тему . Брай- ан Марик был консультантом по тестированию . Джим Хайсмит был консультантом по управлению разработкой и сопровождению


Глава 1. Введение в Agile
40
программного обеспечения . Стив Меллор следил за честностью каждого, потому что был сторонником подходов, управляемых моделями, к которым многие из нас относились с недоверием .
И, наконец, присутствовал Мартин Фаулер . У него были личные взаимоотношения с командой, занимавшейся экстремальным про- граммированием, однако к каким-либо «фирменным» методикам он относился довольно скептически . Мнения всех присутствую- щих он воспринимал благожелательно .
Я почти ничего не помню из того, что произошло за два дня нашей встречи . Другие участники событий видят картину по-своему, не так, как я
1
. Поэтому просто расскажу вам то, что сам помню . Рас- ценивайте мои слова как воспоминания пожилого человека . Мне уже 65, а с того времени прошло почти два десятка лет . Возможно, я упустил несколько подробностей, но суть, думаю, передал пра- вильно .
Каким-то образом мы решили, что я буду открывать встречу . Я по- благодарил всех за присутствие и высказал мнение, что наша цель состоит в составлении манифеста, в котором бы говорилось о разработке программного обеспечения в целом и описывались общие черты всех легковесных методологий, подмеченные нами .
Закончив, я сел .
Я считаю, что это был мой единственный вклад в проведение встречи .
1
Не так давно увидела свет история события, изложенная в литературном журнале The Atlantic за авторством Кэролайн Мимбс Найс: Caroline
Mimbs Nyce . The winter getaway that turned the software world upside down // The Atlantic . 08 .12 .2017 . URL: https://www.theatlantic.com/technology/
archive/2017/12/agile-manifesto-a-history/547715/
. Когда я это все писал, то еще не ознакомился с той статьей, поскольку мне не хотелось путать свои вос- поминания, которые я изложил здесь .

Сноуберд
41
Мы не занимались ничем необычным, когда записывали различные проблемы на карточках, а затем сортировали их на полу в группы по сходству . На самом деле я понятия не имею, что это нам дало .
Просто помню, что мы это делали .
Затрудняюсь сказать, на какой день произошло чудо, — на пер- вый или второй . Как мне кажется, это произошло к концу первого дня .
Возможно, именно группирование по сходству помогло нам вы- делить четыре ценности: личности и взаимодействие, рабочее программное обеспечение, взаимодействие с клиентами и реаги- рование на изменения . Кто-то написал это на магнитно-маркерной доске, находившейся в передней части комнаты . Затем ему в голову пришла блестящая мысль о том, что эти ценности приоритетны, но не заменяют остальные взаимодополняющие ценности методов, инструментов, документации, договоров и планов .
Это ключевая идея Манифеста Agile, и, кажется, никто отчетливо не помнит, кто первый обозначил ее на доске . Как мне помнится, это был Уорд Каннингем . Но сам Уорд приписывает это авторство
Мартину Фаулеру .
Посмотрите на фотографию на сайте agilemanifesto.org
. Уорд го- ворит, что сделал снимок, чтобы запечатлеть тот самый момент .
На фото можно разглядеть Мартина Фаулера у доски и прочих участников встречи, которые собрались вокруг него
1
. Это придает
1
Слева направо, полукругом около Мартина Фаулера, на фотографии пред- ставлены: Дейв Томас, Энди Хант (или, возможно, Джон Керн), я (меня можно узнать по синим джинсам и мультитулу на ремне), Джим Хайсмит, кто-то, Рон Джеффрис и Джеймс Греннинг . Кто-то, уже не помню кто, сидел позади Рона . Возле его ботинка на полу, похоже, находится одна из карточек, которые мы использовали при группировке по сходству .


Глава 1. Введение в Agile
42
правдоподобность высказыванию Уорда о том, что идея на самом деле принадлежала Мартину .
С другой стороны, возможно, и хорошо, что мы никогда уже этого не узнаем точно .
Как только произошло чудо, все собравшиеся объединились под его знаменем . Мы проявляли таланты ораторского мастерства, как могли . Насколько мне помнится, именно Уорд написал преамбулу к Манифесту, которая гласила: «Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим» .
Некоторые из нас внесли крошечные изменения и предложения, однако было ясно, что мы достигли согласия . В номере ощущалась изоляция от всего мира . Никаких разногласий . Никаких споров .
Никаких обсуждений или альтернатив . В этих четырех строках была вся суть .
z
Люди и взаимодействие важнее процессов и инструментов .
z
Работающий продукт важнее исчерпывающей документации .
z
Сотрудничество с заказчиком важнее согласования условий контракта .
z
Готовность к изменениям важнее следования первоначальному плану .
Я говорил, что это все? Тогда так и казалось . Но, конечно, пред- стояло прояснить много частностей . Первая их них — как назвать то, что нам удалось определить?
Название Agile не сулило легкого успеха . Было много разных претендентов . Мне понравилось что-то вроде «легковесный»
(lightweight), но кроме меня — никому . Остальные считали, что

Сноуберд
43
в таком названии подразумевалась несущественность . Им полюби- лось слово «адаптивный» (adaptive) . Кто-то вспомнил слово agile
1
, а кто-то заметил, что в то время это слово было в ходу в армии .
В результате, хотя никому особо не нравилось слово agile, его вы- брали в качестве названия как наименьшее из зол .
Когда второй день подходил к концу, Уорд вызвался самостоятель- но сделать сайт agilemanifesto.org и опубликовать манифест . По- лагаю, что выставить манифест на всеобщее обозрение — его идея .
После событий в Сноуберде
Следующие две недели были не столь насыщенны и романтичны, как те два дня в Сноуберде . В основном это время было занято тру- доемкой работой над составлением документа, провозглашавшего наши ценности, который Уорд в итоге выложил на сайт .
Мы все соглашались в необходимости написать такой документ, чтобы показать и объяснить четыре ценности . Все же те четыре ценности являются своего рода утверждениями, с которыми каж- дый может согласиться, не внося при этом в их понимание никаких изменений . Принципы дают понимание того, что действие этих ценностей выходит за пределы второстепенного значения так на- зываемых прописных истин .
У меня мало отчетливых воспоминаний того времени, но помню, как мы пересылали по электронной почте документ с принципами друг другу туда-сюда, неустанно пытаясь дополнить его . Было сложно, но мы все понимали, что это стоит наших усилий . Когда все было сделано, каждый из нас вернулся к своей обыденной жиз-
1
С англ . «живой», «проворный», «гибкий» . — Примеч. пер.


Глава 1. Введение в Agile
44
ни . Предполагаю, что многие из нас считали, что на этом история и закончится .
Никто и подумать не мог, что нас так поддержат . Никто не ожи- дал, насколько судьбоносными окажутся те два дня . Но чтобы не задирать нос от своей важности и причастности, я непрестанно на- поминаю себе о том, что Алистер Кокберн тоже был близок к про- ведению подобной встречи . И поэтому задаюсь вопросом, сколько еще было таких же, как я . Поэтому успокаиваю себя мыслью, что просто настало время, и если бы не мы, 17 человек, собравшихся в горах Юты, то собралась бы другая группа, которая пришла бы примерно к тому же самому .
КРАТКИЙ ОБЗОР AGILE
Как вести управление проектом по разработке и сопровождению программного обеспечения? На протяжении многих лет существо- вало много подходов — и большинство из них, мягко говоря, далеки от идеала . Надежды и молитвы распространены среди менеджеров, верующих в то, что судьба их проекта зависит от воли божьей .
А те, кто в это не верит, частенько полагаются на мотивационные методики: жесткие сроки с наказаниями плетками, цепями, рас- каленным маслом, фотографии людей, покоряющих скалы, и чаек, парящих над морем .
Подобные подходы почти повсеместно приводят к характерным признакам отвратительного управления проектами — команды разработчиков постоянно задерживают проект, несмотря на то что много работают сверхурочно . Команды, которые пишут про- граммы явно низкого качества, не соответствующие потребностям клиентов .

Краткий обзор Agile
45
Правило креста
Причина, по которой эти методы терпят крах, заключается в том, что менеджеры не понимают элементарную сущность программ- ных проектов . Сама сущность любого проекта накладывает на него ограничения . Есть такое понятие в управлении проектами, как
«правило креста» . Хорошо, быстро, дешево, готово . Выбирайте три любых пункта . Но четвертый будет не под силу . Проект может быть одновременно хорошим, дешевым, быстро выполняться . Но он никогда не будет завершен . Проект может быть завершен, и быть при этом быстрым и дешевым . Но вот хорошим не выйдет .
Реальность диктует свои правила, и умелый менеджер понимает, что у всех четырех параметров есть свои коэффициенты . В руках грамотного менеджера проект будет достаточно хорошим и деше- вым, достаточно быстро выполняться и при этом будет завершен на требуемом этапе . Умелый менеджер распределяет эти коэффици- енты по нужным параметрам, а не выдвигает требования к проекту по всем параметрам на 100 % . Такой способ управления проектами старается внедрить Agile .
Сейчас я хотел бы убедиться в вашем понимании того, что Agile — это набор методов, помогающий разработчикам и менеджерам про- являть необходимый прагматизм в управлении проектами . Однако такое управление не достигается автоматически . Нет никаких гаран- тий, что менеджер примет уместное решение . Действительно, вполне можно работать в рамках набора методов Agile, но несмотря на это управление проектом будет неграмотным и проект провалится .
Графики на стенах
Но как Agile способствует управлению проектами? Agile предо- ставляет данные . Когда применяется методология Agile, команда


Глава 1. Введение в Agile
46
разработчиков передает менеджерам именно те сведения, которые позволяют принимать верные решения .
Присмотримся к рис . 1 .2 . Представим, что такой график висит на стене кабинета, где ведется разработка проекта . Разве это не было бы потрясающе?
Скорость
Единицы сл ож ности
60 50 40 30 20 10 0
20.01.2003 27.01.2003 03.02.2003 10.02.2003 17.
02
.200 3
24.02.2003 03.03.200 3
10.03.2003
Рис. 1.2. Скорость работы команды
Этот график отражает производительность команды разработчи- ков за каждую неделю . Единицы измерения — единицы сложности
(story point) . Мы поговорим о них позже . Просто посмотрите на этот график . Каждый может сделать вывод, взглянув на график, насколько быстро продвигается работа команды . Менее чем за де- сять секунд можно понять, что средняя скорость работы составляет
45 единиц в неделю .
Кто угодно, даже сам менеджер, поймет, что на следующей неделе команда выполнит около 45 единиц работы . Получается, что че- рез десяток недель команда выполнит уже примерно 450 единиц .
Вот это мощь! Особенно это хорошо помогает, когда менеджеры

Краткий обзор Agile
47
и коман да хорошо осознают, сколько всего единиц насчитывает проект . На самом деле опытные команды, практикующие Agile, черпают эти сведения из еще одного графика .
Оставшиеся единицы сложности
Единицы с ло жности
600 500 400 300 200 100 0
20.01.2003 27.01.2003 03.02.2003 10.02.2003 17.
02
.200 3
24.02.2003 03.03.200 3
10.03.2003
Рис. 1.3. Диаграмма сгорания задач
На рис . 1 .3 изображена диаграмма сгорания задач . По ней можно судить, сколько единиц остается до следующей крупной вехи .
Обратите внимание на то, как уменьшаются столбики с каждой неделей . Это связано с тем, что в процессе разработки постоянно появляются новые требования и проблемы .
Обратите внимание и на то, что у диаграммы сгорания задач есть угол наклона, который позволяет предположить, когда примерно будет достигнута нужная веха . Буквально любой может взглянуть на оба графика и вычислить, что следующий этап начнется в июне при скорости работ 45 единиц в неделю .
Присмотритесь внимательно к диаграмме, в ней есть странность .
Столбец, обозначенный 17 февраля, почему-то выбивается из ряда . Это может быть связано с добавлением новой функции или

Глава 1. Введение в Agile
48
некоторыми другими существенными изменениями в требовани- ях . Или так получилось в результате переоценки разработчиками оставшегося объема задач . В любом случае мы хотим знать, как ход работ отражается на графике, чтобы организовать правильное управление проектом .
При использовании Agile чрезвычайно важно, чтобы эти два гра- фика были на виду . Одна из движущих сил при использовании
Agile во время разработки программного обеспечения — предо- ставление данных, необходимых менеджерам для распределения коэффициентов по параметрам согласно правилу креста и наибо- лее благополучного завершения проекта .
Многие не согласятся с этим . В конце концов, эти графики не упо- минаются в Манифесте Agile, поэтому не все команды, его практи- кующие, их применяют . И если говорить начистоту, сами графики не так уж и важны . Важны как раз-таки данные .
Agile — это в первую очередь подход, который срабатывает только тогда, когда есть обратная связь . Каждая неделя, день, час и даже минута проходят в зависимости от результатов предыдущей не- дели, дня, часа или минуты . Соответствующие поправки вносятся уже после . Это относится как к управлению отдельными програм- мистами, так и командами программистов целиком . Без необходи- мых данных не получится эффективного управления
1
Поэтому даже если у вас на стене нет этих графиков, убедитесь в том, что есть данные, необходимые для управления . Убедитесь
1
Этот принцип тесно связан с циклом НОРД — петлей Джона Бойда, кратко изложенным здесь: https://ru.wikipedia.org/wiki/Цикл_НОРД
. Boyd J . R .
A Discourse on Winning and Losing . Air Force Base Maxwell, Alabama:
Aeronautics University Library, 1987 . Document No . M-U 43947 .