Выбрать главу

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

Но звёзды сошлись: по своим тайным аджайло-масонским тропам к нам вышел Джек — опытный коуч из Штатов. Его внешность доброго дедушки с непослушной серебристой бородой, серебристой же шевелюрой и маслянистыми слегка прищуренными ласковыми глазами никак не соответствовала сущности его работы: по призванию он был Джеком — Потрошителем Менеджеров.

С застывшей и отстраненной улыбочкой — фирменным знаком буддийских монахов и Аджайл-коучей — Джек обучал команды работать самостоятельно, не ожидая ни от кого указаний. Если кто-то пытался залезть на броневик и повести людей за собой, Джек шлёпал по стене своей метровой линейкой — хлёстко, гулко и так внезапно, что вздрагивали все. Так мастера Дзена используют неожиданный удар палкой, чтобы привести ученика к просветлению. От хлопка дзен-линейкой броневики рассыпались в прах, а команды осознавали: они работают на клиентов и думают сами, а не подчиняются сильным личностям.

Точнее, команды работают не «на» клиентов, а вместе с ними. Имейлами было не отделаться: я отправился в турне по экзотическим для меня странам, где не водятся обезьяны, слоны и моторикши, — уговаривать клиентов перейти на новые правила игры.

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

— Смотря когда вы хотите услышать плохие новости: через две недели или через шесть месяцев, — объяснял я не столько ему, сколько себе самому.

Коленки у меня дрожали.

Впрочем, все клиенты согласились выделить людей и начать работать по новым правилам — терять им было особо нечего, хуже не будет. Смена парадигмы для каждого из заказчиков начиналась с двухдневного воркшопа с Джеком и его коучами в Бангалоре: наши команды, партнёры из других центров и люди клиента проходили обучение совместно, одной командой.

Вместе с владельцами продуктов клиенты учились техникам приоритезации и нарезки функционала — тоненько, как карпаччо, чтобы за две недели выпустить что-то, нужное конечным пользователям. По вечерам команды сражались в боулинг и, как говорят на казённом языке в Индии, «совместно распивали горячительные напитки» (consuming alcoholic beverages). Никогда я не тратил деньги компании с большей пользой, чем на эту щедрую алкогольную смазку шестерёнок нашей экосистемы.

Паровоз, чайник и качество

В корпорациях работа всегда кипит, делается очень многое — но вот что в итоге сделано, это вопрос. В детстве, когда меня спрашивали, сделал ли я уроки, чаще всего я дипломатично отвечал: «Да, я их делал». Одна буква — подумаешь…

Поэтому в методичке мы чётко определили, что такое «сделано» (definition of done): код считается готовым, только когда он протестирован на всех проектах; написана автоматизация тестирования. И в нём нет багов.

Разработчики интересовались, с какой планеты Солнечной системы мы прилетели. Нет багов?! Бред! Баги — это данность; как без них?

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

— Что это за анекдот, Влади? — спрашивает Манодж.

Не очень смешной: о том, как старый аксакал, который в юности чуть не попал под поезд, разбивает молотком чайник со свистком. Зачем? — Чтобы он не вырос и не стал паровозом, надо убить его, пока он ещё маленький.

Самый лёгкий способ исправить баг — не допустить его. Невозможно написать тысячу строк кода без багов? Напишите сотню. Не можете сотню? Напишите десять; вы говорите, это «медленно»? Но это всегда быстрее и дешевле, чем исправлять баги потом. А если баг пробрался, его надо поймать сразу — чем скорее, тем лучше. От момента, когда разработчик послал код на компиляцию и до получения результатов тестирования этого кода должны проходить минуты, а не недели, как у нас. У нашего печального конвейера поставки — хронический запор, извините за мой французский; код с трудом протискивается в «ворота качества» (quality gates). Ручное тестирование занимает недели; автоматизация тестирования неоднородна, ненадёжна и нестабильна. Разработчики никогда не знают, их ли это баг или ещё один баг в самой системе автоматизации.