Цель данной главы – рассмотреть историю, основы и философию скрам-модели, показать ее преимущества и дать несколько полезных советов. Хорошо подготовленный и работоспособный cкрам-мастер прекрасно понимает и теорию, и практику. За много лет я поняла: люди уверены, будто осознают истинную задачу скрам-мастера. Однако, к сожалению, его роль зачастую низводят до простого «менеджера итераций» или «руководителя аджайл-проектов». Эта глава познакомит вас с базовой информацией, необходимой для плавания по бурным водам перемен в вашей организации. А перемены – это и есть истинная задача скрам-мастера.
Чтобы оставаться на плаву, типичная компания, работающая на прибыль, должна удовлетворять спрос, предлагая клиентам достаточное количество продуктов или сервисов. Главная роль скрам-мастера – сделать видимым истинный потенциал команды, чтобы организация могла соразмерить его со спросом. В отличие от производства материального продукта на производственных линиях, где руководство измеряет выход товара в единицах в день, аджайл-разработка программного обеспечения измеряется удовлетворенностью клиента, в основе которой лежат созданные командой функции (свойства, фрагменты функциональности) или их наборы. Сегодня, во времена засилья YouTube и соцсетей, компании вынуждены сосредотачиваться на быстром удовлетворении запросов клиентов, гибко реагируя на быстро меняющиеся условия конкуренции и потребления.
Еще несколько десятилетий назад водопадная модель разработки программного обеспечения была вполне адекватной: рынки не создавались каждый день, интернета в его современном виде еще не существовало и распространение идей занимало гораздо больше времени. А сегодня вирусные видеоролики разлетаются по миру с ужасающей скоростью и так же быстро устаревают. Мешкать опасно.
На этой иллюстрации я попыталась изобразить противоборствующие силы производства и требований. Бизнес все время требует у технической команды разработки новых функций и новых продуктов. Требования могут исходить, скажем, от топ-менеджера с новыми полномочиями или от менеджера продукта со своей потребностью в новой, классной функциональности. Профессиональный скрам-мастер может указать бизнесу, что баланс интересов слишком склоняется в одну сторону, и, что самое главное, помочь команде максимально эффективно использовать собственные возможности для удовлетворения требований бизнеса с максимальным качеством. Как правило, идеального долгосрочного решения в таких ситуациях не существует: задача скрам-мастера состоит скорее в том, чтобы помочь организации найти идеальные текущие решения в меняющихся (у обеих сторон) условиях.
В последние два десятилетия компании все чаще полагаются на аджайл-методы, чтобы успевать за ростом спроса и изменениями рынков. Сегодня около половины компаний, использующих аджайл, прибегают и к скраму. Компании, открытые новым идеям, давно взяли на вооружение скрам, а в последнее время наблюдается новый всплеск интереса к нему в тех организациях, которые с ним уже знакомы. Мы также заметили, что компании, использующие такие инструменты, как экстремальное программирование, принципы «бережливого производства», канбан-метод, зачастую начинают со скрама.
Джефф Сазерленд впервые использовал скрам в 1993 г. – сначала в Easel Corporation, а затем, в следующие несколько лет, в VMARK, Individual и IDX Systems. Кен Швабер, который работал с Джеффом в Individual, впервые представил cкрам как задокументированную методику на конференции OOPSLA в 1995 г. На рубеже тысячелетий Джефф с блеском применял скрам в Patient Keeper, а Кен помог масштабировать методику в Primavera Systems. Последний пример стал известным благодаря упоминаниям в книге Кена Швабера «Скрам: Гибкое управление продуктом и бизнесом»[2].
Однако cкрам придумали раньше. В 1986 г. в Harvard Business Review была опубликована статья, которую написали Хиротака Такэути и Икудзиро Нонака. Статья называлась «Новые игры в разработке программного продукта» (The New Product Development Game). Авторы настаивали, что организации, производящие программный продукт, должны любыми средствами увеличить скорость и гибкость его разработки, чтобы победить в условиях конкуренции. Вместо осуществления последовательных операций по принципу передачи эстафетной палочки Такэути и Нонака предлагали «холистический», «регбийный» подход – когда вся команда двигается как единое целое, передавая мяч вперед и назад внутри этого целого: по их мнению, это лучше отвечает сегодняшним потребностям. Эта статья – первое упоминание скрама как новой парадигмы продуктовой разработки, как концептуальной основы для разработки быстрой, гибкой и состязательной. Скрам-мастерам следует помнить, что скрам-процесс – как определенный набор рабочих шагов, достижений и материальных результатов – не имеет смысла, если в его основе не лежат тот образ мыслей и те концепции разработки продуктов, которым Такэути и Нонака впервые дали описание. Это внутренняя подвижность, самоорганизующиеся проектные команды, перекрывающие друг друга фазы разработки, постоянное обучение, тонкие методы контроля и передача опыта.
Концепции, лежащие в основе скрама, своим корнями уходят еще глубже в историю. В 1950-х гг. консультант по менеджменту Уильям Эдвардс Деминг придумал цикл «планируй – пробуй – проверяй – корректируй» (Plan – Do – Check – Act, или PDCA) как модель постоянного улучшения, известную также под названиями «цикл Деминга» или «цикл Шухарта». Эта концепция давно использовалась в так называемом бережливом подходе концерна Toyota к производству. Эти идеи один в один совпадают с концепцией спринта в скраме с его ежедневными скрам-совещаниями (как показано на рисунке ниже и далее в книге). Но Деминг не знал, что он практиковал скрам. Вернее, это современные скрам-команды не всегда осознают, что они применяют цикл Деминга!
Но, строго говоря, основы скрама еще древнее, чем идеи Деминга. Вернемся на 1000 лет назад, когда арабский ученый Ибн аль-Хайсам экспериментировал с рефракцией, линзами и зеркалами: он вывел важнейшие законы оптики, изложенные в его фундаментальном труде «Книга оптики». Ибн аль-Хайсама нередко называют отцом научного метода – когда ученый создает гипотезу или ставит вопрос, проводит эксперименты, получает результаты, анализирует их и, возможно, изменяет концепцию (или продолжает эксперименты). Это эмпирический процесс, построенный на доказательствах: ученый использует знание, полученное в результате одного эксперимента, для того чтобы сделать выводы или спроектировать следующий эксперимент с учетом предыдущего. Так Ибн аль-Хайсам открыл природу человеческого зрения.
Наконец, если мы углубимся еще дальше в историю, вы можете представить, что даже примитивная охота первобытного племени выглядела как спринт в скраме: все собирались вместе, рассуждали о том, где выслеживать добычу, собирали охотничьи приспособления, убивали ужин, а потом обсуждали прошедшую охоту, чтобы в будущем улучшить свой план на нее. Наскальные рисунки по всему миру – следы примитивных ретроспектив. Скрам – это наиболее естественный способ охоты, основанный на тесном сотрудничестве и совместной работе для достижения результата. Так было по крайней мере на протяжении 11 000 лет. В последующих главах мы разберем, почему, несмотря на то что скрам отражает естественный подход к работе, он так не прост в применении.
В основе скрама лежит три категории концептуальных положений. Первая – подходы к управлению сложными и хаотичными[3] ситуациями, вторая – набор базовых ценностей, а третья категория – фокус на работе с продуктом по принципу бережливого производства. Вы должны хорошо разобраться в этих положениях не для того, чтобы сдать экзамен на сертификат, а для того, чтобы доходчиво объяснять сотрудникам вашей организации, чем скрам отличается от водопадных процессов.
Сложные адаптивные системы (САС) состоят из различных взаимозависимых элементов, отношения между которыми меняются в процессе. Сложные системы способны к адаптации: когда меняется одна переменная в системе, это затрагивает и другие. Возьмем простой пример из биологии – бактерии стафилококки. В 1940-х гг. более 99 % стафилококков были чувствительны к пенициллину. Сегодня они к нему устойчивы: в результате постоянного воздействия антибиотиков бактерии эволюционировали, чтобы выжить.
В нашем мире требования к продукту, технологии и люди взаимосвязаны: изменения в одном из этих элементов приводит к изменениям в других. В детстве я любила ходить в кино, а заодно и играть на аркадных автоматах рядом с кинозалом. Мы не могли себе позволить игровую приставку типа Atari (да и аркадные автоматы нравились мне больше домашней приставки). Все поменялось, когда компания Nintendo выпустила свою игровую систему. Соседским ребятам подарили ее на Рождество, и с тех пор мы несколько раз в неделю заявлялись к ним играть в Super Mario Brothers. Потом появились джойстики, Playstation, Sega и другие игровые системы и приставки. А теперь есть и мобильные игры. С появлением 16- и 32-битных консолей значительно улучшилась графика, конкуренция подхлестнула разработку все более и более инновационных продуктов (что серьезно расширило выбор для потребителя), а новые технологии позволили производителям выйти на ранее не охваченные рынки. Технологии, производители, потребности и желания пользователей – в производстве компьютерных игр все это взаимосвязано. Изменения в одном элементе делают необходимыми изменения и в других. Так что в детстве я недооценивала важность Марио и Луиджи для развития технологий – оказалось, они не просто спасали принцессу.
Вот как выглядит эта формула сегодня: у потребителей каждую минуту меняются потребности и желания, разработчики постоянно создают новые технологии и улучшенные версии старых, а потребители и другие стейкхолдеры никогда не упускают возможности высказать свое мнение по поводу свойств существующих продуктов. В процессе реализации проекта происходит эволюция нового знания, потребностей и желаний в отношении требований и технологий, и эта эмерджентность вносит свой вклад в сложность системы: у нее появляются новые свойства, не присущие ее элементам. Сложными проектами невозможно адекватно управлять при традиционных подходах, когда каждая задача ставится заранее и затем передается конкретным работникам. Если неизвестно, к чему нужно прийти в итоге, лучше всего воспользоваться подходами, основанными на эмпирических процессах или процессах с прочной доказательной базой: см. статью Д. Дж. Сноудена и М. Э. Бун «Модель действий лидера при принятии решений» (A Leader's Framework for Decision Making) для журнала Harvard Business Review. Но вопрос не в том, чтобы просто применить к той или иной ситуации правильный инструмент: сложные системы включают в себя и сложные взаимодействия между людьми. Сложному проекту нужен процесс, который учитывал бы эмерджентность. Кроме того, он требует и особого стиля руководства, способствующего развитию нормальных взаимоотношений в коллективе.
На следующем рисунке представлена знаменитая матрица Стейси, созданная Ральфом Стейси, профессором менеджмента из школы бизнеса Хертфордширского университета. Стейси много лет пытался разобраться, как использовать науку о сложных системах для изучения организаций. Вы наверняка столкнетесь с его работами, когда будете проходить курс скрам-мастера. Матрица Стейси рассматривает определенность и согласованность, которые в современном мире связаны с технологиями и требованиями к продукту. Чем дальше та или иная ситуация от определенности и согласованности, тем она сложнее и хаотичнее. В то же время простая ситуация характеризуется согласованностью и пониманием. Вспомните какой-нибудь простой проект – из вашего собственного опыта. Требования к новым характеристикам продукта были простыми и четкими, и вы написали весь необходимый код уже несколько недель назад. Вы с легкостью оценили, сколько времени займет проект: сюрпризы были маловероятны. Но при создании ПО такие «простые ситуации» – редкость. Сложный сценарий предполагает, что код не готов, потребитель постоянно меняет требования, а команда разработчиков то и дело срывает сроки. Тут уже не до планирования, поскольку сюрпризы (в основном неприятные) почти гарантированы.
Обратите внимание: я наложила роли в скраме и контрольные точки на матрицу Стейси. Скрам-мастера знают, что они не контролируют сложные проекты, действуя как специалисты по постановке задач и объясняя каждому работнику, что ему предстоит делать каждый день. Контроль осуществляется скорее за счет того, что каждый член команды имеет право на самоорганизацию в течение ряда спринтов (или тайм-боксов), а владелец продукта внимательно работает с бэклогом. Каждая роль в скраме имеет конкретный набор важных зон ответственности, и каждая из них, как подразумевается, должна контролировать хаос (кстати, первый сайт Кена Швабера так и назывался – controlchaos.com). Меня часто спрашивают, предусматривает ли скрам роль менеджера проекта, и я однозначно отвечаю: «Нет!» Ведь если передать одному человеку функцию контроля – что делать, как делать и почему делать, то все может закончиться хаосом и другими печальными последствиями. Три важные зоны ответственности, поделенные между тремя основными ролями в команде, создают систему сдержек и противовесов в наших сложных проектных системах. Эти три главные роли в скраме в сочетании с простой моделью помогают контролировать хаос. В течение каждого спринта команда, сосредоточенная на небольшом наборе пожеланий по проекту, разрабатывает соответствующие технические решения одно за другим, подводя проект к беспроблемному завершению спринта за спринтом. Если эта система контроля не будет достаточно защищенной, то легко могут возникнуть нежелательные явления. Скрам – концепция довольно простая и вместе с тем очень мощная при правильном применении (что не так-то просто). Вы, мой дорогой скрам-мастер, должны упрощать ход спринтов, исключая лишние вмешательства и помогая владельцу продукта содержать в порядке бэклог.
Даже если матрица профессора Стейси и статья Бун и Сноудена задают удобные рамки для размышлений, как правильно выбрать процесс для той или иной ситуации, не стоит слишком упрощать этот материал! Профессор Стейси перестал публиковать матрицу после второго издания своей книги (на сегодня вышло уже шесть). Что же случилось? Профессор Стейси считает, что аудитория слишком упростила матрицу: люди уверены, будто могут самостоятельно выбирать инструмент в зависимости от характера своего проекта. Все не так просто, согласно Стейси: «Итог – это результат взаимодействия между намерениями и стратегией всех вовлеченных в проект сторон, и ход этого взаимодействия никто предсказать не в силах из-за природной неопределенности и непредсказуемости, присущей нашей с вами жизни». Иначе говоря, проблемы устраняет не скрам, их устраняют люди; скрам только показывает, где искать проблемы. Люди сами должны бороться с этими проблемами и придумывать различные решения для различных сценариев. В этой книге рассказывается, как скрам-мастер может содействовать поиску таких решений – как внутри команды, так и вне ее.
Знание – это результат опыта. В традиционных подходах к управлению проектами все решения принимаются в самом начале. Я всегда недоумевала: ведь мы начинаем всерьез разбираться в проекте только под конец! Скрам подталкивает команды выдавать результаты как можно быстрее, поэтому быстрее расширяются и знания исполнителей относительно требований по проекту и технологий, а в работе команды появляется (и усиливается) динамика. Чем раньше команда начнет работу, тем лучше. Когда команда накапливает достаточно знаний, исполнители могут принимать более правильные и взвешенные решения. Обычно скрам-команды откладывают решения по вопросам меньшей важности на более позднее время – требования в их технологическом окружении все равно постоянно меняются.
Скрам, как табурет, стоит на четырех «ножках»: приоритезированный бэклог; выделенная кросс-функциональная команда, тайм-боксы и, наконец, инспекция и адаптация. Эти четыре «ножки» и создают структуру, позволяющую нам называть скрам эмпирическим процессом. Когда «табурет» теряет одну из опор, он лишается равновесия (попробуйте-ка усидеть на табурете с тремя ножками). Даже если одна из «ножек» всего лишь короче других, табурет становится неустойчивым и неудобным. То же относится и к скраму: как только какой-то элемент структуры ослабевает, ослабевает и команда, проект идет наперекосяк, эксперимент становится неубедительным, поскольку утрачиваются точки контроля. Скажем, если скрам-мастер по какой-то причине допускает прерывание спринта, команда может и не довести дело до логического завершения. Все вынуждены остановиться и начать все сначала – это мы и называем хаосом. То же самое происходит, если владелец продукта неаккуратно ведет бэклог, где идеи не ранжированы по приоритетности: в этом случае команда может передать потребителю необходимую функциональность, а может и не передать. Даже небольшое нарушение этих основополагающих принципов может вызвать эффект схода лавины. Если же команда твердо придерживается вышеизложенных принципов скрама, то с наибольшей вероятностью достигнет цели.
Кен Швабер и Джефф Сазерленд создали эти четыре «ножки стула», или принципа скрама, для того, чтобы посредством эмпирического процесса контролировать проекты по разработке программного обеспечения. Впрочем, этот метод годится, пожалуй, для проектов любого характера. Скрам представляет собой особый (имеющий доказательную базу) способ продвижения проекта или инициативы. Без определенных временных рамок для получения обратной связи по фрагментам функциональности (как при «водопадном» управлении проектом) команда, менеджмент и потребители не имеют никакого представления, что за продукт вообще создается. Вспомните обычное совещание по ходу работы над проектом при традиционной модели. Нравились они вам? Лично меня пугали. Как правило, я представляла доклад о статусе исполнения проекта с многочисленными красными, зелеными и желтыми точками на нем, зачитывала какие-то цифры, какие-то проценты («завершенность фазы») и иногда приводила список ближайших рисков. Честно говоря, я, выполняя обязанности традиционного менеджера проекта, действовала так: если я не знала точно степень готовности проекта, то изображала на доске желтую точку, рассчитывая уточнить информацию позднее. Или, хуже того, перед совещанием я допоздна проводила несколько вечеров в офисе, стараясь придать диаграммам Ганта правдоподобность.
Скрам-модель, при которой упор делается на потенциально готовый к поставке продукт и которая усиливает каждый спринт, делает игру в прятки ненужной. Анализ спринтов заменяет совещания по статусу проектов, и при этом анализе статус подлинный, то есть команды показывают реальные версии функциональных возможностей, которые работают! Это интересно и конкретно! Это доказательно – и мы можем работать с доказательствами! Можно больше не гадать: благодаря скрам-модели мы можем всегда увидеть и «потрогать» статус исполнения проекта, обратившись к обзору спринта и взаимодействуя с программным продуктом или системой в таком виде, в каком они существуют в данный момент времени.
Недавно я смотрела телевизионную программу про George Cleverly and Company. Это знаменитая лондонская обувная компания, основанная в 1958 г. Она производит дорогие модели (одни из самых дорогих в мире) индивидуальной работы для самых требовательных модниц и модников. Поэтому компания вынуждена ежедневно, ежечасно работать в очень тесном контакте с потребителями, стараясь понять все их желания и требования. Точно измерив стопу заказчика, включая даже всякого роста наросты и мозоли, мастера переходят к предпочтениям клиента (цвет, кожа, подошва, шнурки…) – для того, чтобы сделать именно такую обувь, о которой мечтает клиент и которую он будет любить. Иногда над одной парой мастера трудятся несколько месяцев, и стоит она по меньшей мере $3000, но вот уже больше полувека клиенты с радостью платят такие деньги и с нетерпением ожидают сообщения о готовности заказа. George Cleverly and Company вовлекает своих клиентов в творческий процесс разработки модели – другого способа создать совершенную обувь просто не существует. Когда я слышу, что отличительные черты бренда Cleverly – высокое мастерство, внимание к деталям и клиентоориентированность, то думаю: а ведь процесс производства обуви в этой компании прекрасно вписывается в скрам-модель. Это повторяющийся креативный процесс, в котором клиент становится важной составной частью, обеспечивающей получение желаемого результата. Даже несмотря на то, что бэклог в этом случае остается фиксированным (вернее, фиксированным остается порядок шагов, осуществляемых производителем в процессе изготовления обуви), потребитель вовлечен в каждый этап этого процесса.
В дополнение к основным принципам в теории сложных адаптивных систем скрам сам по себе имеет пять базовых ценностей: приверженность (то есть верность обязательствам), сосредоточенность, открытость, уважение и смелость. Мы подробно рассмотрим этот вопрос в главе 8 «Вопросы повседневного лидерства в отношениях скрам-мастера с командой».
Команды берут на себя обязательства по достижению целей, ставящихся на спринт, владельцы продукта – по созданию бэклога, а скрам-мастер – по устранению помех на пути проекта (его задача – обеспечить стабильность процесса разработки продукта). Скрам-команда должна делать для этого все необходимое, и ей требуется поддержка со стороны руководства и сотрудников.
Кроме того, нужно дать участникам команды возможность всецело сосредоточиться на своей работе, чтобы они могли успешно ее завершить. Скрам-мастер не должен допускать изменений обязательств в рамках конкретного спринта, чтобы команда не теряла концентрацию. Когда команда уделяет стоящей перед ней задаче все свое внимание, ее работа становится более результативной и лучше соответствует ожиданиям.
Поскольку скрам опирается на эмпирический контроль за продвижением проекта, важно, чтобы результаты и опыт эксперимента (то есть спринта) были прозрачными. Так, анализ спринта позволяет увидеть новые свойства продукта, появившиеся в процессе, а ретроспектива спринта вовлекает членов команды в обсуждение личных и общекомандных успехов, достигнутых в ходе работы, а также выявленных проблем. Если все эти аспекты работы по проекту становятся видимыми, то появляется возможность их проанализировать и адаптировать. А получение доказательств (информации) – самая суть эмпирического процесса. Поэтому открытость и является одним из базовых принципов скрам-метода.
Уважение – то, что каждый человек должен проявлять по отношению к другим индивидуумам, но, к сожалению, это не всегда так. Чтобы каждый мог показать себя с лучшей стороны, участникам команды необходимо уважать друг друга (и как людей, и как носителей определенного стиля работы), признавать вклад коллег в общее дело и т. д. Уважение не берется ниоткуда – его нужно заслужить. Члены команды, работающей по скрам-модели, должны быть преданы делу, уметь при необходимости заменять друг друга, обладать необходимой самостоятельностью и способностью к самоорганизации – иначе команда едва ли добьется взаимного доверия и уважения. В следующих главах мы разберем, как скрам-мастер может моделировать (и, следовательно, создавать) доверие и уважение внутри команды.
От скрам-мастера требуется большое мужество, чтобы применять скрам так, как он был задуман. Хотя скрам не слишком сложно устроен, люди зачастую слишком «заорганизовывают» его изначальную простоту. Я не раз сталкивалась с тем, что руководство компании прибегает к скраму в стремлении сделать больше с меньшими затратами (хотя это не всегда так!), но не признает – и даже не слишком отчетливо понимает, что скрам требует от организации перемен. Одна из самых главных задач скрам-мастера – помочь руководителям организации осознать ее слабые места, чтобы устранить их. Это требует смелости. Иногда команда должна идти наперекор владельцу продукта, если в рамках конкретного спринта от нее просят слишком много. Необходимо мужество, чтобы сказать «нет» такому давлению. Владелец продукта, в свою очередь, должен в контакте со стейкхолдерами смело смотреть в лицо правде – реальному состоянию проекта. Это лишь несколько примеров того, когда необходима смелость, чтобы не нарушать границы эмпирического процесса и избегать ненужных усилий или затрат на продукт или процесс.
Интересное наблюдение: базовые ценности скрама очень похожи на семь ценностей американской армии – верность, чувство долга, уважение, самоотверженная служба, честь, единство и личное мужество. В этом, пожалуй, нет ничего удивительного, потому что у отцов – основателей скрама армейское прошлое: Джефф Сазерленд был военным пилотом экстра-класса, а Кен Швабер учился в военно-морской академии в Кингс-Пойнте.
Бережливые процессы разработки программного обеспечения – результат применения принципов бережливого производства на промышленных предприятиях, перенесенных в сферу разработки ПО. Специалисты спорят о том, как соотносятся аджайл и бережливое производство, но на самом деле это не так важно. Это связано с тем, что по сути, семь принципов бережливого производства нашли свое отражение в аджайл-методах, однако они имеют чуть другой вид и название.
Первый принцип бережливого производства – устранение каких бы то ни было потерь. От неясных требований и лишней (неиспользуемой) документации до пассивного менеджмента и различного вида простоев – все это по возможности устраняется из процесса бережливого производства. В скраме этот настрой на простоту и экономичность обеспечивается за счет ретроспективы, когда выявляется и исправляется то, что работает неправильно. Часто в ходе ретроспективы члены команд жалуются на переизбыток документации, излишнее давление со стороны начальства, множественность ошибок и прочие проблемы.
Второй принцип: бережливое мышление подразумевает, что у каждого члена команды должен быть шанс учиться. А скрам, в свою очередь, требует, чтобы итогом любого спринта было потенциальное реализуемое улучшение продукта: члены команды должны писать код и тестировать его, чтобы понимать, что именно работает неправильно. При этом владелец продукта узнает его все лучше.
Третий принцип: членам команды необходимо как можно теснее контактировать друг с другом: это подразумевает, что они осваивают и соседние «зоны ответственности».
Участники традиционно организованного проекта знают о нем больше всего, когда он уже подходит к концу. Скрам-команды предпочитают не делать выводы на ровном месте, поэтому избегают принимать поспешные решения по поводу любого требования. Это и есть четвертая ценность бережливого метода: принимать решение следует как можно позже.
Далее. В бережливом производстве считается, что разработка продукта должна вестись быстро. Принцип скрама – передача готового продукта производится в среднем раз в 30 дней, хотя многие команды успевают быстрее. Для этого и бережливое производство, и скрам наделяют команду соответствующими полномочиями. Кроме того, при бережливом производстве принцип интеграции должен быть встроен в систему; скрам же требует оценивать проделанную работу совместно с клиентом. И, наконец, бережливый метод призывает смотреть на то, как действует поток создания ценности или цепочка событий в целом при создании ценности для конечного потребителя. Любые проблемы должны устраняться как можно скорее, а команды следует формировать так, чтобы они были в состоянии поставить завершенные инкременты продукта. В скраме это означает, что необходимо создавать выделенную кросс-функциональную команду, которая способна анализировать процессы в ходе ретроспективы. Такие ретроспективы помогают вскрывать проблемы (или препятствия, как они называются в скраме) и устранять их.
Этот раздел – краткий обзор трех ролей в скраме: скрам-команда, владелец продукта и скрам-мастер. Наша книга посвящена в основном роли скрам-мастера, но мы подробно разберем и остальные роли, исходя из их естественных взаимосвязей. Как вы, наверное, сами понимаете, людей обычно очень беспокоит, какова их роль в коллективе и где границы их зоны ответственности. Мы более предметно поговорим о ролях в скраме (и не только в скраме) в главе 9 «Формирование аджайл-организации».
Скрам-команда включает в себя владельца продукта, скрам-мастера и членов команды (оговоримся, что команда разработки состоит только из технического ядра команды). Вся команда принимает участие в работе над поставленной проблемой (элементом бэклога – упорядоченного списка требований, журнала пожеланий) и разрабатывает инновационные решения. Скрам-команда – это 5–9 участников, организованных в группу на период жизненного цикла проекта (и, возможно, на более длительный период). Команда должна обладать соответствующими полномочиями, быть кросс-функциональной[4], а также способной к самоорганизации. Они сами планируют, оценивают и берут на себя обязательства по своей работе, а не надеются на менеджера. Конечная цель работы команды состоит в создании инкремента продукта, который потенциально можно представить заказчику и который удовлетворяет критериям готовности. Обувных мастеров George Cleverly and Company мы можем рассматривать как ядро скрам-команды (команду разработки), тогда как клиент, дизайнеры обуви и так далее совместно с теми же обувными мастерами будут составлять общую скрам-команду. И все эти люди участвуют в производстве соответствующей модели обуви.
Владелец продукта несет ответственность за его конечный успех. Иными словами, если команда отвечает за поставку качественного решения, владелец продукта должен хорошо знать рынок и понимать нужды потребителей, чтобы правильно направлять команду на разработку потенциально продаваемого на рынке релиза – от спринта к спринту. В разных проектах владельцы продуктов, разумеется, разные, но – независимо от технической ситуации и желаемых результатов – у каждого продукта должен быть один (и единственный) владелец, который принимает окончательные решения о направлениях его разработки и порядке создания элементов функциональности. Бэклог, или список того, что должна сделать скрам-команда, составляется владельцем так, чтобы отражать наиболее ценные требования и пожелания к продукту (или их изменения по мере продвижения разработки). Владелец продукта, представляя себе все «что» и «зачем», связанные с разработкой, должен быть доступен для регулярного диалога с командой о требованиях, которые содержатся в бэклоге продукта. Кроме того, владелец продукта должен добиться, чтобы каждый участник команды отчетливо видел будущий продукт и чтобы бэклог заполнялся в соответствии с этим видением. У владельца продукта всегда должен быть готов очередной набор пожеланий по продукту – чтобы команда заблаговременно представляла себе объем работы для следующего спринта. Клиент компании по производству элитной обуви (см. пример выше) – это идеальный пример владельца продукта для скрам-команды: именно он и платит за продукт!
Скрам-мастер «охраняет» процесс разработки. Он понимает причины, лежащие в основе эмпирического процесса, и изо всех сил пытается обеспечить как можно более ровный ход разработки продукта. Этот «слуга-лидер» (термин принадлежит Р. Гринлифу – см. его книгу «Слуга в роли лидера»[5] (Servant Leadership)) защищает членов команды от нежелательных вмешательств и отвлекающих моментов для того, чтобы дать им возможность сосредоточиться на выполнении своих обязательств по спринту, а также помогает владельцу продукта правильно работать с бэклогом. Кроме того, он фасилитирует все встречи, заложенные в структуру скрама, добиваясь, чтобы каждый член команды осознавал поставленные цели и разделял общую ответственность – словом, чтобы команда была настоящей командой, а не наспех собранной группой индивидуумов. Скрам-мастер устраняет препятствия на пути разработки функциональности, несущей максимальную ценность в продукте. Зачастую природа этих препятствий – организационная.
Представьте себе, что скрам-мастер – это такая Швейцария: сохранение нейтралитета, помощь всем стейкхолдерам, вмешательство в самые подходящие моменты – и все это для того, чтобы создавать в первую очередь наиболее важные и ценные элементы функциональности продукта.
Структура скрама проста: это шесть событий, одно из которых опционально, три роли и три «официальных» артефакта.
Спринт – первое из шести событий – итерация с определенной датой начала и окончания. Спринт начинается с планирования и заканчивается обзором и ретроспективой. Команда ежедневно собирается на скрам-собрания (скрам-митинги), цель которых – сделать текущую работу каждого члена команды видимой для других и синхронизировать общие действия на основе того, что было усвоено в процессе работы над проектом.
Во время планирования спринта (второе событие) владелец продукта и команда обсуждают важнейшие задачи, внесенные в бэклог продукта, и осуществляют «мозговой штурм» плана по их реализации. Совокупность пожеланий и требований, выбранных для спринта, и задачи, поставленные перед командой в связи с этим, называются бэклогом спринта.
Планирование обычно занимает 8 часов для 30-дневного спринта. Это время пропорционально сокращается для более коротких спринтов (например, планирование двухнедельного спринта длится не более 4 часов). Совещание состоит из двух частей. В первой части главная роль отводится владельцу продукта, который представляет наиболее важные элементы бэклога (при этом он может пользоваться иллюстрациями, моделями, схемами и т. д.) и дает разработчикам пояснения по любым вопросам – что он хочет видеть в продукте и почему он хочет это видеть. Во второй части совещания на авансцену выходит скрам-команда разработки, члены которой совместно вырабатывают подходы к процессу разработки и в итоге согласовывают план. Именно с этого этапа – второй части планирования – начинается собственно спринт.
Разумеется, команды всегда ищут способы сделать планирование более быстрым и эффективным. Если команда действует последовательно, то можно заметить, что от спринта к спринту время, затрачиваемое на их планирование, сокращается.
Результат планирования спринта – бэклог спринта, который включает в себя конкретные требования по продукту для конкретного спринта, а также соответствующие задачи, поставленные командой во второй части планирования. Мы детально рассмотрим, как обеспечить эффективность планирования спринтов, в главе 3.
В ходе ежедневных скрам-совещаний (третьего события скрама) члены команды стараются сделать свой прогресс в работе видимым, чтобы проинспектировать его и адаптировать к своим целям. Это чем-то похоже на ежедневный мини-цикл Деминга («Планируй – пробуй – проверяй – корректируй»)! Совещание обычно проводится в одно и то же время и в одном и том же месте, о чем команда договаривается заранее. Даже если команда приложила все усилия для правильного планирования спринта, ситуация может измениться в мгновение ока. Том завершает свою работу с небольшим опозданием, Бет, наоборот, раньше, а Ашиш вообще застрял на половине. Во время 15-минутной встречи члены команды обсуждают, что им удалось сделать со времени предыдущего митинга, что они планируют сделать к завтрашнему, а также беседуют про препятствия, которые стоят перед ними. Роль скрам-мастера на таких совещаниях – содействовать обсуждению, не давать участникам «закопаться» в поиск решений для каждой проблемы и фиксировать все препятствия, с которыми, как полагают члены команды, они не могут справиться сами. Скрам-мастер должен попытаться устранить эти препятствия после совещания. Ежедневное скрам-собрание представляет собой текущую оценку и адаптацию сделанного. В совещании участвуют члены команды, владелец продукта и скрам-мастер. Присутствовать могут все желающие – но только в качестве наблюдателей.
Обзор спринта, четвертое событие скрам-метода, дает возможность всем стейкхолдерам высказать в обстановке сотрудничества свои соображения по поводу разрабатываемого продукта. Команда, владелец продукта, скрам-мастер и остальные желающие встречаются, чтобы обсудить элементы функциональности, прогресс работы и текущее состояние продукта, а также обменяться мнениями о том, какие элементы продукта необходимо изменить, и, возможно, сформулировать ряд новых идей, которые можно было бы включить в бэклог. Обычно на таких совещаниях скрам-мастер резюмирует ход спринта, упоминает о важнейших трудностях и проблемах, с которыми столкнулась команда, перечисляет решения, принятые «на ходу» при помощи владельца продукта, и т. д. И, разумеется, на итоговых совещаниях команда должна продемонстрировать, чего ей удалось добиться к окончанию спринта. Такое совещание должно продолжаться не более 4 часов (для 30-дневного спринта).
В ходе ретроспективы – финальной встречи в рамках спринта – члены команды обсуждают события спринта, отмечают, что помогло им в работе, а что – нет, и решают, что нужно поменять в ходе следующих спринтов. Скрам-мастер фиксирует вопросы, которые команда, по ее мнению, не может решить самостоятельно и которые, возможно, должны решаться в масштабе всей организации. В дальнейшем скрам-мастер должен будет сообщить команде о действиях, предпринятых по поводу возникших вопросов. Ретроспектива должна занимать не более 3 часов. Мы подробнее рассмотрим обзор и ретроспективу спринта в главе 5 «Конец? Как шаг за шагом улучшать продукт и процесс его разработки».
Последнее (и необязательное, факультативное) событие скрама – это планирование релиза продукта, в ходе которого скрам-команда планирует долгосрочные инициативы на основании множественных достижений нескольких спринтов. Владелец продукта и команда обсуждают пункты бэклога, зависимости между задачами, риски, план-график, производительность команды и другие вопросы, и, кроме того, согласовывают прогноз на предстоящие работы. Так как бэклог может быть безразмерным, планирование релиза помогает команде и владельцу продукта понять, каковы шансы выпустить продукт в срок. Можно даже вести сокращенную версию бэклога – так называемый бэклог релиза, ценный результат планирования релиза. Такое совещание тоже должно иметь фиксированную продолжительность, однако она разнится и зависит от масштаба программы, количества команд, их распределения по заданиям и от качества самого бэклога. Планирование релиза часто проводятся в самом начале проекта, а по ходу работы команды встречаются с владельцем продукта, чтобы вносить в план соответствующие коррективы в зависимости от полученного опыта. В то же время команды нередко откладывают планирование релиза до тех пор, пока не выполнят хотя бы несколько спринтов: накопленные знания и опыт придают уверенность и позволяют строить более долгосрочные планы релизов (подробно об этом см. главу 2 «Планирование релиза – настройка процесса разработки продукта»). Организация может выбрать любой вариант – в зависимости от ее потребностей.
Кен Швабер как-то сказал мне: «Я не понимаю, почему люди превращают планирование релиза в такое долгое и нудное мероприятие. На деле в нем нет ничего сложного». И после этого мы провели планирование релиза за 15 минут.
Набор артефактов скрама невелик: бэклог продукта, бэклог спринта и инкремент продукта после каждого спринта. Ниже мы рассмотрим и детально проанализируем эти артефакты.
Бэклог – это журнал пожеланий владельца продукта. Все, что владельцы (и другие стейкхолдеры) хотят увидеть в окончательном варианте продукта, заносится в этот список. Бэклог, как уже говорилось, может быть бесконечным: постоянно возникают новые идеи, как улучшить функциональность. Ведет бэклог владелец продукта, хотя доступ к нему должен быть и у членов команды, и у других стейкхолдеров, чтобы они могли предлагать новые элементы в список (задачи или требования).
Владелец продукта формулирует приоритеты, начиная с самых важных или самых полезных позиций. Имеется в виду, что верхняя часть списка представляет собой не просто 10 важнейших позиций, а скорее 10 наиболее приоритетных и срочных позиций. Именно так они и фигурируют в бэклоге продукта – одна за другой. Именно эти позиции – первые в очереди для реализации. Как только команды выбирает задачи, которые должны быть выполнены в рамках очередного спринта (или итерации), эти позиции и их очередности фиксируются. Впрочем, любые приоритеты и детали любого элемента бэклога, если он еще не взят в работу (в спринт), могут быть изменены. При помощи такого механизма команды могут сосредоточиться на задачах конкретного спринта, а владелец продукта сохраняет максимальную свободу действий, устанавливая объем работы на очередной спринт.
У владельцев продукта много способов для оценки и расстановки приоритетов по списку. Требования по продукту, содержащиеся в бэклоге, могут также сопровождаться дополнительными примечаниями: например, нужно увеличить узнаваемость бренда, поднять продажи, заинтересовать клиентов, готовых вложить не менее $10 000, и т. д. Такие дополнительные примечания уникальны для каждой компании и конкретного продукта – они помогают владельцу продукта поддерживать бэклог в порядке.
Бэклогом спринта обычно занимается сама команда: он отражает те задачи, которые команды обязалась выполнить в ходе планирования спринта, а также задачи, отложенные на будущее, и перспективные идеи. Члены команды ежедневно обновляют бэклог спринта, чтобы определить, сколько часов осталось у конкретного работника на выполнение стоящей перед ним задачи. Кроме того, члены команды могут снимать, добавлять и изменять задачи по ходу спринта.
Инкремент (приращение) продукта – ощутимый результат работы каждого спринта. Он представляет собой набор бизнес-функциональности, отдельных пользовательских историй и других результатов, которых команде удалось добиться в ходе спринта. Инкремент продукта должен быть потенциально готовым к поставке, то есть достаточно высококачественным для того, чтобы его можно было передать пользователям. Владелец продукта отвечает за принятие инкремента продукта после каждого спринта – в соответствии с согласованными критериями готовности и критериями приемки по каждому результату работы в спринте (функциональности, пользовательской истории, обособленной задачи). Без инкремента продукта его владелец и другие стейкхолдеры не в состоянии ни проинспектировать, ни адаптировать продукт.
Команда должна добиться, чтобы ее прогресс был всегда видимым. Для этого она может пользоваться различными инструментами. К этим инструментам относятся, например, диаграммы сгорания – то есть графики сделанной и оставшейся по релизу и спринту работы.
Разновидность бэклога продукта, который составляется под релиз конкретного продукта, так и называется – бэклог релиза. Хотя бэклог релиза можно составить и заранее, в ходе проекта владелец продукта имеет право убирать или менять требования, а также договариваться с командой о глубине охвата конкретных элементов в соответствии со своими взглядами на объем работы, время и затраты. Таким образом, в процессе реализации проекта бэклог релиза должен постоянно обновляться. В главе 2 будет рассказано подробнее о бэклогах продукта, а также о бэклогах релиза и диаграммах сгорания.
Диаграмма сгорания показывает, сколько работы остается в бэклоге релиза после окончания каждого спринта. Это дает владельцу продукта важную информацию для принятия обоснованных решений по объемам работы, времени и затратам. Из нижеприведенной диаграммы понятно, что объем работы, остающейся в конце каждого спринта, больше, чем планировалось.
Если в процессе конкретного спринта каждый член команды будет обновлять бэклог спринта, ежедневно указывая количество оставшихся часов работы по каждому заданию, то команда увидит, удастся ли ей «сжечь» эти часы до конца спринта. Следующая таблица показывает, что команда не справилась со всеми задачами, определенными в плане спринта: остается еще примерно 50 часов работы.
Диаграмма сгорания очень важна – ведь дата окончания спринта устанавливается раз и навсегда. Наряду с ежедневными скрам-митингами бэклог спринта и диаграмма сгорания наглядно показывают команде, когда она сбивается с ритма, и позволяют предметно обсудить, что можно предпринять для исправления ситуации. Диаграмма сгорания спринта «сжигает» часы работы по дням спринта, тогда как диаграмма сгорания релиза отражает выполнение единиц работы (часто оцениваемых в неких условных единицах) или количество спринтов, оставшихся до релиза. В главе 3 и 5 подробно рассказывается про бэклоги и диаграммы сгорания.
Скрам основан на «бережливой» концепции превращения идеи в функциональность продукта c максимально возможной эффективностью. Скрам-модель подразумевает выявление препятствий на пути к результатам. Законы скрама защищают команду от хаоса – так, чтобы к концу спринта она смогла выполнить свои обязательства перед клиентом.
Цикл жизни проекта, как правило, краток, а препятствия, которые необходимо выявлять, возникают постоянно, поэтому список проблем, требующих вмешательства скрам-мастера, может быть бесконечным. В ходе работы команда ежедневно, ежечасно сталкивается с самыми разными препятствиями и отвлекающими моментами. Владелец продукта и стейкхолдеры, подводя итоги спринта, внимательно исследуют продукт. Это часто приводит к изменениям в бэклоге продукта и, таким образом, в самом продукте. Ретроспектива спринта дает команде возможность сосредоточиться на совершенствовании процесса, чтобы в дальнейшем он протекал более гладко. Следует отметить, что скрам-модель содержит три встроенных механизма для выявления проблем. Как говорят в Техасе, если вы ищете приключений на свой зад, то обязательно их найдете. А скрам может выявить немало проблем.
Так что же нам, скрам-мастерам, делать со всеми этими трудностями? Нужно спросить себя: «Трудность, с которой мы столкнулись, настоящая проблема нашей организации или просто досадный сбой?» Рассмотрим пример настоящей проблемы – документ, который необходимо представить для утверждения в Управление по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA). Скажем, в ходе ретроспективы команда указала, что эта проблема приводит к непроизводительным потерям, – но ведь ни один продукт не попадет на американский рынок без разрешения от FDA. Так что это и есть настоящая проблема, с которой придется тщательно работать.
Или, например, давайте представим себе, что на ретроспективе спринта сотрудник жалуется, что его часто отрывали от командной работы, заставляя переключаться на другой проект с другим менеджером. Это серьезная проблема? Вполне возможно. Но, возможно, и просто сбой. Почему? Скрам гласит: члены команды должны быть преданы общему делу и сосредоточены на выполнении обязательств перед командой. Когда разработчик вынужден отвлечься на другой проект, у него голова идет кругом от перегрузок, поскольку объем работы увеличивается. Вполне вероятно, что он не выполнит свои обязательства ни перед командой, ни по другому проекту. Пока элементы функциональности не готовы, невозможно провести их инспекцию и адаптацию, что сводит на нет все плюсы эмпирического контроля. Словом, это неприемлемый вариант, членов команды нельзя отрывать от текущей работы. В таких случаях скрам-мастер должен предупредить владельца продукта, что выполнение разработчиком своих обязательств находится под угрозой. Возможно, о проблеме придется довести до сведения руководства, чтобы такие просьбы больше не повторялись, – да и сами члены команды должны научиться отказывать. Впрочем, маловероятно, что описанная ситуация возникнет в самом начале работы.
Начиная (или даже продолжая) работать со скрамом, вы, скорее всего, едва ли получите в свое распоряжение идеальную команду, функционирующую в идеальных рабочих условиях. Поэтому я подготовила короткий список: что необходимо уяснить в первую очередь для успешного начала работы.
● В вашей команде все члены выделены для проекта на 100 %? Члены команды представляют собой кросс-функциональный набор навыков и способностей, которых в совокупности достаточно для поставки ценности конечному заказчику?
● Есть ли у вас владелец продукта? Если нет, можете ли вы подобрать кого-то на эту роль, чтобы команда как можно скорее начала работать над самыми важными элементами бэклога?
● Есть ли у владельца продукта свое видение, ведет ли он бэклог? (Подробнее см. главу 5.)
● Можете ли вы организовать не более чем 30-дневный (а еще лучше – более короткий) спринт?
● Можете ли вы привлечь к участию в обзоре спринта бизнес-стейкхолдеров? (Это отнюдь не обязательное требование, однако в этом случае повышается оперативность и прозрачность работы вашей команды.)
● Хватит ли вам смелости обсуждать проблемы по мере их появления?
● Можете ли вы помочь команде создать и вести бэклог спринта? (Подробнее см. главу 2.)
● Можете ли вы взять на себя обязательства по защите команды от вмешательств, независимо от того, кто будет их инициатором?
Профессиональный скрам-мастер должен знать принципы и практику скрама – его историю, основополагающие концепции, методику проведения совещаний, артефакты и роли. Эти знания помогут вам в тех случаях, когда вы столкнетесь с ошибочными ожиданиями от скрама, с непониманием его идей, базы знаний и целей. Работа со скрамом порождает массу сложностей – как для руководства организаций, где он применяется, так и для команд. По мере чтения этой книги вы начнете понимать, почему это такое непростое дело и почему оно требует мужества.