Использование рабочих процессов для удовольствия и выгоды

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

Dan Radigan Dan Radigan
Просмотр тем

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

Начните с малого. Прямо сейчас

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

Сделать

Еще не начатая работа.

В работе

Задачи, над которыми команда уже ведет активную работу.

Проверка кода

Работа, которая завершена, но еще не прошла проверку.

Завершено

Работа, которая полностью завершена и отвечает критериям «готовности» работы команды.

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

Рабочий процесс в agile | Atlassian — тренер по agile

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

Ожидает контроля качества

Работа, которая уже была выполнена и ожидает проверки тестировщиком (подробнее см. в нашей статье о тестировании по методике agile).

Готово к слиянию

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

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

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

Команды, которым agile в новинку или которым недостает многофункциональности, часто в итоге начинают допускать в своих рабочих процессах «мини-каскады». Проектировщик, поработав над задачей, выдает макет. Разработчик пишет на основе макета реальный код. Тестировщик подтверждает качество. Пока работа не завершится на одном этапе процесса, она не начнется на следующем. Знакомо? Это каскадная модель. Но рабочие процессы по методике agile дают больше возможностей, снимают с команды оковы и упрощают разработку. 

Оптимизация рабочего процесса

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

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

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

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

Проблемы, возникающие при масштабировании рабочего процесса

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

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

Профессиональный совет

Jira Software, система отслеживания задач от Atlassian, позволяет командам использовать один рабочий процесс, но по-разному представлять его на свой agile-доске. Она дает широкие возможности визуализации, не мешая при этом следовать общему рабочему процессу. 

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