Руководители по разработке и scrum-мастера

Это заклятые враги! (Шутка. На самом деле, эти две роли отлично уживаются друг с другом.)

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

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

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

И scrum-мастера, и руководители по разработке, как правило, работают с несколькими agile-командами. Давайте посмотрим, как они взаимодействуют с каждой командой в крупных agile-портфелях проектов.

Кто такой руководитель по разработке?

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

Хорошие руководители по разработке уделяют много времени формированию команды, начиная с приема сотрудника на работу. Они управляют процессом найма, и их место в организации располагает к этому по следующим причинам.

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

Проще говоря, пока руководитель по разработке занимается поиском и наймом сотрудников, команда может сосредоточиться на продукте.

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

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

  • Руководитель: «Сколько времени нужно, чтобы выпустить эту возможность?»
  • Разработчик: «Нужно шесть недель. Требуется сделать первое, второе, третье, чтобы вывести новую возможность на рынок».
  • Руководитель: «Да, звучит разумно. Но тебе все равно надо придумать, как сделать это за четыре недели».

Руководитель по agile-разработке знает, что, во-первых, нужно нанять классных специалистов и, во-вторых, доверять им. Главный постулат agile-разработки: кто больше всех погружен в фактическую работу, тот лучше всех может оценить объем работы и сделать эту работу качественно. Команда задает сроки. Уникальный вклад руководителя по разработке в том, что он может ставить предположения, сделанные в ходе оценки сложности работы, под сомнение и проверять их обоснованность — как равный участник команды, а не начальник.

В agile-организациях не говорят: «Придумай, как сделать это за четыре недели» (а если говорят, то это тревожный звоночек).

Кто такой scrum-мастер?

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

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

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

Scrum-мастера и руководители по разработке работают над agile-портфелями вместе как партнеры

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

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

Up Next
Git