Как объяснить бабушке что такое agile
Как объяснить бабушке, что такое Agile за 15 минут с картинками
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера
Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
Это Пэт, владелец продукта. Она не знает технических деталей, зато обладает видением общей картинки, знает, зачем мы делаем продукт, какие проблемы он будет решать и для кого.
Это заинтересованные лица. Они будут использовать продукт, поддерживать его или будут как-то еще вовлечены в разработку.
Это пользовательские истории. В них выражены пожелания заинтересованных лиц. Например, «у системы бронирования авиабилетов у пользователя должен быть поиск по рейсам».
У заинтересованных лиц много идей, и Пэт помогает сделать из идей пользовательские истории.
Это команда разработчиков. Те, кто будет строить рабочую систему.
Пропускная способность
Так как команда использует гибкую методологию разработки, они не копят все эти истории до большого релиза, наоборот, они выпускают их сразу и как можно чаще. Обычно они выпускают 4-6 пользовательских историй в неделю. Это их пропускная способность. Ее очень просто измерить — количество пользовательских историй за 7 дней.
Некоторые истории большие, их можно считать за две, некоторые маленькие, их можно считать за половину.
Для того чтобы поддерживать этот ритм и чтобы не завязнуть в ручном регрессивном тестировании, команда усиленно работает над автоматическим тестированиеми постоянной интеграцией. Поэтому на каждую фичу приходится писать автотесты, и большая часть кода имеет встроенные автотесты.
Проблема заключается в том, что заинтересованных лиц очень много и их запросы невозможно удовлетворить 4-6 историями в неделю.
Каждый раз когда мы реализуем пользовательскую историю, у них появляется еще несколько идей, из которых вытекает еще больше запросов.
Что произойдет, если мы будем делать все, о чем они нас просят? У нас будет перегруз.
Допустим, команда возьмется сделать 10 новых историй за эту неделю.Если на входе 10 а на выходе 4-6, то команда будет перегружена. Будет спешить, переключаться между задачами, терять мотивацию, в итоге снижается производительность и качество. Это заведомо проигрышная стратегия.
Scrum и XP в этом случае используют метод “вчерашняя погода”. Команда говорит: “За последнее время мы делали 4-6 фич в неделю, какие 4-6 фич мы будем делать на следующей неделе?”
Задача владельца продукта в том, чтобы грамотно выбирать, какие именно пользовательские истории будут реализованы на этой неделе.
Kanban рекомендует ограничиться несколькими задачами — WIP limit. Допустим команда решает, что 5 — это приемлемое количество пользовательских историй, над которыми они смогут работать одновременно без перегруза, не перескакивая с одной на другую.
Оба эти подхода хорошо работают и оба они создают очередь задач, которые в Scrum называется Backlog, или приоритезированный список задач.
Этой очередью тоже необходимо управлять.Если заинтересованные лица запрашивают 10 историй в неделю, а команда реализует 4-6 историй, то эта очередь будет становиться все больше и больше. И скоро ваш Backlog будет расписан на полгода вперед. То есть одна история будет ждать выхода 6 месяцев.
Есть только один способ держать список задач под контролем — это слово “нет”
Это наиболее важное слово для владельца продуктом. Он должен тренировать его каждый день перед зеркалом.
Сказать “да” — легко. Но более важная задача — решать, что не надо делать и нести за это ответственность. Владелец продукта так же определяет последовательность, что делаем сейчас, а что позже. Это сложная работа и выполнять ее следует вместе с командой разработки и минимум одним заинтересованным лицом.
Для того, чтобы правильно расставить приоритеты, владелец продукта должен понимать ценность каждой истории и ее объем.
Принятие решений
Некоторые истории крайне необходимы, а некоторые просто бонусные фичи. На разработку одних историй уйдет пару часов, на разработку других — месяцы.
Как соотносится размер истории и ее ценность? Никак. Больше не значит лучше. Ценность и сложность задачи — вот что помогает Пэт расставлять приоритеты.
Как владелец продукта определяет ценность и объем истории? Никак. Это игра в угадайку. И лучше в ней участвовать всем. Пэт постоянно общается с заинтересованными лицами, чтобы знать ценность каждой истории, общается с командой разработчиков, чтобы знать объем работ, но все это приблизительные догадки, никаких точных цифр. Вначале всегда будут промахи и это нормально. Гораздо большую ценность представляет общение, чем сверхточные цифры.
Каждый раз когда разработчики выпускают что то новое, мы узнаем больше информации и можем лучше ориентироваться.
Одной приоритезации недостаточно. Чтобы выпускать истории быстро и часто, нужно разбивать на кусочки, которые можно сделать за пару дней. Мы хотим чтобы в начале воронки были маленькие и четкие истории а в конце — большие и неопределенные. Вовремя делать такую разбивку мы можем воспользоваться нашими последними открытиями относительно продукта и нужд пользователя. Это все называется очистка Backlogа.
Пэт проводит встречу по очистке Backlogа каждую среду с 11 до 12. Обычно на ней собирается вся команда и иногда несколько заинтересованных лиц. Содержание встреч бывает разным. Фокусировка на оценке, на разбивке историй, на критериях приемки.
Владелец ИТ-продукта должен постоянно со всеми общаться
Матерые владельцы продукта выделяют 2 компонента успеха: страсть к работе и общение. Какие задачи владелец продукта решает месте с командой.
Баланс между сложностью разработки и ценностью пользовательской истории
На ранней стадии балансу угрожает неопределенность и сразу несколько рисков.
Риски
Бизнес риск: «Правильную ли вещь мы делаем?»
Социальный риск: «Сможем ли мы сделать то что нужно?»
Технический риск: «Будет ли проект работать на данной платформе?»
Риски со стоимостью и сроками реализации: «Успеем ли и хватит ли денег?»
Знание можно рассматривать как противоположность риску. Когда неопределенность большая, мы фокусируемся на приобретении знаний — прототипах интерфейса, технических экспериментах,
Компромисс между ценностями знания и ценностями для клиента
С точки зрения заказчика кривая выглядит вот так:
С точки зрения ценности для заказчика эта кривая выглядит вот так. По мере того как неопределенности снижаются, мы можем концентрироваться на ценностях для заказчика. Мы знаем что и как делать. Остается только сделать. После того как реализовали основные истории, будем делать бонусные фичи или запускать новый проект.
Компромисс между краткосрочным и долгосрочным мышлением
Что реализовать в первую очередь? Срочно устранять ошибки или начать разрабатывать сногсшибательную фичу, которая поразит пользователей. Или делать сложный апгрейд платформы, который ускорит работу в будущем. Необходимо постоянно соблюдать баланс между реактивной и проактивной работой.
Делать правильные вещи, делать вещи правильно или делать быстро?
В идеале — все три одновременно, но в реальности приходится выбирать.
Предположим мы здесь. Пытаемся создать идеальный продукт с помощью идеальной архитектуры. Если мы потратим много времени, мы можем не попасть в «маркетинговое окно» и у нас появятся проблемы с деньгами.
Мы делаем быстро прототип продукта. Для краткосрочной перспективы это неплохо. В долгосрочной — мы получаем технический риск. И скорость разработки снизится до нуля.
Мы вот здесь, создаем прекрасный храм в рекордные сроки. Но пользователю не нужен был храм, ему нужен был жилой фургон.
Между ролями в Scrum существует здоровое противостояние
Владелец продукта фокусируется на построении правильных вещей. Команда фокусируется на том, чтобы строить вещи правильно. Scrum-мастер или agile-тренер фокусируется на сокращении цикла обратной связи.
Отдельно стоит подчеркнуть важность скорости, так ккак короткий цикл обратной связи ускоряет обучение. Это позволяет нам быстрее узнавать какие вещи правильные и как их правильно построить.
Компромисс между разработкой нового продукта и улучшением старого
Продукт никогда не может быть полностью завершен, потому что ему постоянно нужны изменения. Когда команда начинает работу над новым продуктом, что происходит со старым? Передача продукта от одной команды к другой — очень затратно и рискованно. Обычно команда поддерживает старый продукт, разрабатывая новый. Поэтому скорее понятие “Backlog” относится не к продукту а к команде. Backlog — это список вещей, которые хочет владелец продукта от команды. И набор историй для разных продуктов. Владельце продукта нужно постоянно выбирать актуальные для реализации.
График уничтожения историй
Время от времени, заинтересованные лица будут спрашивать у Пэт: “Когда выпустят мою фичу?” или “Сколько фич выпустят к рождеству?”. Владелец продукта должен уметь управлять ожиданиями пользователя. И управлять ожиданиями реалистично.
Два тренда — оптимистичный и пессимистичный (можно на глаз). Расстояние между трендами показывает насколько нестабильна скорость работы команды. Со временем эти тренды стабилизируются и конус неопределенности будет уменьшаться.
Предположим, заинтересованное лицо спрашивает, когда вот эта фича будет сделана?
Это вопрос с фиксированным содержанием и неопределенным сроком. Для ответа Пэт использует две линии тренда. Ответ — в апреле или мае.
Заинтересованное лицо спрашивает Пэт: «Сколько будет сделано к рождеству?» Это вопрос с фиксированным сроком и неопределенным содержанием. Линии тренда отсекают на вертикальной шкале вероятный отрезок того, что успеют реализовать.
Заинтересованное лицо спрашивает :«Успеем ли мы сделать вот эти фичи к рождеству?» Это вопрос с фиксированными временными рамками и фиксированным содержанием. Ориентируясь на тренды, Пэт отвечает: «Нет». Добавляя: «К рождеству мы успеем сделать столько, а вот столько времени нам понадобится чтобы завершить всю эту работу полностью.»
Обычно лучше уменьшать содержимое проекта, чем увеличивать время. Если мы уменьшаем содержание, у нас будет возможность отодвинуть сроки. Мы можем выпустить кое-что здесь, а остальное — позже.
Владелец продукта делает расчеты еженедельно и использует исключительно эмпирические данные, а не выдает желаемое за действительное. Он честно говорит о неопределенности. Команда поддерживает темп работы, а Пэт не давит на них, заставляя ускориться.
Несколько команд
Пусть у нас несколько владельцев продукта и несколько команд. Модель та же — управление пропускной способностью, коммуникация с заинтересованными лицами, принятие решений по поводу отклонения пользовательских историй. Скорость равна сумме скоростей всех команд. Прогнозирование может быть общее или по каждой команде. У владельцев продуктов появляется дополнительная задача — общение с другими владельцами продукта. Нужно организовать работу над Backlogами так, чтобы минимизировать зависимости и обеспечить синхронизацию. В больших проектах требуется Главный владелец продукта (CPO), чтобы синхронизировать всех остальных.
«Представьте, что праздничный ужин — это ваш проект»: как объяснить бабушке, что такое Agile
Рассказывает Юлия Селюкова из образовательной онлайн-платформы «Лифт в будущее»
Agile — методика гибкого управления проектами, которая помогает быстро добираться от стартовой точки до итогового результата. Суть в том, чтобы максимально эффективно использовать время и силы команды, разложив весь процесс на этапы. Изначально эта методика применялась для разработки программного обеспечения, но сегодня успешно используется в любых командных проектах. Подробно о том, как работает Agile, рассказывает Юлия Селюкова — советник образовательных программ в образовательной онлайн-платформе «Лифт в будущее».
Удивительно, но «новой и современной» методике Agile около 50 лет. В 70-х ученый Уинстон Ройс из США заявил, что процесс разработки ПО не может быть систематизирован так же, как процесс сборки автомобиля на заводе. Дело в том, что разработка ПО не всегда происходит линейно — в ней могут возникать внезапные корректировки (меняются ожидания пользователей или технологии работы). Все они приводят к тому, что рабочие планы приходится менять «на ходу», а это весьма болезненно для проекта. В деле сборки автомобилей такого быть не может: этапы и результаты работы всегда четко определены и не меняются в процессе.
Мысль о том, что живой и гибкий проект требует максимально адаптивного и гибкого управления, стала основой принципов Agile. Сегодня эти принципы подходят для управления любыми живыми проектами, над которыми трудятся команды.
Принципы Agile
В 2001 году в США (Юта) разработчики создали официальный манифест Agile.
Они выделили 4 идеи, на которых основана эта методика управления проектами.
1 идея. Приоритет командного обсуждения над процессом и инструментами.
2 идея. Приоритет рабочего результата над документацией.
3 идея. Приоритет взаимодействия с клиентом, а не обсуждения условий с ним.
Смысл в том, что клиент воспринимается не как «холодный» заказчик, а как вовлеченный в процесс человек. Команда должна находиться на связи с клиентом в течение всего цикла работы, получать от него фидбек для улучшения результатов.
4 идея. Готовность менять план, а не следовать изначальным наработкам.
Когда речь идет о проекте, который должен удовлетворять клиента в постоянно меняющемся мире, нужно быть готовым менять проект прямо в процессе создания. Именно это позволит сделать более качественный и конкурентоспособный продукт.
Как работает Agile
Как функционирует гибкая система управления на практике? План работ все-таки составляется: рабочий процесс разбивают на примерно равнозначные отрезки времени. После каждого этапа оценивается промежуточный результат. Если нужно внести изменения, это делают до начала следующего этапа. Вот простой пример применения Agile в повседневной жизни:
Итак, вам нужно приготовить праздничный ужин. Это ваш проект. Можно несколько раз за день сходить в магазин за продуктами, которые забыли купить сразу, до вечера возиться на кухне и устать еще до того, как придут гости.
Но можно применить принципы Agile. И тогда, чтобы приготовить праздничный обед, необходимо разбить процесс на этапы:
К работе над праздничным ужином нужно привлечь всю семью. Каждый из участников будет заниматься тем этапом процесса, который у него получается лучше всего. Например, сын пойдет в магазин за продуктами, папа сварит картошку, свеклу и разделает селедку, а мама приготовит из них «шубу».
На каждый этап отводится определенное количество времени, которое нужно учесть при составлении плана.
После каждого этапа можно вносить корректировки, которые помогут эффективнее решать следующие задачи. Допустим, вы уже составили список продуктов. Его нужно огласить всем участникам подготовки к ужину, и тогда кто-то вспомнит, что в него нужно добавить зелень и майонез для салата.
В итоге праздничный ужин будет готов ровно в срок, все члены семьи будут в хорошем настроении (особенно бабушка) и смогут весело провести время с гостями.
Как объяснить бабушке, что такое Agile?
Для того чтобы объяснить материал максимально просто, нужно хорошо разобраться в теме. Здесь помогут обучающие курсы и книги, которые дадут вам и теорию, и практические задания для оттачивания навыка.
Есть неплохие курсы по Agile от онлайн-университетов вроде Нетологии и Скиллбокс, у онлайн-платформы «Лифт в будущее» также есть такой курс. По этой теме написано немало книг, в основном это американские авторы-практики. Вот что будет полезно почитать:
Это не весь список, можно (и нужно!) искать еще. Однако читать и слушать недостаточно. Для того чтобы построить целостное представление о том, что такое Agile, и успешно внедрить эту философию в ежедневную рутину, нужен план получения знаний. Например, следующие пункты:
В результате этого образовательного расследования вы узнаете, когда стоит применять метод гибкого управления, в каких проектах он актуален и подходит ли вам.
Эти знания приносят грандиозную пользу менеджерам и управленцам любого звена, помогают вывести работу команды и результаты проектов на новый уровень. Но, помимо этого, Agile подойдет всем, кто хочет структурировать свою жизнь и навести порядок в обычных бытовых процессах.
Все самое важное и интересное собираем в нашем Telegram
Как объяснить дедушке эджайл и скрам за 5 минут без картинок. И самому лучше понять
Пост об интуитивности эджайла
Aug 18, 2017 · 6 min read
Когда что-то нельзя объяснить просто, начинаешь подозревать неладное. Особенно, если твой мозг устроен, как мой — чтобы правда понять устройство велосипеда, мне нужно велосипед переизобрести.
В эджайле, если у меня возникал бытовой вопрос и приходило решение, то каждый раз я себе говорила (а если не я, то команда):
Ты всего лишь прочитала три книги на эту тему, послушала пару двухдневных семинаров, прошла эджайл-кемп, посмотрела несколько видео и провела несколько стратсессий с эджайл-коучами. Ну и пару лет поварилась в скрам-процессе (в «недо»! недо-скрам-процессе!).
Очевидно же, Наташа, что — ха-ха — да ты что ты можешь понимать. Не смей искать ответ на свой вопрос. Записывай и жди консультации с эджайл-коучем.»
Ох, как мне не нравится, когда нельзя думать. Принцип «су-ха-ри» тебе негласно запрещают включать здравый смысл. Прямо как в советской школе — думалка не нужна, учи. Как-то это подозрительно, нет?
Присоединиться к лагерю эджайл-ненавистников — не мой вариант. Все внутри меня принимает принципы эджайла. Я чендж-человек и без гибкости никак.
Я р ешила, что позволю себе такую наглость, как написать пост о том, что эджайл и скрам — довольно интуитивные штуки, которые важно вовремя включать. И вовремя выключать. Once again:
Итак, зовите дедушку и поехали.
Объясняем дедушке эджайл
— Дедушка, представь. Ты молод, только женился. Кто-то приютил вас с женой на лето. Но скоро зима, надо успеть построить дом. Что бы ты делал?
— Построил бы маленький дом, но с хорошим фундаментом, лишь бы въехать до зимы. Накрыл бы крышу простенько, чтобы перезимовать.
— На следующее лето пристройку сделал бы, крышу хорошо положил бы. На третий год — построил бы веранду. На четвертый может и второй этаж. Решили бы с женой, что сначала, что потом.
— Молодец, дедушка. Теперь запоминай:
Дом мы будем называть « продукт». Да-да, не смейся.
Твой домик «лишь бы въехать» — это MVP. То есть минимальный жизнеспособный продукт.
Дом с пристройкой, дом с верандой — это инкременты.
Ты — продакт оунер, отвечаешь за то, каким именно будет дом.
Жена — стейкхолдер, ее мнение важно, ей в доме жить.
Список из пристройки, веранды, второго этажа, хорошей крыши и что вы еще захотите — это беклог.
Когда вы с женой сидите и решаете, что делать, вы делаете беклог груминг.
— Теперь расскажи, дедуля, как бы ты дом строил.
— Ну я плохой строитель, зато хороший наладчик, поэтому остался бы работать на заводе. Строить дом я бы позвал брата и дядю Вову. Брат рукастый, сосед умный — нарисует, рассчитает. Оба работяги. А соседку попросил бы их кормить три раза в день. И мирить, если поругаются.
Твой брат и дядя Вова — команда разработчиков дома.
Их сила в том, что они могут друг друга заменять. То есть они — ти-шейпт-пипл (T-shaped people) — что-то умеют хорошо, но в остальном готовы друг другу помогать.
— А как бы ты следил, чтобы они делали все правильно? И чтобы у них были стройматериалы?
— Я бы в начале недели обсуждал, что закупить на неделю-две. По утрам, перед выходом на работу, пил бы с ними у соседки кофе с бутербродами. Смотрел бы, что сделали и что будут делать. Иногда мы бы, наверное, напивались и каждый бы говорил, что другие работают хуже, чем он. Но потом бы мирились.
Разговор в начале недели — это планинг.
Ваш утренний кофе — это стендап.
Напиться и поругаться значит провести ретроспективу.
— Дедушка, а как же жена? Ей же тоже интересно было бы, наверное, участвовать в строительстве дома.
— Я бы жену раз в пару недель привозил. Вдруг правда что-то не так.
— Cмотри, что получается.
Двухнедельные промежутки между приездами жены — это длина вашего спринта.
Когда жена приезжает — это показы. Лучше планировать спринт так, чтобы каждый раз было что ей показать.
— Так вот, дедушка. Только что ты переизобрел эджайл и большую часть скрама. Когда нужно сделать быстро и дешево, люди интуитивно изобретают что-то гибкое. Это было уже много раз в истории.
Историческая справка для дедушки
Во времена колонизации Америки переселенцы отправлялись на запад, далеко от цивилизации. Они были ограничены в материалах и времени — надо было успеть до зимы. В первый год они строили себе маленькое жилище из дерна — слоя почвы с корнями растений—с печкой из камней и грязи. Это был их минимальных продукт (MVP). На второй год они сооружали себе домик из едва отесанных бревен (вторая версия продукта). И только с третьего года обычно начинали строительство капитального дома.
У жителей фавел в Латинской Америке времени побольше, зимы нет. Зато они крайне ограничены в деньгах. Они строят свою комнату из больших кирпичей, тоже по эджайлу. На сколько хватит тех кирпичей, что хозяева могут купить, — столько стен и ставят. Потом достраивают, ставят окна, накрывают крышу и иногда даже штукатурят и красят. Когда семья растет, пристраивают следующую комнату.
— Дедушка, когда у программистов стало мало времени и денег, они тоже пришли к гибкости и назвали ее эджайлом (agile—гибкий, гуттаперчевый).
Эджайл — это вынужденная гибкость. Это готовность пожить сначала в маленьком доме, часто встречаться с командой, работать с теми, кто умеет несколько вещей, и вносить изменения по ходу проекта.
Скрам — это набор взаимодействий, процедур и ролей, необходимых для гибкости.
Нужен — не нужен…
— Дедушка, а что было бы, если бы у тебя было достаточно денег и времени на строительство сразу большого дома?
— Зачем мне тогда так напрягаться. Я нанял бы строительную компанию и заказал бы дом «под ключ». Мы разработали бы проект, подписали бы договор. Я бы приехал несколько раз за стройку, посмотреть как дела, но больше из любопытства, потому что строили бы мы точно по проекту.
— Но ведь строить сразу большой дом — это дольше. Тогда ты не смог бы заехать в сентябре!
— Ну я бы лучше подождал полгода, зато сразу въехал бы в двухэтажный дом. В конечном счете я бы еще и сэкономил. Не тратился бы на плохую крышу, а сразу сделал бы хорошую.
— А что если бы ты был не уверен, хочешь ты жить в доме, а не в квартире?
— Тогда, наверное, я построил бы сначала маленький дом. Не хочу долго ждать и тратить деньги на то, что может не пригодиться.
Выводы для внука
Дедушка-то все понял. А вот внук?
1.Принципы эджайла интуитивны. Если ресурсы ограничены, все мы становимся более гибкими. Нет денег или времени—нам нужно стать эджайл. Я бы добавила к эджайл-манифесту один пункт: «Здравый смысл важнее всего, включая эджайл».
2. Если мы не знаем, нужен ли нам продукт или какой он должен быть, лучше строить его по принципам эджайла. Даже если есть ресурсы. Экспериментальному проекту нужен эджайл-подход.
3. Если ресурс есть и мы знаем, что продукт нам нужен и знаем в каком виде — забываем про MVP и эджайл и просто строим. Рецепт — хороший проектный менеджмент. В этой ситуации на эджайл-подходе мы будем переплачивать, а не экономить — не сможем оптимизировать сроки (будем строить 3 года вместо 6 месяцев) и расходы по проекту (заплатим за две крыши вместо одной).
P.S. У истории про любопытного дедушку появилось продолжение: Как объяснить дедушке веб-аналитику за 5 минут с картинками.
→ Как следить за Бабаевой и Школой ченджеров
Меня зовут Наташа Бабаева. Я пишу про маркетинг, продукт и инновации. В Facebook лично, в Telegram кратко, на Медиум детально.
Помогаю прокачивать навыки инноватора в Школе ченджеров. В чем идея? / Подписаться→
Копаю тему инноваций в платной рассылке «Бабаева копает инновации». В чем идея? / Подписаться→
Запустила Change Basics, курс-сериал о пути неинноватора в инновациях.