May 25, 2019

Почему мы внедряем Agile или Религиозный Agile-фанатизм

TL;DR При внедрении Agile цель — повышение адаптивности продуктовой разработки. Это многое объясняет и одновременно противоречит много чему.

В Agile-коучинге, как и во многих других дисциплинах, существуют священные коровы, которые принимаются на веру, но редко проверяются критическому осмыслению.

Сам Манифест гибкой разработки является самой крупной такой коровой. Я даже встречал людей, которые умудряются с его помощью объяснять любые сложности.

— Почему мы должны собирать всю команду на планирование?
— Потому что мы ценим людей и их взаимодействие больше процессов и инструментов.

В воздухе раздается резкий запах религиозного фанатизма.

Я вчера на тренинге, который сам и вел, словил яркий инсайт.

Манифест гибкой разработки ПО не отвечает на вопрос “Почему”. Манифест описывает набор стратегий принятия решения (aka “Ценности”) и принципов построения рабочих процессов в условиях неопределенности. Его имеет смысл читать так:

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

Почему это важно

Во-первых это помогает отвечать на некоторое количество стрёмных вопросов:

— Что мне делать, если у меня команда во время спринта не загружена на 100%.

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

— Как ваш Agile поможет мне успевать в срок?

—Работа над самой полезной с точки зрения пользователя функциональностью занимает столько времени, сколько занимает. Если вам важно успевать, то давайте придумаем как снизить неопределенность работы или отрезать ненужное.

— Мы планируем проекты на год вперед и не можем выкинуть оттуда ничего. Почему Agile нам не помогает?

— Самая полезная с точки зрения пользователя функциональность может поменяться с течением времени и не зависит от ваших планов.

— Почему мы должны собирать всю команду на планирование?

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

Во-вторых, это объясняет почему правила Скрама, Канбан-метода, Экстремального программирования нельзя менять.

— Можно мы не будем делать ретроспективу?

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