Данный: Компания, использующая платформу Scaled Agile (SAFe) для масштабирования Agile-разработки во всей организации; 10 команд разработчиков, объединенных в одну большую команду (Agile Release Train, по терминологии SAFe), поставляющую общий продукт; необходимость проведения двухдневного квартального планирования (PI Planning) для определения плана работы ИТ-команды на ближайшие 3 месяца*; три офиса разработки, расстояние между наиболее удаленными превышает 6 тысяч километров с соответствующей разницей в 5 часов рабочего времени; Предыдущий опыт планирования, предполагавший физическое присутствие ключевых коллег в одной комнате и использование аналоговых досок/белых досок/маркеров/клейких заметок.
* Тяжёлая конструкция «План работы ИТ-команды на ближайшие 3 месяца» грозит серьёзно увеличить объём текста, поэтому в будущем планирую вместо этого писать просто «обязательства».
Соответственно, составьте и примите план работы – «коммит».
Зачем это было нужно?
1) Усталость от аналоговых методов работы.Пока космические корабли бороздят просторы, а Илон Маск роет туннели, мы, «айтишники», упорно пишем маркерами на липких бумажках и приклеиваем их на доски — в этом есть определенный диссонанс.
Вот как выглядел наш комментарий некоторое время назад:
Да, это лист бумаги размером примерно 2х5 метров, и каждый лист бумаги нужно было после планирования превратить в задачу в Jira.
2) Усталость собратьев-кочевников.
Несмотря на то, что наш головной офис находится в довольно дружелюбной, теплой стране, к своему удивлению в прошлом году я узнал, что они совершенно не довольны своей кочевой жизнью, и мои аргументы были в стиле «ну да ладно, вы».
покупаешь на море, погреешься на солнышке», которые, как я имел неосторожность сказать, были приняты не очень тепло – не все готовы к частым командировкам, не всегда это приветствуется в своих домочадцах, и организм некоторых людей не очень хорошо реагируют на частые перелеты.
3) Вовлечение большего количества ИТ-коллег в процесс планирования.
Как понятно из предыдущего пункта, мы не могли позволить себе отправить на планирование весь офис, поэтому отправили только Избранных, исключив тем самым остальных из процесса, что не добавило никаких плюсов к общей морали.
4) Оптимизация финансовых затрат. Да, это чувствительный момент — ключевых людей много, и возить их туда-сюда самолетом четыре раза в год — это дорого.
Часть нулевая, или Работа с бэклогом портфеля
А начинается все гораздо раньше — чтобы плодотворно работать над коммитом во время планирования, необходимо иметь что коммитить.Чтобы это произошло, я должен как можно раньше занять владельцев бизнеса работой над предлагаемыми инициативами (или, в терминологии SAFe, «всплесками», но я буду использовать привычный мне термин).
В идеале этот процесс должен быть полностью отделен от циклической природы квартального планирования и следовать своему собственному пути Канбана.
За основу мы взяли портфолио SAFe Kanban:
У нас есть отдельный проект JIRA с тремя типами задач: эпики, бизнес-инициативы и архитектурные инициативы; а также соответствующую доску Канбан.
Алгоритм для владельца инициативы прост: он добавляет задачу в этот проект, и она по умолчанию попадает в Backlog — это первый статус нашего канбана — Воронка:
Там хранятся инициативы, которые еще не готовы к рассмотрению.
Владелец бизнеса работает над содержанием инициативы до тех пор, пока не почувствует, что готов сделать следующий шаг.
Минимум, необходимый на этом этапе — это заполненные поля «Постановка задачи», «Желаемый результат» и «Показатель успеха», а также чуть более подробное, но простое и понятное изложение.
На этом этапе важно отойти от упоминания технических решений и сконцентрироваться на бизнес-параметрах.
Когда все данные собраны, владелец переводит задачу в следующий статус — Обзор.
Мы проводим обзоры еженедельно, как для деловых, так и для архитектурных инициатив.
В идеале это пятиминутная презентация, за которой следуют вопросы и ответы.
Результатом рассмотрения является решение о дальнейшей судьбе инициативы.
Она может: вернуться в резервную копию для доработки быть упраздненным без шанса на дальнейшую жизнь (для этого я использую отдельный статус Устаревший , спрятано на доске Канбан) получить одобрение и перейти к следующему этапу - Анализируем.
На этом этапе мы — ура! – мы можем привлечь ИТ-сотрудников: аналитиков, архитекторов, лидов, кого угодно.
Под «мы» я подразумеваю себя как Release Train Engineer, но в идеале — владельцев бизнеса, которые уже накопили некоторый опыт и независимость, необходимые для привлечения нужных команд и самостоятельного запуска процесса аналитики.
Я пишу об идеальном случае, так как уровень самоорганизации наших коллег колеблется, и в некоторых случаях они обращаются за помощью в виде специально назначенного ведущего, но я стараюсь постепенно отходить от этой практики.
Цель этого этапа – предварительная аналитика, или, как мы ее называем, pre-discovery. В результате мы должны получить минимум, который позволит нам зафиксировать: предлагаемые решения, риски и зависимости, нефункциональные и инфраструктурные требования, карты пользователей, архитектурные схемы.
Кроме того, мы просим команды предоставить предварительные оценки в пунктах истории на уровне функций — это позволит нам определить приоритеты в конце квартала.
Для каждой инициативы создается персональная канбан-доска, в которой по мере ее создания можно видеть фичи и истории, с первичной ссылкой на конкретную итерацию, что обеспечивается отдельным потоком работ в виде будущих итераций.
Дорожки для плавания настраиваются на досках в соответствии с требованиями команд разработчиков.
Поскольку наша экосистема JIRA довольно запутанная, во время предварительного обнаружения и обнаружения мы создаем задачи в отдельных проектах, чтобы не засорять бэклог команды:
Также на этапе аналитики в этом процессе участвуют архитекторы или, как мы недавно приняли, их доверенные люди — «амбассадоры» (EA Ambassadors).
Их задача – донести до участников процесса видение архитектурного отдела, помочь найти лучшее решение и в конечном итоге согласовать это решение с главным архитектором компании (Head of Enterprise Architecture).
Когда команды считают, что инициатива достаточно проработана и готова к следующему шагу, они переводят ее в следующий статус — Бэклог портфолио.
На этом этапе важным шагом является определение приоритетов WSJF ( Сначала взвешенная кратчайшая работа ).
Для этого за 3 недели до планирования мы проводим большое собрание, которое, к сожалению, занимает много часов, и в ходе этого собрания, используя покер по шкале Фибоначчи, члены правления оценивают ценность бизнеса (Business Value), время критичность (Time Criticality), потенциальное снижение риска (Risk Reduction) и реализация возможностей (Opportunity Enablement):
Чтобы иметь возможность отслеживать историю инициатив, я добавляю к каждой из них в Jira метку с данными о квартале: 2018Q4, 2019Q1 и т.д.
Забегая вперед, опишу следующие возможные статусы.
После фиксации инициативы, успешно введенные в эксплуатацию, переходят в статус Реализация , а «не вписывающиеся» получают статус Припаркован и в дальнейшем имеют возможность рассматриваться на последующие кварталы.
Осуществленные инициативы переходят в Сделанный .
В результате мы имеем на Канбан-доске примерно следующую картинку:
Конечно, мы еще не прошли и половины пути, но на данный момент я уже могу отметить, что благодаря использованию Канбана на уровне Portfolio Backlog
Владельцы бизнеса стали детально изучать инициативы и серьезно готовиться к обзорам.
Обзоры стали в хорошем смысле более дотошными.
У команд появилось больше времени на предварительные открытия.
Я не теряю старые инициативы — всегда можно вернуться к припаркованным, незавершенным или забытым инициативам и работать.
о них дальше
Инструменты, используемые на этом этапе:
Сервер программного обеспечения Atlassian Jira Плагин Colors for Jira — для выделения деловых и архитектурных инициатив.Плагин «Структура — Управление проектами в масштабе» — для визуализации структуры инициатив со связанными с ними функциями и их приоритетами WSJF. Atlassian Confluence — источник внутренней документации Lucidchart и его плагины для Jira и Confluence — для рисования диаграмм.
Часть I: Подготовка к планированию
Примерно за месяц до планирования начинается напряженная пора подготовки.Слишком многое нужно учитывать, и чтобы ничего не забыть, придется создать многостраничную «логистическую» таблицу Google. Я постараюсь описать наиболее важные вкладки из этой таблицы и действия вокруг них.
Обратная связь.
Через несколько дней после каждой сессии планирования мы проводим ретроспективу, и для корректировки курса важно помнить, к каким выводам мы пришли и как нам необходимо корректировать курс.
Это важная часть постоянного улучшения процессов.
Техническое обучение.
С переходом на удаленное планирование возникли специфические запросы, такие как качество интернет-коммуникаций (приоритизация и оптимизация маршрутов для JIRA и Confluence) и наличие телевидения и аудио (мы используем комплекты Logitec Group, микрофоны Jabbra и персональные наушники в различных комбинациях, веб-камеры, программное обеспечение для видеоконференций Zoom).
Фасилитаторы.
Вот список сотрудников, ответственных за фасилитацию в каждой из рабочих групп, с указанием их местонахождения и ссылкой на постоянный Zoom-канал рабочей группы.
Аудитория.
Соответственно полный список всех приглашенных.
Проверьте список.
Полный список важных задач со сроками и обязанностями.
Для большего погружения приведу несколько примеров наиболее типичных и важных задач, которые повторяются при каждом планировании: обучение фасилитаторов (для фасилитаторов подготовлено пособие со всеми необходимыми этапами от организации рабочей команды, тайминга встреч до изучения вариантов за технические решения и процесс декомпозиции инициативы на список характеристик); обновление планов расположения рабочих групп для каждого офиса; контроль скорости обновления для всех команд разработчиков; заказ обедов; создание отчетов за предыдущие кварталы; распечатки списков инициатив (держать под рукой) и графиков.
Часть II. Планирование и обязательства
После всей подготовительной работы наконец наступает этот момент – начало квартального планирования.За два дня мы должны успеть разобраться во всех инициативах, убедиться, что информации достаточно, и зафиксировать.
После нескольких коротких, но зажигательных выступлений рабочие группы расходятся и переходят к делу.
На данный момент количество групп распределено между тремя офисами по формуле 4х4х2, а удаленные пользователи подключаются к нужному столу через выделенный канал Zoom. В конце раскрытия каждой из инициатив координатор должен убедиться, что все необходимые данные, такие как, например, критерии приемки, описание технического решения, риски, зависимости, потребность в новой инфраструктуре, доступны.
, отмечает инициативу флажком ИТ-сессия завершена для прозрачности хода выполнения, и рабочая группа может перейти к следующему.
После десятка планов ощущение постоянного нервного напряжения и цейтнота, которое было с нами с самого начала, значительно рассеялось, и теперь атмосфера больше напоминает спокойную работу.
Во второй половине первого и второго дня наступает время неторопливых занятий в соответствии с приоритетами.
У меня есть несколько отдельных структур для выполнения фиксации.
Первый из них представляет собой структуру, содержащую список функций и историй, планируемых к совершению:
К сожалению, в этой структуре присутствуют остатки материала, не вошедшие в комментарий за текущий квартал, поэтому выборка не репрезентативна.
В любом случае, в поиске я могу выбрать интересующую меня инициативу в порядке приоритета по номеру, который в процессе поиска вводится в отдельное поле для каждой функции и истории, изменить статус необходимых задач с Запланировано на Зафиксируйте и поместите их в нужную итерацию, тем самым зафиксировав:
В результате задача исчезнет из этой структуры и появится в новой, отражающей растущий коммит:
Как видно на скриншоте, в такой структуре истории попадают в папку команды разработки, которой они принадлежат, и группируются по итерациям.
Здесь я вижу общую скорость команд в названии папки, а также в графе Commitment, по формуле перерасход по каждой группе определяется автоматически и сигнализирует нам красным цветом.
Конечно, если первые и наиболее приоритетные инициативы без проблем включаются в коммиттинг, то вскоре, с появлением первых команд, заполнивших свой задел до отказа, начинаются проблемы и некоторые инициативы, не без противоречий, приходится откладывать.
.
По окончании этого несложного процесса команды на флаге компании торжественно клянутся доставить комментарий (шутка) и бегут домой (тоже шутка — все бегут в бары).
Инструменты, используемые на этом этапе:
Сервер программного обеспечения Atlassian Jira Плагин «Структура — Управление проектами в масштабе» — для мониторинга процесса обнаружения и во время процесса фиксации.
Часть III. Клонирование задач в рабочую экосистему JIRA компании.
Пока все пьют водку, RTE работает над созданием коммита в таком виде, в котором его можно будет раздавать по бэклогам команд разработки и отслеживать на протяжении всего квартала.
Для этого я использую плагин Bulk Clone Professional for Jira — он добавляет в меню «Массовое изменение» пункт, обеспечивающий коллективное клонирование, и имеет нужные мне возможности, такие как клонирование ссылок, обновление ссылок между вновь созданными клонами, обновление эпические ссылки, добавление префикса в заголовок и автоматическое добавление метки:
Я добавляю статус в качестве префикса, потому что на этапе планирования статусы отражают запланированную итерацию завершения, и в результате я сразу вижу в заголовке, когда мы планируем завершить фичу или историю.
Во-первых, я клонирую абсолютно все задачи в отдельный проект Global Backlog, так как в нем мы храним эпики, а мне нужно иметь актуальные связи эпик-история в свежеклонированных задачах.
И в качестве второго шага я делаю запросы для каждой команды разработчиков отдельно и переношу истории в финальные проекты команд.
В результате я создаю структуру, отражающую текущий коммит и состоящую из финальных задач, которые затем использую для мониторинга:
В целом, преимущества, которые дает такой подход:
Как бы тривиально это ни было, ИТ-специалисту проще напечатать новые функции и истории, чем писать их маркером на липком листе бумаги.
Многие параметры, такие как оставшаяся емкость и обновление WSJF в зависимости от рейтинга истории, рассчитываются автоматически с использованием формул.
Благодаря клонированию исходная копия коммита сохраняется для истории, и вы всегда можете к ней вернуться.
Это экономит много времени и сил на подготовке планирования – работа с бумагой отнимает силы.
Конечно, здорово, что вам больше не нужно заполнять задачи в Jira с бумажек.
Инструменты, используемые на этом этапе:
Сервер программного обеспечения Atlassian Jira Плагин Bulk Clone Professional for Jira — для клонирования функций и историй в окончательные проекты JIRA. Плагин «Структура — Управление проектами в масштабе» — для создания итоговой структуры.
Эпилог
Друзья, я, конечно, понимаю, что описание достаточно поверхностное, и кучу других вещей можно было бы раскрыть подробнее - мониторинг распределения мощностей между бизнес-архитектурными инициативами и оперативными задачами, расчет формул в конструкциях, управление рисками и гораздо более.Но мне пока не ясно, интересна ли эта тема зрителям, и если да, то чем именно.
Если увижу интерес, буду готов раскрыть нужные темы.
И еще — сложно поверить, что такое возможно, но хотелось бы избежать всей этой суеты вокруг agile, фреймворков, эффективных и «эффективных» менеджеров.
Помните, что я описал весь процесс в надежде заинтересовать людей, заинтересованных в его технической реализации, и жду соответствующих обсуждений.
Увидимся в комментариях! Теги: #Управление разработкой #agile #scrum #безопасно #kanban #Jira #structure
-
Деревья (Плагин Speedtree) В Unity 3D
19 Oct, 24 -
Антикризисный. Новый Взгляд На Мелочи.
19 Oct, 24 -
Стоимость Разработки В Провинции
19 Oct, 24