что такое velocity chart

Планирование спринта — Capacity vs Velocity

Хороший план сегодня лучше безупречного плана завтра. (Джордж Паттон)

На протяжении многих лет я экспериментировал с двумя различными подходами планирования спринта и объема работ. Вот мои мысли об этом:

Давайте рассмотрим оба подхода.

Планирование на основе Capacity (вместимости) спринта

Преимущества:

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

Недостатки:

В результате команды вынуждены выяснять «почему они постоянно не выполняют свои планы» и искать решения на ретроспективе спринта. Но команда не в состоянии изменить процесс целиком. Поэтому, команда обычно придумывает обширный список задач, которые нужно сделать, чтобы решить проблемы. Большинство из таких задач являются бесполезными или неважными и приводят к сокращению объёма спринта.

Планирование основанное на Velocity (Скорости) команды

Выполнение спринта на основе скорости команды устраняет вышеуказанные проблемы и имеет некоторые дополнительные преимущества:

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

Помните, Scrum не решает ваши проблемы. Scrum показывает вам ваши проблемы. Вы должны решить проблемы самостоятельно. (Рон Джеффрис)

Источник

Agile-метрики команд. Часть 2. Хорошие метрики

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

Agile-метрики команд. Часть 1. Сомнительные метрики

Оранжевые организация — большие любители все “мерять”. Лично мое мнение такое: мерять можно что угодно, однако в…

В этой статье мы рассмотрим какие метрики можно использовать со своими Agile командами.

Burn-up Chart

Что это: показывает как вы съедаете скоуп (объем) к дате или же наоборот, к какой даде будет сделан этот объем скоупа.

Что нам это дает? Мы можем прогнозировать. Например, когда будет сделан весь вот этот объем задач?

Или, что будет сделано к Рождеству?

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

End-to-end time to market (Lead time)

Что это: это метрика показывает, сколько времени проходит с момента появления идеи до момента ее фактической реализации и появления на стороне пользователя.

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

Однако, на много интереснее, сколько времени прошло в целом от идеи до реализации. И вот почему:

Вы узнаете, сколько реально времени бизнес в среднем ждет одну фичу

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

Эффективность потока (Flow Efficiency)

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

Например, возьмем упрощенный процесс разработки с точки зрения задачи:

Проработка деталей — Разработка — Тестирование — Выпуск

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

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

Если работали над задачей 1 день (затрекали время), а фактически между активной работой она провела 2 дня (время ожидания), то эффективность такого потока = 1/(1+2) * 100 = 30%

Это значит, что 70% времени работа не ведется, то есть задача “простаивает”.

Количество элементов в беклоге

Что меряет: меряет количество элементов в бэклоге 🙂

Зачем мерять? Что бы понимать, сколько мусора на вашем “складе”. С точки зрения Lean бэклог — это склад. Излишние складские запасы — один из видов потерь.

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

Чем больше ваш бэклог, тем меньше вы понимаете, что в нем храниться, и тем меньше его фактическая актуальность

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

Нет цифры, которая бы идентифицировала предел 🙂 это все очень специфично для команды/продукта/компании. Просто помните, что вряд ли стоит хранить задачи, которым несколько лет, что бы “не забыть” 🙂

Срок жизни элемента беклога

Предыдущая метрика тесно связана с этой метрикой — чем старее задачи в беклоге, тем менее смысла они имеют.

Старость беклога обычно гворит о следующих проблемах:

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

Эволюция Definition of Done

Как померять работу Scrum Master? Очень просто — на сколько растет Definition of Done его команды. Этим же можно померять “взросление команды”.

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

Если команда год сидит с критериями “код написан и протестирован”, то за прошлые 12 месяцев вы не стали более Agile в вашей компании. Вы остались на прошлом уровне. Не развились технически, управленчески и продуктово.

Источник

Метрики в Scrum и Kanban

По разным причинам Scrum получил очень широкое распространение среди IT компаний. Многие компании и отдельные команды начали внедрять Scrum в своих проектах. У одних это получается, у других не очень. Грамотный и опытный специалист перед внедрением чего-то нового всегда задумывается о метриках. Как убедиться, что внедрение Scrum идет по плану? Улучшается ли производительность команды? Нет ли каких-то проблем? Если вы тоже задавались этими вопросами, добро пожаловать под кат.

Читайте также:  что делать при ожоге горячим супом

И тут в Scrum очень мало ответов. Кроме сугубо бизнес-метрик, которые можно применять практически в любом процессе (ROI, Earned Business Value, Running Tested Features и т.д.), в Scrum предлагается метрика Velocity. Но уже писано переписано, что использовать Velocity в качестве метрики не стоит. Это может привести к неожиданным неприятным последствиям.

Получается, что хороших метрик на первый взгляд нет. В конце статьи я упомяну некоторые неявные метрики в Scrum, но пока давайте поговорим о причине проблем. Самая главная причина – это время. Бизнес практически все измеряет временем (даже деньги – это время). А в Scrum это самое время фиксируется (быстренько все вспоминаем «железный треугольник») и разработка ведется итерациями. Но внутри итерации происходит много всего интересного: мы делаем задачи, пользовательские истории, тестрируем, собираем продукт, устанавливаем и т.д. И вся эта информация теряется на фоне итерации. Происходит так называемое «сглаживание шумов». Если мы затянули с одной активностью, то можем нагнать в другой. Ведь итерация целиком принадлежит команде и команда может «придумывать» внутри итерации что угодно, лишь бы в конце все было готово. Этот подход очень хорош для планирования, но отвратителен для метрик.

Во-первых, мы очень редко можем снимать показатели метрик – в конце итерации. А это в лучшем случае раз в неделю. В основном, все таки раз в две недели. Во-вторых, мы уже упоминали «сглаживание» и оно тоже вносит свои коррективы. Всю итерацию ситуация была из рук вон плохая, а в конце все сделали нечеловеческое усилие и вуаля – все готово и метрики в порядке. Хорошо это или нет? Нет! Мы теряем полезную информацию и не учимся на своих ошибках.

Совсем по-другому дела обстоят в Kanban. Тут внимание уделяется каждой задаче. Метрики снимаются со всего потока задач, который проходит через команду разработки. Вот краткий список метрик:

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

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

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

А какие метрики применяете вы? Какие метрики хорошо работали для вас в Scrum?

Источник

Миф: Velocity – это производительность

День ото дня мы приближаемся к Agile-трансформации. Одна из самых важных целей для нас – увеличить velocity команд на X %. Слышали об этом? Слова Марка Андрессена о том, что «программное обеспечение пожирает мир», становятся отличительной чертой отраслей, которые раньше были менее автоматизированными.

Компания, занимающаяся разработкой Agile-продуктов, опросила более 18 000 клиентов и специалистов по разработке программного обеспечения.

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

Velocity – это дополнительная и необязательная часть практики Scrum.

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

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

Velocity – это способ измерения прогресса, а не конкретная величина!

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

Тогда что же такое velocity?

Velocity — это показатель способности превратить бэклог продукта в работоспособный функционал за отрезок времени или определенную стоимость.

Моя цель — увеличить velocity команды.

Читайте также:  индексация размера платы за содержание и ремонт жилого помещения

Если учитывать, что velocity — это условный показатель, с ним легко играть, раздувать и сдувать его. Приравнивая velocity к производительности, вы создаете «искаженный стимул» для оптимизации velocity за счет разработки качественного программного обеспечения. Сознательно или нет, но команды будут пытаться продемонстрировать увеличение производительности, поднимая velocity. Если будет поставлена такая цель, то velocity станет пропорционально производительности. Но команды начнут «срезать углы», чтобы быстрее доставить функционал. В свою очередь это приведет к увеличению технического долга, а продукт, который команды развивают, будет становиться все более и более хрупким.

Волшебный момент: откройте диаграмму сгорания задач команды

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

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

Как же тогда измерить производительность?

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

Итоговый результат важнее выходных показателей.

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

Как измерить ценность?

Если вы будете выводить производительность из velocity, то увидите статистическое улучшение. Но оно не будет означать успешное развитие.

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

Помните, что релиз нужен для понимания ценности.

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

Тогда что же измерять?

Одна из идей Кена Швабера называется «Evidence-Based Management» или «Доказательное управление». Он говорит, что управление на основе фактических данных организации, занимающейся разработкой ПО, является самым полезным способом преобразования ПО из издержек в прибыльные активы.

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

Участники вместе с преподавателем-экспертом разберут виды оценок проектов и задач в зависимости от срочности, размера и сложности объёма работ.

Источник

Мини-справочник и руководство по Scrum

Данная статья – это мини-справочник и руководство по методу Scrum, созданные в результате прочтения книги Сазерленда, статей из интернета и применения на практике.

Надо различать Agile и Scrum. Agile – это методология (наука), а Scrum – это метод достижения цели.

Применяя Scrum важно иметь настоящую команду профессионалов, соблюдать условия прозрачности, открытости и доверия.

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

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

— доктор Корри Блок, эксперт по стратегии бизнеса в области оценки счастья.

Мини-справочник Scrum

Scrum (скрам) – схватка, гибкий метод управления проектами. Термин пришел из игры рэгби.

Product Owner (продакт оунэр) – владелец продукта, связующее звено между заказчиком и командой разработки. Самая главная ответственность Product Owner – это создание и контроль Product Backlog.

Основные обязанности и ответственность Product Owner при управлении Product Backlog:

Scrum Master (скрам мастер) – арбитр, который организует и проводит совещания, следит за соблюдением всех принципов скрама, разрешает противоречия и защищает команду от отвлекающих факторов, проводит фасилитацию митингов, отвечает за учет, хранение и выдачу SCRUM-инвентаря. Данная роль не предполагает ничего иного, кроме корректного ведения скрам-процесса.

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

Development Team (дэвэлопмэнт тим) – команда разработки, кросс-функциональная команда разработчиков проекта, состоящая из специалистов разных профилей: программистов, тестировщиков, аналитиков, архитекторов и т.д. Размер команды составляет от 5 до 9 человек (5 оптимально). Команда является единственным полностью вовлеченным участником разработки и отвечает за результат как единое целое. Данная рабочая единица является самодостаточной, самоуправляемой и самоорганизующейся. Это как некий единый организм, состоящий из отдельных элементов.

Stakeholders (стэкхолдэрс) – дословно акционеры, лица, которые инициируют проект (бизнес-заказчики), которым скрам-проект будет приносить выгоду. Они вовлечены в скрам только во время обзорного совещания по спринту (Sprint Review).

Читайте также:  что делать если утерян брачный договор

User – пользователь продукта.

Product Backlog (продакт бэклог) – или Backlog требования к продукту, пожелания заказчика по функционалу и дизайну, все «хотелки»; они расставляются по степени важности и ценности для заказчика.

Epic (эпик) – одна из нескольких глобальных функций продукта. В эпике могут содержаться User Story, например, пакет пожеланий одного пользователя или список задач (Task) для реализации Эпика.

User Story (юзер стори) – или Story, cюжет, в которых содержатся пожелания пользователя.

Task (таск) – задача, фрагмент, который необходимо выполнить для реализации цели проекта.

Sprint (спринт) – временной промежуток от 1 до 4 недель, за который команда создает часть продукта, готовую к демонстрации и ценную для заказчика. Оптимальная продолжительность спринта – 1-2 недели. Это делается для того, чтобы информация, полученная в начале первой недели, не забылась к концу второй недели и не требовалось время на восстановление связей.

Sprint Goal (спринт гоол) – цель спринта.

Sprint Planning Meeting (спринт плэнин митин) – планирование Sprint, скрам-собрание, где участвует Scrum Team. Выбираются задания из Бэклога, которые возможно выполнить за спринт.

Scrum Poker (скрам покэ) – быстрый и точный способ сбора оценок при помощи колоды карт с числами Фибоначчи (1,2,3,5,8,13). Можно использовать мобильные приложения для Scrum Poker. Задачи с оценкой 13 необходимо дробить на более мелкие.

Story Points (стори поинтc) – единица оценки сложности выполнения задачи. Story Points имеет смысл применять, если проект состоит из 3-х и более спринтов, так как у команды накапливается статистика и опыт оценивания задач. На проекте из одного-двух спринтов использовать Story Points нет смысла, если только не для получения практики.

Daily Scrum Meeting (дэйли скрам митин) – ежедневное собрание не более 15 минут, проводимое в одно и то же время. Участвует скрам тим, наблюдать могут все. Проводит скрам-мастер. Цель митинга – оперативный обмен информацией, все в курсе происходящего, нет коммуникационных разрывов. Задаются три вопроса: что сделал вчера? что будешь делать сегодня? какие препятствия встают на пути к цели?

Sprint Review (спринт ревью) – обзор спринта, участвуют все, встреча открытая. Команда рассказывает, что было сделано, и демонстрирует те части проекта, которые окончательно готовы.

Sprint Retrospective Meeting (спринт рэтроспэктив митин) – ретроспектива, участвует скрам тим. Собрание за «круглым» столом. Обсуждаются вопросы: что прошло хорошо, а что плохо? что можно было сделать лучше? Главное, никого не обличать! Рассматривается рабочий процесс. Цель – совершенствование рабочего процесса, стать «супер» командой.

Definition of Done (DoD) (дэфэнишин оф дан) – критерий, определяющий степень готовности задачи. Применяется в тех случаях когда окончательно невозможно проверить готовность задачи, например, если элемент функционала находится в другой скрам команде или компании. Описание DoD начинается со строчки «done = », например, done = функционал реализован в тестовой среде, требуется выгрузка и проверка в основной среде.

Velocity (велосити) – скорость команды; для аналитики строится график Velocity, где по оси Х кол-во спринтов, а по оси Y Story Points.На основе этих показателей выстраиваются средние Velocity и Story Points.

Burndown Chart (бёрдаун чарт) – диаграмма сгорания задач. Направление графика сверху вниз. Предназначен для отслеживания оставшегося объема работ, где по оси Х кол-во дней спринта, а по оси Y кол-во Story Points. Первому дню спринта соответствует максимальное кол-во Story Points.

Burnup Chart (бёрнап чарт) – диаграмма сгорания задач. Направление графика снизу вверх. Предназначен для отслеживания объема работ, где по оси Х кол-во дней спринта, а по оси Y кол-во Story Points. Последнему дню спринта соответствует максимальное кол-во Story Points.

Abnormal Termination (Абнормол тёрминэйшн) – остановка спринта, аномальное действие. Остановку инициирует Product Owner. Происходит митинг, на котором обсуждаются причины возникновения Abnormal Termination. Затем Спринт запускается вновь.

Руководство Scrum

Product Backlog
Формируется при общей встрече или индивидуальных интервью со всеми заинтересованными лицами (стэкхолдерами, пользователями). Записываются User Story, требования и пожелания.

Задачи с компонентами типа: 3IIIC, 5VE сложнее и требуют больше времени.

123, ABC – быстрее, потому что мозгу не надо переключаться между разными типами задач.

User Story

Происходит совместно с Development team. Команда должна оценить каждую задачу: выполнима ли она в принципе? достаточно ли информации для выполнения?

Формируется Sprint. Sprint Planning Meeting. Scrum Poker

Продолжительность митинга не более 8 часов. Для 2-x недельного спринта митинг длится 2 часа. Для визуализации исполнения задач в спринте удобно использовать Kanban-доску.

Расставление Story Points (за основу взят ряд Фибоначчи – 1,2,3,5,8,13). Задачи 13 и более поинтов необходимо дробить на более мелкие. Срок выполнения задачи одним разработчиком не более одного дня или 8 часов. Если в проекте всего один спринт, то нет смысла расставлять Story Points, потому что не будет статистики и соответственно не будет точности определения оценок.
Для корректного присвоения Story Points можно вести статистику, как, например, в такой таблице:

Проводится каждый день. Все могут наблюдать. Говорит только Scrum Team. Проводит Scrum Master.

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

Длительность митинга: по одному часу на каждую неделю спринта (2 часа Sprint Review = 2-х недельному спринту).Подготовка к данной встрече не должна превышать 2-х часов.

Sprint Retrospective Meeting. Ретроспектива.

Проводится в последний день спринта.

Призвана оценить результат команды. Задаются вопросы: что можно улучшить? как? как повысить эффективность команды?
Время на ретроспективу для 2-х недельного спринта не более 2-х часов.
Понятие Кайдзен и счастье. Кайдзен – непрерывное совершенствование. Счастливые люди = высокая производительность команды.

Можно задать вопросы: Что может сделать вас счастливее в следующем спринте? Что сделает вас счастливее вообще?

Источник

Строительный портал