По своей структуре Agile-команды не похожи на команды, работающие по каскадной модели. У последних структура повторяет структуру организации, при этом планирование часто ведется по принципу «сверху вниз», т. е. руководство устанавливает график и сроки выполнения. Команды Agile-разработки функционируют по принципу самоорганизации. Они составляют собственный график, исходя из расстановки приоритетов владельцем продукта и имеющихся ресурсов.
Scrum-мастера и руководители по разработке заполняют разрыв между высшим руководством и отдельными командами разработчиков. #ScrumMasters #DevelopmentManagers Они стремятся оптимизировать команды и отдельных сотрудников, чтобы те поставляли программное обеспечение наивысшего качества, которое приближало бы компанию к ее целям. Scrum-мастера и руководители по разработке также следят, чтобы команды не отвлекались на внешние моменты, такие как изменение объема функций, плохие примеры использования каскадной модели, совмещение обязанностей и побочные проекты, которые отвлекают команду от истинных целей.
И scrum-мастера, и руководители по разработке, как правило, работают с несколькими agile-командами. Давайте посмотрим, как они взаимодействуют с каждой командой в крупных agile-портфелях проектов.
Кто такой руководитель по разработке?
Руководители по разработке играют роль центрального звена в Agile-организациях. Они отвечают за качество продукта, начиная от архитектуры кода и заканчивая взаимодействием с конечным пользователем. Они принимают участие в проверках кода и следят, чтобы код, который пишут участники команды, отвечал краткосрочным и долгосрочным целям программы. Поскольку они очень тесно взаимодействуют с командой, от них часто зависит выбор технологии для реализации программы. Им одновременно близки и рабочий процесс, и продукт, поэтому они могут обрисовать общую картину как внутри команды, так и вне ее, на более высоком уровне организации.
Хорошие руководители по разработке уделяют много времени формированию команды, начиная с приема сотрудника на работу. Они управляют процессом найма, и их место в организации располагает к этому по следующим причинам.
- Процесс подбора сотрудников требует времени и внимания команды.
- Одновременно искать кандидатов и создавать качественные продукты не выйдет.
- Руководитель по разработке может упростить процесс адаптации каждого нового сотрудника, чтобы он постепенно стал частью команды.
Проще говоря, пока руководитель по разработке занимается поиском и наймом сотрудников, команда может сосредоточиться на продукте.
Руководители по разработке также берут на себя роль партнера и наставника, так как они хорошо разбираются в основных составляющих системы управления: личных встречах, обратной связи и обучении. Успешные руководители по разработке оказывают сопровождение профессиональной деятельности разработчиков, чтобы те максимально раскрыли свой потенциал в виде идей, кода, тестов и культуры. Иногда от команды требуется принимать решения разного масштаба, от архитектурного проектирования до выбора стратегий ветвления. Опытные руководители по разработке знают, когда следует вмешаться, а когда лучше позволить команде решать проблемы самостоятельно, чтобы участники могли развиваться.
Существенное отличие Agile от каскадной модели заключается в том, что в Agile-команде руководитель по разработке на равных условиях принимает участие в процессе оценки сложности. В команде, работающей по каскадной модели, можно услышать такой разговор.
- Руководитель: «Но тебе нужно придумать, как сделать это за четыре недели».
- Разработчик: «Это займет шесть недель. Чтобы вывести эту возможность на рынок, потребуется сделать первое, второе и третье».
- Руководитель: «Звучит разумно. «Но тебе нужно придумать, как сделать это за четыре недели».
В то же время руководитель по Agile-разработке понимает, что хорошим специалистам нужно доверять. Постулат Agile-разработки гласит: участники процесса, погруженные в фактическую работу, смогут лучше всех оценить объем и сделать эту работу качественно. График устанавливает команда. Уникальный вклад руководителя по разработке состоит в том, что в ходе оценки сложности работы он может запрашивать предположения и проверять их обоснованность как равный участник команды, а не как начальник.
В Agile-организациях не говорят: «Придумай, как сделать это за четыре недели» (а если говорят, то это тревожный звоночек).
Кто такой scrum-мастер?
Scrum-мастера — это руководители проекта в Agile-команде, в чьи задачи входят оптимизация работы и посредничество между владельцем продукта и командой, чтобы спринты проводились успешно и предсказуемо. Scrum-мастера также отвечают за координирование действий нескольких команд, чтобы основная команда могла сосредоточиться на разработке продукта.
The goal of the scrum master is to keep everyone efficient and on the same page. As a result, the scrum master coordinates most of the inputs and outputs required for an agile program. He or she drives the agile ceremonies of sprint kickoff, daily stand-ups, sprint review, sprint retrospective, and works with the team and development managers to estimate larger items like epics and individual user stories in the backlog. The scrum master may not be as technical as the rest of the team, so the development manager can step in to lend valuable context between the scrum master and the team when a knowledge gap appears. As the team matures in it's application of agile, the scrum master focuses less on estimation and more on optimizing the velocity of delivery.
В более крупной организации Scrum-мастер также принимает на себя роль Agile-наставника. Он помогает команде освоить Agile-практики и умело применять их на протяжении всего цикла жизни продукта: оценку сложности работы в очках за истории, планирование спринтов и непрерывную поставку. Обязанности наставника занимают важное место в роли Scrum-мастера. Он, как эксперт по Agile, знает, зачем методика нужна проекту и компании, и может выступать в поддержку методов Agile, пока компания пытается преодолеть первичные трудности их освоения.
Scrum-мастера и руководители по разработке работают над agile-портфелями вместе как партнеры
В большинстве команд, использующих каскадную модель, центральную роль играет менеджер. Он отвечает за расстановку приоритетов, отслеживание хода работы и оценку производительности. Однако Agile-команды исходят из принципов самоорганизации: они сами составляют дорожную карту и отвечают за поставку. Чтобы подобное прижилось в более крупных организациях, Scrum-мастера и руководители по разработке вместе взращивают Agile-культуру в рамках всей организации и выступают в качестве посредников между командами и руководством высшего звена. Поскольку люди в этих ролях могут взаимодействовать сразу с несколькими Agile-командами, они являются основными агентами в Agile-портфеле.
Пусть Scrum-мастер работает над тем, как команда осваивает и применяет принципы Agile, а руководитель по разработке отвечает за правильный подбор участников команды, курирование существующих участников и поддержание здоровой культуры разработки в каждой команде. Совместная работа двух этих сотрудников способствует успеху Agile-команд.