Вымышленная история Agile

An Imagined History of Agile Software Development by Graham Lee

Драгоценному вниманию уважаемого читателя предлагается перевод очень ироничной и образной статьи Грэма Ли. Не все иносказания очевидны, отсюда и множество ссылок. Рекомендую вначале прочесть статью целиком и только потом перейти к разъяснениям (если они, конечно, потребуются). В текст вплетена сюжетная линия цикла «Основание» Айзека Азимова: Галактическая Империя вот-вот должна окунуться в тёмные века на многие тысячелетия впёред, но учёный-метематик Гэри Сэлдон с помощью созданной им науки способной предсказывать будущее, знает как укоротить время этого упадка и разрушения всего до 1000 лет.

* * *

Успех предыдущей «Вымышленной истории ООП» зовёт с таким же пристрастием и разгильдяйством пролить свет на занимательную историю аджайла.

Сначала софта не было. Это считалось большой проблемой. Целым кризисом1. Компьютеры-то уже с 1940-х годов, но за почти полвека их существования никто для них так ничего путного и не написал — всё обламывалось: то бюджета не хватило, то со сроками просчитались, то качество никакое. Иногда — всё и сразу.

Настоящий позор для Императора Хоара Первого2, чья империя была известна как Программная Инженерия. Ещё больший стыд вызывала, говорящая на разный манер одно и то же, голограмма Дейкстры, что являлась всякий раз, стоило только подумать о кризисе: «А я же говорил, что не родился ещё ум способный писать маломальски сносный код»3.

Доведённые до отчаяния менеджеры программных проектов маршировали4 своими разработчиками прямо к обрыву с водопадом5. Можно сказать, что лишь Великий Каннингем видел работающий программный продукт раньше, скажем, 2001 года. Почём мне знать? Мне так сказал один очень-очень дорогой консультант6.

В конце концов ситуация стала настолько безнадёжной, что какие-то люди решили наконец что-то с этим делать. Они взяли и поехали кататься на лыжах7. За беседами выяснилось, что у двоих из них что-то худо-бедно да получается. Подход их был, прямо скажем, экстремальным8: они писали код, вместо отчётов о том, как мало кода они написали.

Ну а поскольку другим лыжникам кроме фоток гор показать было нечего, было решено составить документ, в котором говорится о том, как было бы здорово, если бы все захотели писать код, вместо отчётов о том, как мало кода они написали. Это произвело настоящий фурор. Было сложно поверить в такое простое решение полувековой проблемы. Должно быть тут какой-то подвох. Когда люди обратились с этим вопросом к проекции Дейкстры, та уже перестала выходить на связь. Может психоистория дала сбой? А что если Святой Каннингем на самом деле Мул9?

У нового «пиши код, сука» подхода было две беды. Первая лишала менеджеров возможности командовать, играться с календарём и забивать на отчёты о том, как мало кода кто-то там написал. Какие-то другие люди даже собрались и создали «Декларацию о взаимозависимости» проектных менеджеров. В ней много букв о том, что, мол, «да нормально всё, ясно, что это за аджайл такой, пустите нас в свои проекты командовать отчётами и следить за результатами — это точно приведет к тому, что мы будем зашибать бабки».

Связанная с первой вторая заключалась в том, что на этот раз полностью отсутствовало то, что можно было бы продать. Как теперь заставить аджайлеть денег тех, кто до этого покупал «серебрянные пули»10, а теперь понимает, что все эти «жиры» — не самая важная на свете штука? А как же теперь писать о тонкостях аджайла толстые книги, если вся идея умещается на открытке?

Ну как же — сертификация! Всем известно, что мы заботимся больше о людях, чем о процессе. Заплатите за тренинг и это докажет всем, как здорово вы владеете процессом избавления от всех процессов. Очевидно, что такие тренинги для тех приснопамятных созависимых — ой, простите! — взаимозависимых менеджеров проектов. Есть тут и для разработчиков сертификаты, но их маловато, потому как эти организованы даже лучше, когда неорганизованы. Дайте им самим поделиться по предпочитаемым языкам, редакторам и тому как должно выглядеть пустое место11.

И теперь мы подошли... к концу. Всё. Мы в настоящем. Никаких свежих теоретических открытий за последних два десятилетия не произошло. Всё, что у нас есть — это куча разработчиков, которые представляют собой взаимозаменяемый источник производительности12, то есть точку-метрику на графике отчёта проекта, управляемого сверху вниз. Кажется, это даже как-то напоминает успех.

* * *
1

Кризис программного обеспечения.

2

Здесь отсылка к статье Тони Хоара «Старое платье короля», в которой он как бы продолжает историю сказки Ганса Христиана Андерсена. Король так сильно напуган своей прошлой ошибкой, что решает больше никогда не снимать с себя платья. Более того, он оборачивает себя всё новыми и новыми тканями — политиками, процессами, — которые сковывают все его движения, делая жизнь лишь сложнее.

3

Эдсгер Дейкстра, по образованию физик-теоретик, в публикации «Смиренный программист» говорит о скорости вычислений, как о фундаментальной особенности компьютера, которая неизбежно ведёт к технологической сложности. Если длительность отдельной вычислительной операции (машинной инструкции) в миллиарды раз меньше, чем длительность работы самой программы, то можно создавать сколь угодно сложные многоуровневые иерархические структуры из этих операций, описывающих работу этой самой программы. Здесь Дейкстра видится автору как Гэри Сэлдон.

4

«Смертельным маршем» называется проект, в чьей безнадёжности уверены все его участники, однако под давлением вынуждены продолжать над ним работать. Более подробно о таких проектах можно узнать из книги Эдварда Йордона, название которой и популяризировало этот термин.

5

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

6

Уорд Каннингем один из главных идейных вдохновителей аджайл. Именно на него в своих книгах ссылается Кент Бек как на первоисточник, что в целом напоминает устройство религиозного культа. Говоря о консультантах, автор намекает на то, что в тот период отсутствовала вообще какая-либо определённость в управлении программными продуктами, чем пользовались разного рода консультанты. Разве может такой высокооплачиваемый специалист ошибаться?

7

В 2001 году 17 подписантов аджайл манифеста сделали это на горнолыжном курорте.

8

Кент Бек и Уорд Каннингем являются авторами методологии экстремального программирования.

9

Как уже упоминолось, автор использует сюжетную линию романов Азимова. Если коротко, то психоистория есть вымышленная наука Гэри Сэлдона о законах общества и предсказании на их основе будущего. Она подобно термодинамике и кинетике рассматривает движение неразличимых совокупностей, исключая из рассмотрелия всякие их индивидуальные особенности, поскольку те не могут в этой общей картине в принципе внести какие-либо значимые изменения в общую динамику процессов. Мул — один из главных антагонистов, мутант со сверхестественной способностью влиять на течение этих процессов в одиночку. Он умеет управлять эмоциями других таким образом, чтобы те, ничего не подозревая, подчинялись его воле. Таким образом Мул завоёвывает Галактическую Империю и является своеобразным «чёрным лебедем» для плана Сэлдона.

10

Из названия статьи Фреда Брукса о том, что не существует универсального метода в разработке программного обеспечения. На самом деле у автора в оригинале этого сравнения нет. Оно сюда само попросилось. :)

11

Речь идет о соперничестве Emacs и vi и, безусловно, о табуляции и пробелах.

12

Имеется ввиду метрика velocity в Scrum.