«Открытые системы»
Автор первой agile-методики проводит обучение в России
Джеф Сазерленд: «Правильная реализация принципов Scrum позволяет добиться четырехкратного увеличения продуктивности разработки и повысить качество результата в 12 раз» |
В начале марта в Санкт-Петербурге прошел тренинг по одной из наиболее известных методик «скорой» (agile) разработки программного обеспечения Scrum, который провел ее автор, Джеф Сазерленд. Курс Certified ScrumMaster был организован компанией Exigen Services StarSoft, которая специализируется на услугах заказной разработки программного обеспечения в России и Восточной Европе и активно применяет данную методику в своей практике.
Предложенный в 1993 году, Scrum стал первым из методов разработки программного обеспечения, которые реализуют принципы, позднее объединенные под собирательным названием agile. В скорых методиках программной инженерии во главу угла ставится возможность адаптироваться к изменениям внешних условий, прежде всего — требований заказчика, постоянное взаимодействие с которым является обязательным для agile-разработки. Скорые методы вводят короткие циклы разработки, каждый из которых должен заканчиваться выпуском готового к работе релиза программного продукта. Его проверка на практике позволяет точнее определить задачи следующей итерации. Еще одним общим принципом agile-методик является повышение значимости отдельных членов команды и продуктивности взаимодействия между ними.
В отличие от другого представителя семейства agile-методов — экстремального программирования (XP), которое вводит конкретные практики процесса программирования, Scrum определяет новые подходы к управлению программными проектами. В соответствии с принципами Scrum, участники разработки выполняют одну из трех определяемых методикой ролей: владелец продукта (Product Owner), руководитель команды разработчиков (Scrum Master) и члены команды (Team). Задача владельца продукта, которым, как правило, является представитель заказчика, состоит в том, чтобы определить требования к программе и расставить их приоритеты. Выделение с самого начала проекта ключевых возможностей будущей программной системы позволяет обеспечить реализацию наиболее ценных для бизнеса заказчика функций и избежать непроизводительных затрат на создание избыточной функциональности.
Для того чтобы учитывать изменение требований, Scrum предписывает владельцу процесса выполнять очередную расстановку приоритетов в списке необходимых функций перед началом каждой итерации разработки, которая длится 30 дней. По окончании этого «забега на короткую дистанцию» (в терминологии Scrum итерация называется Sprint) владелец процесса инспектирует готовый результат и корректирует список приоритетных требований. На определенном этапе оказывается, что все необходимые заказчику возможности реализованы, что является сигналом к окончанию проекта. В итоге разработка полностью удовлетворяющего заказчика решения проходит быстрее и с меньшими затратами, чем при применении традиционных методик с полным и неизменным планированием всех функций в начале разработки.
Под руководством «мастера Scrum» команда разработки, состоящая из пяти-девяти человек, определяет в начале очередной итерации перечень задач, которые необходимо выполнить, для того чтобы реализовать приоритетные возможности в списке требований к программному продукту. Для командной разработки в Scrum очень важен принцип самоорганизации: команда сама решает, кто и как будет выполнять те или иные действия для достижения поставленных целей. Задача мастера — обеспечить надлежащие условия для продуктивной работы команды, в частности, устранить все препятствия, которые могут возникнуть в ходе решения поставленных задач, от установки новой компьютерной мыши до организационных изменений в компании. Для своевременного выявления этих препятствий и постоянного инспектирования хода проекта предназначены ежедневные общие сборы команды — Daily Scrum.
По словам Сазерленда, правильная реализация принципов Scrum позволяет добиться четырехкратного увеличения продуктивности разработки и повысить качество результата в 12 раз. Толчком к созданию Scrum послужил анализ японских методов «экономного производства» (lean manufacturing), предпринятый Сазерлендом с целью преодолеть серьезные недостатки в производительности разработки и качестве программных продуктов, присущие широко распространенной «водопадной» методологии. (Название Scrum было впервые применено в 1986 году японскими исследователями для обозначения небольших, высокопроизводительных команд в проектах, работа которых сравнивалась со схваткой вокруг мяча в регби, ее-то и называют scrum.)
Методика Scrum используется сегодня в десятках тысяч проектов по всему миру. Сазерленд отмечает, что практически ни одна из крупных компаний-производителей программных продуктов не проходит мимо Scrum — среди пользователей методики он называет Microsoft, IBM, Oracle, SAP, Google, Yahoo и др. С 2001 года действует программа сертификации, в рамках которой и прошел тренинг в Санкт-Петербурге. По словам Сазерленда, число таких сертификаций удваивается ежегодно, и на сегодняшний день в мире насчитывается порядка 11 тыс. сертифицированных мастеров Scrum.