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

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

Dan Radigan Автор: Dan Radigan
Просмотр тем

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

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

Освоение рабочих процессов agile

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

Сделать

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

В работе

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

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

Выполненная работа в ожидании проверки

Завершено

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

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

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

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

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

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

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

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

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

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

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

Оптимизация agile-процесса

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

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

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

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

Трудности масштабирования agile-процесса

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

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

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

С помощью Jira — средства отслеживания задач от Atlassian — можно совместно использовать рабочие процессы, но при этом по-разному представлять их на своих agile-досках. Команды получают гибкие возможности визуализации без ущерба для общего рабочего процесса.

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

продолжение темы
Эпики, истории, темы