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

Спринт здорового человека

Зачем мы используем скрам?

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

Однако когда инженеров накапливается много, встает задача ими управлять, распределять работу, и как-то следить, что она выполняется в срок. Чем больше и сложнее задачи, тем больше сил уходит на организацию, и тем сложнее выстроить коммуникации в команде.

На помощь приходит скрам - серебрянная пуля всех методик, волшебная таблетка всех процессов. От мала до велика - все работают по скраму - и стартап, и мегакорпорация. И это не удивительно - за пару десятилетий подход превратился в золотой стандарт индустрии, отход от коротого обсуждают презрительным шепотом.

Но почему же я раз за разом, в одном проекте за другим, вижу одинаковые проблемы? Эти проблемы были десять лет назад, есть и сейчас. И кажется, мы их вот-вот решим, стоит только сильно захотеть...

Разделяй сейчас, властвовать переносим в другой спринт

Сколько раз вы слышали подобное:

Эта задача не умещается в спринт, поэтому нужно разделить ее на две.

Не знаю как вы, но я встречал эту практику в 10/10 компаний где я работал, где был внедрен скрам. Казалось бы, что в этом плохого?

Концепция разбиения задач на атомарные части проста, но умна в то же время: разбивайте задачу на части до тех пор, пока части не будут так малы, что их нельзя больше разбить. А раз задача настолько мала, значит должно быть очевидно, как ее делать, и сколько времени это займет, так?

Режем на части

Так, но с одной оговоркой: это работает для задач, где мы точно знаем, что нужно сделать, или хотя бы в какую сторону идти. Чтобы разбить задачу на части, нужно для начала понимать, из каких же частей она состоит. А это само по себе требует некоторых знаний о задаче, и часто не самых поверхностных.

Нюанс в том, что под это определение не попадают RnD задачи, то есть задачи, в которых присутствует большая доля неизвестного. Причем часто это не такое неизвестное, которое известно как найти, а неизвестное неизвестное - то есть мы не знаем, что это, и где его искать, но знаем только, что нам оно пока не известно.

RnD задачи не вписываются в спринты

Например, исследование новых технологий, дизайн архитектуры, разработка нового функционала (особенно вкупе с интеграцией) - это задачи, где всплывает множество неизвестных неизвестных. Так много, что их просто невозможно оценить заранее - задачу можно выполнить за день, "случайно наткнувшись" на решение проблемы, а можно две недели изучать документацию, проводить эксперименты и сидеть в дебаггере, но по-прежнему не найти выход.

Может быть, точная оценка решит проблему неизвестности?

Оценивай, или оценят тебя!

Оценка - ключевая концепция скрама. Каждый спринт строится вокруг оценки задач и наполнения ими спринта. А уж сколько инструментов для оценки у нас есть! И Planning Poker, и Bucket System, и T-Shirt Sizes, и множество других.

Они все разные, но у них есть одно сходство - ни один не предоставляет работающей методики оценки объема задач. Это либо гадание, либо соревнование, либо аукцион "кто назовет меньше". Ни один метод не даст гарантированного хотя бы с 25% погрешностью результата оценки.

А в чем же причина? Неужели разработчики саботируют свою работу? Или метрики не подходят, и нужно изменять не в числах Фибоначи, а в прыжках лягушки? Или размеры футболок нужно корректировать в разных странах?

Нет, дело не в этом. Все дело в том, что мы не умеем оценивать задачи. Нет, не так.

Мы не умеем оценивать задачи!

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

Может мы просто недостаточно стараемся?

Церемония

Спросите у любого скрам мастера: "Из-за чего возникают подобные проблемы?". Ответ ожидаемо похож - "недостаточное соблюдение церемоний" или "недостаточное внедрение скрам практик".

Что это значит в переводе на разговорный язык? То, что в неправильной оценке задач виновата команда, которая проводит недостаточно refinements, и недостаточно усердно делится переживаниями на ретроспективе. А может, кто-то неправильно стоит на daily standup? Или нужно больше времени тратить на планирование спринта, чтобы уж никто не смог отмазаться от данных оценок!

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

Скрам мастер готовится к ретро

Что мы имеем в реальности? По 10 часов скрам церемоний в неделю, которые не дают сосредоточиться на выполнении задач, на которых постоянно спрашивают про статус этих задач (хотя статус можно узнать, просто заглянув в Jira). Вместо фокуса на работе, мы занимаемся "дрессировкой джиры", коллективно тренируемся разделять задачи, которые не влезают в спринт, и тыкать пальцем в небо с умным видом, когда нас спрашивают об оценке.

Мотивации и церемоний недостаточно, чтобы решать задачи.

Иногда может потребоваться работать.

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

Но это еще не все.

Скрам - новый Ватерфол

Доводилось ли вам работать в крупной международной компании? Слышали ли вы про SAFe? Держали ли в руках книгу на 100 страниц про процессы жизненного цикла software в компании?

Если да, я вас поздравляю - ваша компания купилась на аферу под названием "аджайл для взрослых"! А именно, жесткие и сложные методологии под эгидой "гибкости" и "легкости".

Что такое аджайл? Откройте Agile Manifesto. Вы удивитесь, насколько мало общего такие вещи, как SAFe, имеют с этим документом. Мне не сложно включить его прямо в статью:

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

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

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

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

Источник - Agile Manifesto

Однако ловкие продавцы церемоний усвоили только часть:

  • процесс важнее всего

  • документация не нужна

  • плохой план можно исправить итеративностью

  • бумажка превыше всего

В итоге мы получили все, против чего боролись авторы agile manifesto - жесткие фиксированные сроки, запланированный объем работ для каждой фазы, давящие кросс-командные планирования, загоняющие команды в жесткие рамки и лишая гибкости коллаборации, а также большое количество бюрократии и бумагомарания.

Но ведь это аджайл, верно? Мы же продаем компании гибкость! А как этого добиться?

Легко! Возьмите классический waterwall, теперь разбейте фазу реализации на двухнедельные отрезки, добавьте церемоний (не важно, подходят ли они процессу или нет), и заставьте разбивать задачи на атомы! Скажите клиенту, что это делается во благо обратной связи, и не забудьте выписать счет!

SAFe это совсем не ватерфол, ну вот ни разу!

Продавец скрама, аджайл-коуч, бизнес-тренер

В итоге мы получили поголовное помешательство на скраме под соусом "гибких методологий". Однако скрам давно перестал хоть отдаленно напоминать исходную идею, и оброс огромным слоем корпоративного мусора, сертификаций и мастер-классов.

В итоге применение скрама к таким задачам превращается в бюрократический цирк, в котором никому не до смеха.

Все кончено?

На самом деле нет. Есть надежда.

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

Для RnD существуют более подходящие методологии - например, Kanban. Практика не требует четких оценок, которые сложно дать в условиях высокой неизвестности или новизны. К тому же, Kanban не привязывает задачи к синтетическим временным контейнерам, позволяя выполнять задачи в той мере, в которой они этого требуют - иногда один день, а иногда и целый месяц.

Инструменты Kanban, такие как проиретизация задач и WIP limit, дают возможность управлять потоком работы, не прерывая сам рабочий процесс.

Не хватило денег на Jira

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

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

Начните с Agile Manifesto. Экспериментируйте. Стройте свой уникальный процесс.

Гибкость также и в том, чтобы быть гибким в выборе методик и их применении. Многие команды экспериментируют с технологиями и инструментами. Не бойтесь подвергать экспериментам и аджайл - тем более, что это не требует расходов на лицензию.

А что же скрам, пора отправить его на свалку? Вовсе нет, есть сферы, где он отлично работает. Там, где задачи легки в оценке, а количество неизвестного и нового довольно низко - например, проекты поддержки и сопровождения.

Такая работа идеально ложится на скрам - задачи легко оценить, они обычно невелики, а работа заключается в поиске и исправлении ошибок, либо мелких доработках. Идеально для скрам! Только не забывайте приносить часть рабочих часов в жертву своему мастеру, иначе это не будет работать.

Утешительные Итоги

Если прочитав статью, вы узнали себя - не стоит вешать нос! Хоть скрам и является карго-культом, он все-таки худо-бедно работает, а значит помогает решать задачи. По крайней мере это позволяет бизнесам двигаться вперед, а значит у вас и завтра будет работа.

Но если вы стоите перед задачей построения гибкого процесса разработки - не слушайте тех, кто громче всех кричит. Вернитесь к истокам agile, и выберите то, что будет работать лучше всего для вас. И если это будет скрам - примите это решение осознанно!


P.S.: спасибо за комментарии, мне приятно их читать и отвечать. Хочу добавить:

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

Скрам - как коммунизм - в теории элегантен и эффективен, на практике сколько ни пробовали - работает только в Китае, и то с оговорками.

Если концепция хрупкая и неустойчивая, а для ее "правильного" применения нужно очень очень постараться (с чем большинство не справляется) - стоит заключить, что эксплуатационные характеристики не соответсвуют ожиданиям.

Индустрия же пошла своим путем - компании пытаются "накормить" скрамом своих сотрудников, насаждая практики не разобравшись. В итоге имеем то, что в заголовке.


Картинки

  • Braden Collum

  • Clark Douglas

  • Julia Arte

  • Parabol

  • Ozan Safak - продавец скрама

  • Stormseeker - обложка