«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 1 image](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami.png)
Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
Роли
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 2 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 2](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-2.jpg)
Это Пэт, владелец продукта. Она не знает технических деталей, зато обладает видением общей картинки, знает, зачем мы делаем продукт, какие проблемы он будет решать и для кого.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 3 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 3](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-3.jpg)
Это заинтересованные лица. Они будут использовать продукт, поддерживать его или будут как-то еще вовлечены в разработку.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 4 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 4](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-4.jpg)
Это пользовательские истории. В них выражены пожелания заинтересованных лиц. Например, «у системы бронирования авиабилетов у пользователя должен быть поиск по рейсам».
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 5 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 5](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-5.jpg)
У заинтересованных лиц много идей, и Пэт помогает сделать из идей пользовательские истории.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 6 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 6](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-6.jpg)
Это команда разработчиков. Те, кто будет строить рабочую систему.
Пропускная способность
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 7 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 7](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-7.jpg)
Так как команда использует гибкую методологию разработки, они не копят все эти истории до большого релиза, наоборот, они выпускают их сразу и как можно чаще. Обычно они выпускают 4-6 пользовательских историй в неделю. Это их пропускная способность. Ее очень просто измерить — количество пользовательских историй за 7 дней.
Некоторые истории большие, их можно считать за две, некоторые маленькие, их можно считать за половину.
Для того чтобы поддерживать этот ритм и чтобы не завязнуть в ручном регрессивном тестировании, команда усиленно работает над автоматическим тестированиеми постоянной интеграцией. Поэтому на каждую фичу приходится писать автотесты, и большая часть кода имеет встроенные автотесты.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 8 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 8](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-8.jpg)
Проблема заключается в том, что заинтересованных лиц очень много и их запросы невозможно удовлетворить 4-6 историями в неделю.
Каждый раз когда мы реализуем пользовательскую историю, у них появляется еще несколько идей, из которых вытекает еще больше запросов.
Что произойдет, если мы будем делать все, о чем они нас просят? У нас будет перегруз.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 9 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 9](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-9.jpg)
Допустим, команда возьмется сделать 10 новых историй за эту неделю.Если на входе 10 а на выходе 4-6, то команда будет перегружена. Будет спешить, переключаться между задачами, терять мотивацию, в итоге снижается производительность и качество. Это заведомо проигрышная стратегия.
Scrum и XP в этом случае используют метод “вчерашняя погода”. Команда говорит: “За последнее время мы делали 4-6 фич в неделю, какие 4-6 фич мы будем делать на следующей неделе?”
Задача владельца продукта в том, чтобы грамотно выбирать, какие именно пользовательские истории будут реализованы на этой неделе.
Kanban рекомендует ограничиться несколькими задачами — WIP limit. Допустим команда рещает, что 5 — это приемлемое количество пользовательских историй, над которыми они смогут работать одновременно без перегруза, не перескакивая с одной на другую.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 10 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 10](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-10.jpg)
Оба эти подхода хорошо работают и оба они создают очередь задач, которые в Scrum называется Backlog, или приоритезированный список задач.
Этой очередью тоже необходимо управлять.Если заинтересованные лица запрашивают 10 историй в неделю, а команда реализует 4-6 историй, то эта очередь будет становиться все больше и больше. И скоро ваш Backlog будет расписан на полгода вперед. То есть одна история будет ждать выхода 6 месяцев.
Есть только один способ держать список задач под контролем — это слово “нет”
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 11 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 11](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-11.jpg)
Это наиболее важное слово для владельца продуктом. Он должен тренировать его каждый день перед зеркалом.
Сказать “да” — легко. Но более важная задача — решать, что не надо делать и нести за это ответственность. Владелец продукта так же определяет последовательность, что делаем сейчас, а что позже. Это сложная работа и выполнять ее следует вместе с командой разработки и минимум одним заинтересованным лицом.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 12 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 12](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-12.jpg)
Для того, чтобы правильно расставить приоритеты, владелец продукта должен понимать ценность каждой истории и ее объем.
Принятие решений
Некоторые истории крайне необходимы, а некоторые просто бонусные фичи. На разработку одних историй уйдет пару часов, на разработку других — месяцы.
Как соотносится размер истории и ее ценность? Никак. Больше не значит лучше. Ценность и сложность задачи — вот что помогает Пэт расставлять приоритеты.
Как владелец продукта определяет ценность и объем истории? Никак. Это игра в угадайку. И лучше в ней участвовать всем. Пэт постоянно общается с заинтересованными лицами, чтобы знать ценность каждой истории, общается с командой разработчиков, чтобы знать объем работ, но все это приблизительные догадки, никаких точных цифр. Вначале всегда будут промахи и это нормально. Гораздо большую ценность представляет общение, чем сверхточные цифры.
Каждый раз когда разработчики выпускают что то новое, мы узнаем больше информации и можем лучше ориентироваться.
Одной приоритезации недостаточно. Чтобы выпускать истории быстро и часто, нужно разбивать на кусочки, которые можно сделать за пару дней. Мы хотим чтобы в начале воронки были маленькие и четкие истории а в конце — большие и неопределенные. Вовремя делать такую разбивку мы можем воспользоваться нашими последними открытиями относительно продукта и нужд пользователя. Это все называется очистка Backlogа.
Пэт проводит встречу по очистке Backlogа каждую среду с 11 до 12. Обычно на ней собирается вся команда и иногда несколько заинтересованных лиц. Содержание встреч бывает разным. Фокусировка на оценке, на разбивке историй, на критериях приемки.
Владелец ИТ-продукта должен постоянно со всеми общаться
Матерые владельцы продукта выделяют 2 компонента успеха: страсть к работе и общение. Какие задачи владелец продукта решает месте с командой.
Баланс между сложностью разработки и ценностью пользовательской истории
На ранней стадии балансу угрожает неопределенность и сразу несколько рисков.
Риски
Бизнес риск: «Правильную ли вещь мы делаем?»
Социальный риск: «Сможем ли мы сделать то что нужно?»
Технический риск: «Будет ли проект работать на данной платформе?»
Риски со стоимостью и сроками реализации: «Успеем ли и хватит ли денег?»
Знание можно рассматривать как противоположность риску. Когда неопределенность большая, мы фокусируемся на приобретении знаний — прототипах интерфейса, технических экспериментах,
Компромисс между ценностями знания и ценностями для клиента
С точки зрения заказчика кривая выглядит вот так:
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 14 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 14](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-14.jpg)
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 15 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 15](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-15.jpg)
С точки зрения ценности для заказчика эта кривая выглядит вот так. По мере того как неопределенности снижаются, мы можем концентрироваться на ценностях для заказчика. Мы знаем что и как делать. Остается только сделать. После того как реализовали основные истории, будем делать бонусные фичи или запускать новый проект.
Компромисс между краткосрочным и долгосрочным мышлением
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 16 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 16](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-16.jpg)
Что реализовать в первую очередь? Срочно устранять ошибки или начать разрабатывать сногсшибательную фичу, которая поразит пользователей. Или делать сложный апгрейд платформы, который ускорит работу в будущем. Необходимо постоянно соблюдать баланс между реактивной и проактивной работой.
Делать правильные вещи, делать вещи правильно или делать быстро?
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 17 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 17](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-17.jpg)
В идеале — все три одновременно, но в реальности приходится выбирать.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 18 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 18](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-18.jpg)
Предположим мы здесь. Пытаемся создать идеальный продукт с помощью идеальной архитектуры. Если мы потратим много времени, мы можем не попасть в «маркетинговое окно» и у нас появятся проблемы с деньгами.
или
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 19 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 19](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-19.jpg)
Мы делаем быстро прототип продукта. Для краткосрочной перспективы это неплохо. В долгосрочной — мы получаем технический риск. И скорость разработки снизится до нуля.
или
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 20 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 20](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-20.jpg)
Мы вот здесь, создаем прекрасный храм в рекордные сроки. Но пользователю не нужен был храм, ему нужен был жилой фургон.
Между ролями в Scrum существует здоровое противостояние
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 21 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 21](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-21.jpg)
Владелец продукта фокусируется на построении правильных вещей. Команда фокусируется на том, чтобы строить вещи правильно. Scrum-мастер или agile-тренер фокусируется на сокращении цикла обратной связи.
Отдельно стоит подчеркнуть важность скорости, так ккак короткий цикл обратной связи ускоряет обучение. Это позволяет нам быстрее узнавать какие вещи правильные и как их правильно построить.
Компромисс между разработкой нового продукта и улучшением старого
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 22 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 22](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-22.jpg)
Продукт никогда не может быть полностью завершен, потому что ему постоянно нужны изменения. Когда команда начинает работу над новым продуктом, что происходит со старым? Передача продукта от одной команды к другой — очень затратно и рискованно. Обычно команда поддерживает старый продукт, разрабатывая новый. Поэтому скорее понятие “Backlog” относится не к продукту а к команде. Backlog — это список вещей, которые хочет владелец продукта от команды. И набор историй для разных продуктов. Владельце продукта нужно постоянно выбирать актуальные для реализации.
График уничтожения историй
Время от времени, заинтересованные лица будут спрашивать у Пэт: “Когда выпустят мою фичу?” или “Сколько фич выпустят к рождеству?”. Владелец продукта должен уметь управлять ожиданиями пользователя. И управлять ожиданиями реалистично.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 23 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 23](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-23.jpg)
Два тренда — оптимистичный и пессимистичный (можно на глаз). Расстояние между трендами показывает насколько нестабильна скорость работы команды. Со временем эти тренды стабилизируются и конус неопределенности будет уменьшаться.
Предположим, заинтересованное лицо спрашивает, когда вот эта фича будет сделана?
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 24 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 24](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-24.jpg)
Это вопрос с фиксированным содержанием и неопределенным сроком. Для ответа Пэт использует две линии тренда. Ответ — в апреле или мае.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 25 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 25](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-25.jpg)
Заинтересованное лицо спрашивает Пэт: «Сколько будет сделано к рождеству?» Это вопрос с фиксированным сроком и неопределенным содержанием. Линии тренда отсекают на вертикальной шкале вероятный отрезок того, что успеют реализовать.
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 26 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 26](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-26.jpg)
Заинтересованное лицо спрашивает :«Успеем ли мы сделать вот эти фичи к рождеству?» Это вопрос с фиксированными временными рамками и фиксированным содержанием. Ориентируясь на тренды, Пэт отвечает: «Нет». Добавляя: «К рождеству мы успеем сделать столько, а вот столько времени нам понадобится чтобы завершить всю эту работу полностью.»
Обычно лучше уменьшать содержимое проекта, чем увеличивать время. Если мы уменьшаем содержание, у нас будет возможность отодвинуть сроки. Мы можем выпустить кое-что здесь, а остальное — позже.
Владелец продукта делает расчеты еженедельно и использует исключительно эмпирические данные, а не выдает желаемое за действительное. Он честно говорит о неопределенности. Команда поддерживает темп работы, а Пэт не давит на них, заставляя ускориться.
Несколько команд
![Как объяснить бабушке, что такое Agile за 15 минут с картинками - 27 Как объяснить бабушке, что такое Agile за 15 минут с картинками - 27](https://www.pvsm.ru/images/2016/10/25/kak-obyasnit-babushke-chto-takoe-Agile-za-15-minut-s-kartinkami-27.jpg)
Пусть у нас несколько владельцев продукта и несколько команд. Модель та же — управление пропускной способностью, коммуникация с заинтересованными лицами, принятие решений по поводу отклонения пользовательских историй. Скорость равна сумме скоростей всех команд. Прогнозирование может быть общее или по каждой команде. У владельцев продуктов появляется дополнительная задача — общение с другими владельцами продукта. Нужно организовать работу над Backlogами так, чтобы минимизировать зависимости и обеспечить синхронизацию. В больших проектах требуется Главный владелец продукта (CPO), чтобы синхронизировать всех остальных.
Большая картинка
Исходник — Agile Product Ownership in a nutshell
Поддержка публикации — компания Edison, которая разрабатывает электронные системы продаж билетов и федеральный каталог товаров и услуг.
А вот так в Edison разрабатывают продукты по гибкой методологии:
Автор: Edison