Кен Швабер и Джефф Сазерленд создали эти четыре «ножки стула», или принципа скрама, для того, чтобы посредством эмпирического процесса контролировать проекты по разработке программного обеспечения. Впрочем, этот метод годится, пожалуй, для проектов любого характера. Скрам представляет собой особый (имеющий доказательную базу) способ продвижения проекта или инициативы. Без определенных временных рамок для получения обратной связи по фрагментам функциональности (как при «водопадном» управлении проектом) команда, менеджмент и потребители не имеют никакого представления, что за продукт вообще создается. Вспомните обычное совещание по ходу работы над проектом при традиционной модели. Нравились они вам? Лично меня пугали. Как правило, я представляла доклад о статусе исполнения проекта с многочисленными красными, зелеными и желтыми точками на нем, зачитывала какие-то цифры, какие-то проценты («завершенность фазы») и иногда приводила список ближайших рисков. Честно говоря, я, выполняя обязанности традиционного менеджера проекта, действовала так: если я не знала точно степень готовности проекта, то изображала на доске желтую точку, рассчитывая уточнить информацию позднее. Или, хуже того, перед совещанием я допоздна проводила несколько вечеров в офисе, стараясь придать диаграммам Ганта правдоподобность.
Скрам-модель, при которой упор делается на потенциально готовый к поставке продукт и которая усиливает каждый спринт, делает игру в прятки ненужной. Анализ спринтов заменяет совещания по статусу проектов, и при этом анализе статус подлинный, то есть команды показывают реальные версии функциональных возможностей, которые работают! Это интересно и конкретно! Это доказательно и мы можем работать с доказательствами! Можно больше не гадать: благодаря скрам-модели мы можем всегда увидеть и «потрогать» статус исполнения проекта, обратившись к обзору спринта и взаимодействуя с программным продуктом или системой в таком виде, в каком они существуют в данный момент времени.
Недавно я смотрела телевизионную программу про George Cleverly and Company. Это знаменитая лондонская обувная компания, основанная в 1958 г. Она производит дорогие модели (одни из самых дорогих в мире) индивидуальной работы для самых требовательных модниц и модников. Поэтому компания вынуждена ежедневно, ежечасно работать в очень тесном контакте с потребителями, стараясь понять все их желания и требования. Точно измерив стопу заказчика, включая даже всякого роста наросты и мозоли, мастера переходят к предпочтениям клиента (цвет, кожа, подошва, шнурки) для того, чтобы сделать именно такую обувь, о которой мечтает клиент и которую он будет любить. Иногда над одной парой мастера трудятся несколько месяцев, и стоит она по меньшей мере $3000, но вот уже больше полувека клиенты с радостью платят такие деньги и с нетерпением ожидают сообщения о готовности заказа. George Cleverly and Company вовлекает своих клиентов в творческий процесс разработки модели другого способа создать совершенную обувь просто не существует. Когда я слышу, что отличительные черты бренда Cleverly высокое мастерство, внимание к деталям и клиентоориентированность, то думаю: а ведь процесс производства обуви в этой компании прекрасно вписывается в скрам-модель. Это повторяющийся креативный процесс, в котором клиент становится важной составной частью, обеспечивающей получение желаемого результата. Даже несмотря на то, что бэклог в этом случае остается фиксированным (вернее, фиксированным остается порядок шагов, осуществляемых производителем в процессе изготовления обуви), потребитель вовлечен в каждый этап этого процесса.
Базовые скрам-ценности
В дополнение к основным принципам в теории сложных адаптивных систем скрам сам по себе имеет пять базовых ценностей: приверженность (то есть верность обязательствам), сосредоточенность, открытость, уважение и смелость. Мы подробно рассмотрим этот вопрос в главе 8 «Вопросы повседневного лидерства в отношениях скрам-мастера с командой».
Команды берут на себя обязательства по достижению целей, ставящихся на спринт, владельцы продукта по созданию бэклога, а скрам-мастер по устранению помех на пути проекта (его задача обеспечить стабильность процесса разработки продукта). Скрам-команда должна делать для этого все необходимое, и ей требуется поддержка со стороны руководства и сотрудников.
Кроме того, нужно дать участникам команды возможность всецело сосредоточиться на своей работе, чтобы они могли успешно ее завершить. Скрам-мастер не должен допускать изменений обязательств в рамках конкретного спринта, чтобы команда не теряла концентрацию. Когда команда уделяет стоящей перед ней задаче все свое внимание, ее работа становится более результативной и лучше соответствует ожиданиям.
Поскольку скрам опирается на эмпирический контроль за продвижением проекта, важно, чтобы результаты и опыт эксперимента (то есть спринта) были прозрачными. Так, анализ спринта позволяет увидеть новые свойства продукта, появившиеся в процессе, а ретроспектива спринта вовлекает членов команды в обсуждение личных и общекомандных успехов, достигнутых в ходе работы, а также выявленных проблем. Если все эти аспекты работы по проекту становятся видимыми, то появляется возможность их проанализировать и адаптировать. А получение доказательств (информации) самая суть эмпирического процесса. Поэтому открытость и является одним из базовых принципов скрам-метода.
Уважение то, что каждый человек должен проявлять по отношению к другим индивидуумам, но, к сожалению, это не всегда так. Чтобы каждый мог показать себя с лучшей стороны, участникам команды необходимо уважать друг друга (и как людей, и как носителей определенного стиля работы), признавать вклад коллег в общее дело и т. д. Уважение не берется ниоткуда его нужно заслужить. Члены команды, работающей по скрам-модели, должны быть преданы делу, уметь при необходимости заменять друг друга, обладать необходимой самостоятельностью и способностью к самоорганизации иначе команда едва ли добьется взаимного доверия и уважения. В следующих главах мы разберем, как скрам-мастер может моделировать (и, следовательно, создавать) доверие и уважение внутри команды.
От скрам-мастера требуется большое мужество, чтобы применять скрам так, как он был задуман. Хотя скрам не слишком сложно устроен, люди зачастую слишком «заорганизовывают» его изначальную простоту. Я не раз сталкивалась с тем, что руководство компании прибегает к скраму в стремлении сделать больше с меньшими затратами (хотя это не всегда так!), но не признает и даже не слишком отчетливо понимает, что скрам требует от организации перемен. Одна из самых главных задач скрам-мастера помочь руководителям организации осознать ее слабые места, чтобы устранить их. Это требует смелости. Иногда команда должна идти наперекор владельцу продукта, если в рамках конкретного спринта от нее просят слишком много. Необходимо мужество, чтобы сказать «нет» такому давлению. Владелец продукта, в свою очередь, должен в контакте со стейкхолдерами смело смотреть в лицо правде реальному состоянию проекта. Это лишь несколько примеров того, когда необходима смелость, чтобы не нарушать границы эмпирического процесса и избегать ненужных усилий или затрат на продукт или процесс.
Интересное наблюдение: базовые ценности скрама очень похожи на семь ценностей американской армии верность, чувство долга, уважение, самоотверженная служба, честь, единство и личное мужество. В этом, пожалуй, нет ничего удивительного, потому что у отцов основателей скрама армейское прошлое: Джефф Сазерленд был военным пилотом экстра-класса, а Кен Швабер учился в военно-морской академии в Кингс-Пойнте.
Скрам и бережливость
Бережливые процессы разработки программного обеспечения результат применения принципов бережливого производства на промышленных предприятиях, перенесенных в сферу разработки ПО. Специалисты спорят о том, как соотносятся аджайл и бережливое производство, но на самом деле это не так важно. Это связано с тем, что по сути, семь принципов бережливого производства нашли свое отражение в аджайл-методах, однако они имеют чуть другой вид и название.
Первый принцип бережливого производства устранение каких бы то ни было потерь. От неясных требований и лишней (неиспользуемой) документации до пассивного менеджмента и различного вида простоев все это по возможности устраняется из процесса бережливого производства. В скраме этот настрой на простоту и экономичность обеспечивается за счет ретроспективы, когда выявляется и исправляется то, что работает неправильно. Часто в ходе ретроспективы члены команд жалуются на переизбыток документации, излишнее давление со стороны начальства, множественность ошибок и прочие проблемы.
Второй принцип: бережливое мышление подразумевает, что у каждого члена команды должен быть шанс учиться. А скрам, в свою очередь, требует, чтобы итогом любого спринта было потенциальное реализуемое улучшение продукта: члены команды должны писать код и тестировать его, чтобы понимать, что именно работает неправильно. При этом владелец продукта узнает его все лучше.
Третий принцип: членам команды необходимо как можно теснее контактировать друг с другом: это подразумевает, что они осваивают и соседние «зоны ответственности».
Участники традиционно организованного проекта знают о нем больше всего, когда он уже подходит к концу. Скрам-команды предпочитают не делать выводы на ровном месте, поэтому избегают принимать поспешные решения по поводу любого требования. Это и есть четвертая ценность бережливого метода: принимать решение следует как можно позже.
Далее. В бережливом производстве считается, что разработка продукта должна вестись быстро. Принцип скрама передача готового продукта производится в среднем раз в 30 дней, хотя многие команды успевают быстрее. Для этого и бережливое производство, и скрам наделяют команду соответствующими полномочиями. Кроме того, при бережливом производстве принцип интеграции должен быть встроен в систему; скрам же требует оценивать проделанную работу совместно с клиентом. И, наконец, бережливый метод призывает смотреть на то, как действует поток создания ценности или цепочка событий в целом при создании ценности для конечного потребителя. Любые проблемы должны устраняться как можно скорее, а команды следует формировать так, чтобы они были в состоянии поставить завершенные инкременты продукта. В скраме это означает, что необходимо создавать выделенную кросс-функциональную команду, которая способна анализировать процессы в ходе ретроспективы. Такие ретроспективы помогают вскрывать проблемы (или препятствия, как они называются в скраме) и устранять их.
Роли в скраме
Этот раздел краткий обзор трех ролей в скраме: скрам-команда, владелец продукта и скрам-мастер. Наша книга посвящена в основном роли скрам-мастера, но мы подробно разберем и остальные роли, исходя из их естественных взаимосвязей. Как вы, наверное, сами понимаете, людей обычно очень беспокоит, какова их роль в коллективе и где границы их зоны ответственности. Мы более предметно поговорим о ролях в скраме (и не только в скраме) в главе 9 «Формирование аджайл-организации».
Скрам-команда
Скрам-команда включает в себя владельца продукта, скрам-мастера и членов команды (оговоримся, что команда разработки состоит только из технического ядра команды). Вся команда принимает участие в работе над поставленной проблемой (элементом бэклога упорядоченного списка требований, журнала пожеланий) и разрабатывает инновационные решения. Скрам-команда это 59 участников, организованных в группу на период жизненного цикла проекта (и, возможно, на более длительный период). Команда должна обладать соответствующими полномочиями, быть кросс-функциональной[4], а также способной к самоорганизации. Они сами планируют, оценивают и берут на себя обязательства по своей работе, а не надеются на менеджера. Конечная цель работы команды состоит в создании инкремента продукта, который потенциально можно представить заказчику и который удовлетворяет критериям готовности. Обувных мастеров George Cleverly and Company мы можем рассматривать как ядро скрам-команды (команду разработки), тогда как клиент, дизайнеры обуви и так далее совместно с теми же обувными мастерами будут составлять общую скрам-команду. И все эти люди участвуют в производстве соответствующей модели обуви.
Владелец продукта
Владелец продукта несет ответственность за его конечный успех. Иными словами, если команда отвечает за поставку качественного решения, владелец продукта должен хорошо знать рынок и понимать нужды потребителей, чтобы правильно направлять команду на разработку потенциально продаваемого на рынке релиза от спринта к спринту. В разных проектах владельцы продуктов, разумеется, разные, но независимо от технической ситуации и желаемых результатов у каждого продукта должен быть один (и единственный) владелец, который принимает окончательные решения о направлениях его разработки и порядке создания элементов функциональности. Бэклог, или список того, что должна сделать скрам-команда, составляется владельцем так, чтобы отражать наиболее ценные требования и пожелания к продукту (или их изменения по мере продвижения разработки). Владелец продукта, представляя себе все «что» и «зачем», связанные с разработкой, должен быть доступен для регулярного диалога с командой о требованиях, которые содержатся в бэклоге продукта. Кроме того, владелец продукта должен добиться, чтобы каждый участник команды отчетливо видел будущий продукт и чтобы бэклог заполнялся в соответствии с этим видением. У владельца продукта всегда должен быть готов очередной набор пожеланий по продукту чтобы команда заблаговременно представляла себе объем работы для следующего спринта. Клиент компании по производству элитной обуви (см. пример выше) это идеальный пример владельца продукта для скрам-команды: именно он и платит за продукт!
Скрам-мастер
Скрам-мастер «охраняет» процесс разработки. Он понимает причины, лежащие в основе эмпирического процесса, и изо всех сил пытается обеспечить как можно более ровный ход разработки продукта. Этот «слуга-лидер» (термин принадлежит Р. Гринлифу см. его книгу «Слуга в роли лидера»[5] (Servant Leadership)) защищает членов команды от нежелательных вмешательств и отвлекающих моментов для того, чтобы дать им возможность сосредоточиться на выполнении своих обязательств по спринту, а также помогает владельцу продукта правильно работать с бэклогом. Кроме того, он фасилитирует все встречи, заложенные в структуру скрама, добиваясь, чтобы каждый член команды осознавал поставленные цели и разделял общую ответственность словом, чтобы команда была настоящей командой, а не наспех собранной группой индивидуумов. Скрам-мастер устраняет препятствия на пути разработки функциональности, несущей максимальную ценность в продукте. Зачастую природа этих препятствий организационная.