Русский
Русский
English
Статистика
Реклама

Agile results

Мы решили внедрить Agile-Lean принципы в процесс разработки на ходу и вот что из этого получилось

19.06.2021 12:05:20 | Автор: admin

Термин бережливого производства (Lean) в настоящее время на слуху. Мы все знаем результаты применения данной идеи в компании Toyota, которые позволили выпускать малые партии комплектующих точно в срок (Just-In-Time, JIT).

В книге Microsoft Secrets (1995 года) авторы (Кузумано и Ричард Селби) описали подходы контроля качества схожие с Lean применяемым в Toyota.

Выпуск малыми партиями как нельзя лучше подходит для разработки программных продуктов. Однако идея Lean еще не сильно распространена среди разработчиков ПО, можно предположить, что обычно команды разработчиков довольно крупные, а нагрузка не велика.

В нашем случае было все наоборот: небольшая команда из 5 разработчиков разного уровня, сокращенные сроки и многоэтапная задача внедрения нового программного продукта в крупной организации.

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

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

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

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

Отправная точка

Изначально в команде применялась несколько упрощенная методология Scrum. Ниже приведу ее описание.

Набор артефактов:

  1. Project backlog журнал требований, реализуемых в рамках проекта, обнаруженные в процессе эксплуатации инциденты. Обычно требования оформляются в виде User Story. В качестве инструмента для верхнеуровневого планирования использовали Excel. Там же, для удобства, чтобы все было в одном месте, на отдельной странице сделали диаграмму Ганта и диаграмму сгорания.

  2. Sprint backlog журнал требований и инцидентов реализуемых за спринт.

  3. Scrum-доска. В качестве инструмента использовали доску Trello с расширением Plus For Trello для контроля трудоемкости.

Роли в команде:

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

  2. Scrum-мастер обычно тимлид группы разработки, занимается управлением процесса разработки, несет ответственность за конечный результат работы разработчиков.

  3. Команда разработчиков состоит из опытных разработчиков и новичков, которые повышают свои компетенции в процессе участия на проекте.

  4. Команда консультантов сотрудники погруженные в бизнес-процессы заказчика. Занимаются подготовкой требований, взаимодействием по требованиям и бизнес-процессам с конечными пользователями, консультируют конечных пользователей, тестируют разработанную функциональность.

Совещания:

  1. Ежедневный митинг команды.

  2. Ретроспектива в конце спринта.

  3. Ежеквартальные ретроспективы.

Параметры спринта:

  1. Продолжительность: 1 месяц.

  2. Ежедневные обновления продуктивной системы по итогам завершения работ по блокам задач.

Данный подход использовался на большинстве проектов, динамика при использовании была положительная.

Во время локдауна подход дал сбой. Удаленная работа наложила свой отпечаток на эффективность работы команды, столкнулись со сложностями, которые необходимо было решить.

Хьюстон, у нас проблемы

Явные проблемы заметили на втором месяце этапа ОПЭ (опытно-промышленной эксплуатации), когда новые требования по дефектам начали закрывать время затраченное на запланированные дефекты и пожелания. Фактически мы стояли на месте. Вероятность успеха сделать все вовремя стремилась к 0.

Для исправления ситуации было решено провести экстренную ретроспективу и собрать все существующие проблемы.

Удалось выявить следующие точки улучшения:

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

  2. Недостаточное качество итогового кода, требуется повысить контроль качества.

  3. Много задач возвращается на доработку, в процессе тестирования выявляются не зафиксированные требования в описании задачи. Необходимо улучшить описание требований.

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

  5. Много времени уходит на разработку и доработку, консультанты простаивают.

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

А что думает заказчик? Заказчик недоволен динамикой реализации требований. Но готов рассмотреть вариант с четким и прогнозируемым планом.

Именно в этот момент появилась идея использовать подход JIT для улучшения текущей ситуации.

Какие преимущества Agile-Lean мы попробуем использовать в нашем проекте

Основываясь на описании бережливого производства, можно выделить не только сильные, но и слабые стороны для бережливой разработки.

Сильные стороны:

  1. Получение результата в ограниченное время.

  2. Устранение ненужных действий, которые могут снизить стоимость.

  3. Расширение прав и возможностей команды разработчиков, помогающих им принимать решения.

  4. Гибкость проекта, возможность его корректировки под требования заказчика.

Слабые стороны:

  1. Большие требования к вовлеченности команды в процесс.

  2. Строгая документация, что несколько противоречит принципам Agile, когда продукт важнее документации.

  3. Необходимость детального планирования перед каждым спринтом.

  4. Необходимо выделять сотрудников, которые будут следить за процессом, при этом не будут участвовать в производстве, что ослабит команду.

  5. Продолжительность процесса разработки может вырасти, необходимо быть к этому готовым.

В процессе адаптации к текущему проекту мы постарались минимизировать слабые стороны за счет более простого документирования (мини-техпроекты, создаваемые разработчиками), упрощенного планирования с небольшим числом участников, договорились с заказчиком работать на результат.

Адаптируем 7 принципов Lean

Согласно методологии Lean для разработки программных продуктов, выделяется 7 основных принципов:

  • Исключение потерь. Потерями считается все, что не добавляет ценности для потребителя: излишняя функциональность; ожидание (паузы) в процессе разработки; нечеткие требования; бюрократизация; медленное внутреннее сообщение.

  • Акцент на обучении. Короткие циклы разработки, раннее тестирование, частая обратная связь с заказчиком.

  • Предельно отсроченное принятие решений. Решение следует принимать не на основе предположений и прогнозов, а после открытия существенных фактов.

  • Предельно быстрая доставка заказчику. Короткие итерации.

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

  • Интегрирование. Передать целостную информацию заказчику. Стремиться к целостной архитектуре. Рефакторинг.

  • Целостное видение. Стандартизация, установление отношений между разработчиками. Разделение разработчиками принципов бережливости. Мыслить широко, делать быстро, ошибаться мало; учиться стремительно.

Проанализировав принципы, сформировали 7 своих, которые подошли к нашей текущей ситуации и должны были помочь закрыть существующие проблемы:

1. Убрать ненужное

Под ненужным будем понимать следующее:

  1. Все, что не приносит пользы конечным пользователям. Сюда относятся непонятные и несрочные требования, редко проявляющиеся дефекты. Мы их откладываем или отказываемся вовсе после согласования с заказчиком.

  2. Ненужный код, дублирование кода.

  3. Нечеткие цели и требования. Если есть такие задачи, то их отправляем на проработку и исключаем из Backlog. После детальной проработки задача может быть снова помещена в Backlog.

  4. Программные дефекты. Любые дефекты появляются, когда код не проходит достаточную проверку качества.

  5. Переключение разработчика между задачами. Задача не должна быть слишком маленькой или слишком большой. Большие задачи приводят к низкому качеству проверки, маленькие увеличивают количество переключений, что в итоге сказывается на производительности.

Что мы сделали, чтобы решить задачу:

  1. Детальная проработка требований и согласование описания требований с тимлидом разработки, дополнительная расшифровка требований тимлидом на понятный для разработчиков язык.

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

  3. Повышение взаимодействия разработчиков, консультантов и тимлида. Регулярные встречи 1:1, еженедельные встречи для мини-обучения и небольших вебинаров, еженедельная упрощенная ретроспектива для обсуждения и решения на месте текущих сложностей.

  4. Формирование задач из набора требований в рамках одного реализуемого процесса. Расчет: разработчик загружен на одну задачу не менее 8 часов.

2. Создавать знания и обмениваться ими

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

Эта информация распространяется по команде разработки, консультанты используют ее, чтобы кроме основного требования протестировать функциональность, которая была затронута при выполнении разработки.

3. Повышение качества кода

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

Для повышения качества были приняты следующие предложения:

  1. Парное программирование. Непосредственное взаимодействие тимлида с разработчиками, совместный анализ требований, проектирование, решение сложных задач.

  2. Степень готовности (Definition of Done, DoD). Задача считается завершенной только в том случае, когда разработчик обсудил реализацию с тимлидом и провел демонстрацию разработанной функциональности консультанту, который закреплен за данной задачей.

  3. Максимальное количество задач в работе (Work In Progress, WIP) каждого разработчика. У разработчика в работе и в тестировании суммарно не может быть больше 3-ех задач. Если разработчик отправил на тестирование все 3 задачи, то он обязан довести эти задачи до публикации в продуктивную систему, для этого активно взаимодействует с консультантами, отвечает на возникающие вопросы, помогает в процессе тестирования.

4. Сокращение спринтов

Принципы гибкой разработки прежде всего ориентированы на быструю реализацию требований. Ускорение разработки становится проще, когда организован стабильный рабочий процесс, конкретные сроки разработки и публикации.

Поэтому решили сделать ряд ограничений на спринт:

  1. Спринт длится 1 рабочую неделю.

  2. На спринт планируется трудоемкость, которую сможет закрыть команда разработки (на основе собранной статистики за предыдущие cпринты). Дополнительно закладывается время на устранение критических дефектов.

  3. Все реализованные доработки тестируются на специальной копии продуктивной системы с продуктивными данными (PreProd), и только после успешной проверки публикуются на продуктивную среду (Prod).

  4. Публикация на продуктивный стенд выполняется только один раз в последний день спринта.

  5. После каждого спринта собирается сокращенная ретроспектива на 30 минут для сбора фидбека с команды.

5. Расширение полномочий команды

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

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

Для реализации данного принципа проводятся встречи ответственных лиц проекта 1 на 1 с каждым участником команды, выявляются конфликтные ситуации, и затем выносятся на очередную ретроспективу, как общая точка улучшения.

6. Не торопиться с принятием решений

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

Решение принятое под воздействием эмоций может породить к большому числу проблем.

7. Регулярная оптимизация процесса

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

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

Для реализации данного принципа с тимлида команды разработки были сняты все задачи по разработке и переданы команде, объем задач на спринт был сокращен, т.к. команда разработки фактически ослабла.

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

  1. Организует периодическое обучение, разбор сложных ситуаций.

  2. Инициирует передачу опыта между разработчиками.

  3. Помогает консультантам в формировании требований, а разработчикам в реализации этих требований.

  4. Занимается развитием разработчиков и расширением их компетенций.

  5. Занимается подбором и развитием инструментария, повышающего эффективность процесса разработки.

Для исключения бутылочного горлышка из наиболее опытных разработчиков был выделен помощник тимлида (саблид, sublead), который также подключается к этим задачам, если тимлид уже занят.

Основная проблема бережливого производства отодвигание сроков

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

Нельзя забывать, что проект имеет определенные сроки, превышение которых может привести как к штрафным санкциям, так и к разрыву контракта. Это необходимо учитывать, если вы планируете внедрять Lean в текущий проект.

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

Итоги

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

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

Но в любом случае необходимо взрастить эксперта среди ваших сотрудников. Он будет сосредоточен на улучшении процесса разработки и мотивирован в повышении своих навыков и навыков команды разработки.

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

  1. Обеспечить единую общую среду общения и обмена знаниями.

  2. Организовывать совместные видеоконференции, желательно с камерой, чтобы видеть эмоции участников.

  3. Не пренебрегать неформальным общением.

Немаловажно обеспечивать канал связи между командой разработки и командой внедрения со стороны заказчика. Заказчику необходимо понимать ваш процесс разработки и публикации, понимать сроки реализации требований. Для клиента важны и качество и скорость разработки, поэтому необходимо находить с ним точки соприкосновения, совместно планировать предстоящий спринт.

По итогам внедрения Lean получили следующие количественные изменения:

  1. Скорость разработки стала прогнозируемой и составила примерно 4 крупные задачи (до 6 часов на задачу в среднем) на сотрудника в неделю, ранее мощность команды в среднем составляла до 2-3 завершенных задач в неделю на сотрудника. Да, задачи крупные и это не совсем по Agile, но это помогло в нашей ситуации.

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

  3. Уменьшилось вдвое количество задач, возвращаемых на доработку.

  4. Еженедельно закрывалось по 3 крупные задачи из техдолга.

  5. Втрое уменьшилось количество дефектов, фиксируемых конечными пользователями.

Данный опыт планируется транслировать на другие проекты компании.

Спасибо за внимание, коллеги! Хотелось бы увидеть в комментариях ваш опыт использования Agile-Lean (или их адаптации) на ваших проектах.

Подробнее..

Год в Scrum наблюдения скрам-мастера

25.07.2020 22:11:28 | Автор: admin
Друзья, привет! Меня зовут Александр Еремин, я скрам-мастер продуктовой команды PRO Daily Banking Росбанка. Мы работаем с сегментом малого и среднего бизнеса.
Сегодня я поделюсь наблюдениями скрам-мастера о первом годе жизни команды в новом фреймворке.

image



Почему мы решили пойти в Scrum? Причины банальные для многих компаний:
  • не совсем простые отношения между бизнесом и разработкой;
  • необходимость ускорить поставки;
  • понимание, что необходимо перестраивать процессы.

Движение к Kick-Off у нас заняло около полугода (с начала 2019 года): изучение, обучение, подготовка материалов и сбор необходимой информации. И вот, наконец,
3 июня 2019 года мы стартанули первый спринт.

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

О чем нужно помнить скрам-мастеру в этот период?

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

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

Scrum, как и LeSS, не терпят личной незрелости участников команд. Если команда не знает, что такое Scrum, никогда не работала в этом фреймворке и, тем более, если до этого уже работала в текущем составе, то я бы рекомендовал воздерживаться от флипа в LeSS сразу.

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

Харды это далеко не все. Если с софтами беда, то даже очень крутой по хардам разработчик может стать большой проблемой.

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

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

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

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

Что нам дал Scrum за год?

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

Мы узаконили работу с техническим долгом и начали отводить ему время в спринтах. Договорились о пропорции 70% VS 30%, где 30% отвели на техдолг.

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

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

Внедрили CI/CD.

Покрыли автотестами фактически весь функционал WEB приложения, что позволило существенно сократить время и трудозатраты на ручной регресс.

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

Внедрили систему мониторинга приложений и железа: теперь в режиме on-line есть возможность следить за состоянием одного и другого, и иногда получать сигналы до того, как пойдут звонки от клиентов. Построили ряд дашбордов для мониторинга бизнес-показателей, включая KPI в автоматическом режиме.

За год мы многое успели сделать, но наш путь еще продолжается.

PS Я намеренно не стал писать про этапы внедрения Scrum. Об этом сейчас много где можно прочитать. Если интересно, то потом могу написать отдельную статью.
Подробнее..

Перевод Лучшая метрика для команды, работающей над продуктом

18.08.2020 14:15:47 | Автор: admin

Иногда при обсуждении продукта метрики только мешают




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

Точнее говоря, ответил я сразу же, но потом этот вопрос несколько недель не давал мне покоя, я снова и снова его обдумывал. В итоге, основательно всё взвесив, я в пришел к более обоснованному ответу.
Итак, меня спросили: Если бы для agile-команды можно было бы отслеживать только две метрики, что бы вы выбрали?
Меня сразу смутило слово метрики, поскольку мой опыт работы с ними был не очень положительным, мягко говоря: они слишком часто используются как оружие, а не как средство улучшения работы. При их использовании коллектив более склонен чувствовать себя чем-то вроде лабораторных крыс.

Однако я всё-таки ответил на вопрос назвал первое, пришло в голову. И нельзя сказать, чтобы я этим ответом гордился. Задай мне этот вопрос сегодня, я ответил бы гораздо более продуманно

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

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

Опасность использования метрик


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

Рассмотрим три ловушки, в которые можно попасть, используя метрики.

1. Избыток метрик


А давайте отслеживать всё подряд! Зачем ограничиваться одним показателем эффективности, если можно использовать больше? Чем больше, тем лучше, верно? Конечно же нет если речь идет о командах, разрабатывающих продукт.

Допустим, отслеживаются такие метрики:

  • Освоение пользователем по функциям.
  • Потеря пользователей с течением времени.
  • Новые пользователи по регионам.
  • Средняя скорость с течением времени.
  • Время цикла.
  • Время выполнения задачи.
  • Суммарный поток.
  • Незавершенная работа.
  • Среднее время существования элементов бэклога.
  • Объем задач, оставшихся в спринте.
  • Объем задач, оставшихся до релиза.
  • Среднее время восстановления работы при сбое.
  • Процент пропущенных дефектов.
  • Процент покрытия кода модульными тестами.

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

Уильям Эдвардс Деминг
Чем больше метрик, тем больше усилий и людей требуется для сбора соответствующих данных. При этом мы даже не пробуем оценить, стоит ли отслеживать каждый конкретный показатель. Но несмотря на всё это, мы пытаемся выжать из отслеживания данных максимум.

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

Поэтому число показателей лучше всё-таки сокращать несмотря на то, что интуиция говорит нам обратное.

2. Сравнение между командами


Как только вы начали сравнивать команды по какой-то метрике, она сразу же становится бесполезной начинается соревнование по этой метрике, в результате чего фокус смещается на нее нездоровым образом.

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

Эли Голдратт
Если нам кажется, что за нами наблюдают, мы начинаем вести себя иначе это называется хоторнским эффектом.

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

К сожалению, те, кого интересует продуктивность команды, используют метрику скорости не так: часто наверху с ее помощью сравнивают результативность команд. В результате отличный инструмент прогнозирования превращается в показатель, привязанный к продуктивности, и между командами начинается нездоровая конкуренция.

В итоге метрикой скорости начинают манипулировать так, что она становится бессмысленной. Наиболее распространены такие манипуляции:

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

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

И такое может произойти и с любой метрикой, если она становится внешней целью.

3. Чрезмерный акцент на объективных данных


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

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

Уильям Эдвардс Деминг
Понемногу углубляясь в цифры, графики, диаграммы и другие показатели эффективности, мы всё реже общаемся с командой. И это никак не повышает чувство защищенности коллектива а лишь еще больше снижает его.

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

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

Единственная нужная метрика


Вы наверняка теперь думаете, что я не люблю данные. Давайте я проясню: я не хочу сказать, что данные это плохо; данные необходимы. В принятии решения без фактов никуда.
Без данных ваши слова просто очередное мнение.

Уильям Эдвардс Деминг
Но перечисленные три проблемы избыточное количество метрик, сравнение между командами и увлечение объективностью не дают использовать данные эффективно. Так что же делать?

Именно этот вопрос я обдумывал последние несколько недель. И я пришел к выводу, что ответ лежит в таком понятии, как вовлеченность команды.

Метрика вовлеченность команды


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

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

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

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

Общайтесь с коллективом.

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

Не просто так мы общаемся словами, а не цифрами и графиками: общение намного более важный фактор, чем какие бы то ни были метрики и графики. Из разговора можно многое узнать, он облегчает понимание. Метрики и диаграммы могут помочь в разговоре, но не заменят его.

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

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

Итак, мой окончательный ответ


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

Теперь, тщательно всё обдумав, я бы дал более взвешенный ответ:

Пусть решают сами команды. Нужно почаще заходить к ним и общаться чтобы они ощущали участие и поддержку.


Методология Agile ориентирована на то, чтобы команда работала сообща и совершенствовалась. Главное здесь не цифры, диаграммы или графики.

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

Особая благодарность Мацею Ярошу и Маартену Далмийну за их вклад в эту статью.

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru