Сертификат на английском языке |
Роли Scrum
5.3. Разработчик
Scrum-команда должна состоять из мотивированных профессиональных сотрудников. Это факт, на котором построена оптимальность данной гибкой методологии. Члены команды отвечают за разработку программного продукта высокого качества. Они должны обладать множеством различных навыков, необходимых для создания эффективного программного обеспечения:
- Бизнес и системный анализ.
- Проектирование архитектуры программного продукта.
- Программирование.
- Тестирование.
- Настройка баз данных.
- Разработка эргономичных пользовательских интерфейсов.
Члены команды участвуют в планировании работ на временной интервал, который в Scrum принято называть "спринт". Команда может включать опытных разработчиков и новичков, которые в процессе работы должны совершенствоваться при обмене знаниями. Члены команды отвечают за следующие задачи в проекте:
- обязательное выполнение элементов работ, включенных в текущий спринт:
- акцент на взаимосвязанных задачах спринта;
- совершенствование личной и командной работы.
Основной движущей силой команды является ее участник, которого принято называть разработчик (Development member) - специалист, представляющий собой "ядро" Scrum. От его навыков, умения, квалификации, опыта будет зависеть дальнейшее развитие продукта и Scrum-команды. Как правило, команда, работающая над продуктом, состоит из 4-15 человек. Помимо владения теоретическими знаниями каждый член команды должен уметь практически применить следующие навыки:
- общаться с пользователями для понимания целей производимых разработок;
- собирать "правильные" требования, которые в дальнейшем можно сопоставить с ожиданиями ключевых пользователей;
- планировать дальнейшую работу над продуктом в виде его инкрементного развития;
- документировать в минимальном объеме требования;
- выполнять синтез разрозненных и противоречивых требований в единое комплексное рабочее решение;
- создавать удобный, читаемый, понятный, однозначный код ИС в целях его дальнейшего развития;
- проводить полный цикл разных видов тестирования;
- выполнять установку программного обеспечения;
- поддерживать пользователей и отвечать на любые, даже глупые, вопросы.
Разработчика Scrum-команды целесообразно сравнивать со швейцарским ножом, который виртуозно может решить любую поставленную перед ним задачу. Но неправильно думать, что за счет универсализации теряется спецификация, выражаемая в создании качественного и используемого кода программного продукта. Универсализация приветствуется и всячески "взращивается" в членах команды, но разрабатывать инкремент программного продукта - это основная задача разработчиков Scrum-команды.
5.4. Scrum-мастер
Scrum-мастер - движущая сила Scrum-процесса. Он призван помогать команде в освоении гибкой методологии. Его роль является определяющей при внедрении Scrum. Для того чтобы Scrum получился успешным, Scrum-мастер должен обладать следующими качествами:
- быть ответственным;
- отдавать должное команде, а не личным достижениям;
- всегда быть готовым к диалогу;
- выкладываться по максимуму;
- обладать умением влиять на других;
- обладать развитым профессиональным кругозором;
- разбираться в профессиональных и технических вопросах.
Scrum-мастер призван помогать команде в использовании Scrum. Его функции сопоставимы с функциями тренера, который помогает спортсменам соблюдать спортивный режим и поддерживать физическую форму. Scrum-мастер создает мотивации и в то же время следит за тем, чтобы члены команды не увиливали от выполнения "тяжелых физических упражнений". Однако его полномочия ограничены. Он не может заставить сотрудника выполнять то или иное упражнение, которое тот не желает выполнять. Вместе с тем он напоминает о целях и о том, как необходимо их достигать. Scrum-мастер обладает властью в той мере, в какой этой властью наделила его команда.
Scrum-мастер может сказать команде: "Итак, к окончанию каждого спринта мы должны создавать программный продукт, потенциально готовый к установке. На этот раз нам не удастся создать такой продукт. Что мы можем сделать для того, чтобы подобная ситуация не повторилась в следующем спринте?". Это пример проявления власти Scrum-мастера над процессом. Если команде не удалось к окончанию текущего спринта изготовить программный продукт, потенциально готовый к установке, значит, произошел какой-то сбой в работе команды. Но поскольку власть Scrum-мастера распространяется только на процесс, то он не имеет права сказать: "Поскольку нам не удалось к окончанию текущего спринта изготовить программный продукт, потенциально готовый к отправке заказчику, я хочу, чтобы он просмотрел весь код до того, как он будет окончательно принят". Возможно, было бы не так уж плохо, если бы кто-то просмотрел весь код, но Scrum-мастер не имеет права принять такое решение, поскольку оно выходит за пределы его полномочий и вторгается в сферу ответственности команды. Scrum-мастер должен лишь контролировать соблюдение процесса командой, его роль может оказаться более трудной, чем роль типичного руководителя проекта, так как руководители проектов зачастую могут сказать: "Делайте так, потому что я так решил".
При назначении SM не рекомендуется совершать следующих ошибок:
- назначать на эту роль сотрудника без соответствующих знаний и опыта;
- назначать на эту роль другого члена команды;
- делегировать ему возможность принимать решения от имени команды или ее членов.
Проводя параллель с функциональным или процессным подходом к организации процессов, можно сказать, что обязанности Scrum-мастера соответствуют роли функционального менеджера/администратора, но не владельца процесса.