March 16, 2019

Scrum

Введение

Scrum появился около двадцати лет назад как эффективный метод увеличения продуктивности при разработке программного обеспечения. Завоевав популярность в Силиконовой долине, Scrum быстро получил признание в других отраслях бизнеса. Его основатели Кен Швабер и Джефф Сазерлэнд изучили передовой мировой опыт успешных компаний и пришли к выводу, что каскадная модель*, по которой прежде строилась работа над IT-проектами, безнадежно устарела. Она не отвечала ожиданиям клиентов, поскольку работа продвигалась медленно, строго согласно долговременному плану, и часто на выходе получался не тот продукт, который на самом деле был нужен. Планомерное управление проектом сверху вниз создает иллюзию контроля и уверенности в процессе работы, однако на самом деле результат непредсказуем. Несмотря на наличие килограммов бумаги с подробными планами, обоснованиями, графиками и таблицами, сроки срываются, бюджет превышается, а работники бывают разочарованы, ощущая бесполезность своей деятельности.

Термин «Scrum» заимствован из спортивной терминологии. Это элемент регби, выполнение которого требует эффективного взаимодействия группы из восьми человек.

Трудно поверить, но Scrum улучшает продуктивность команд на 300–400 %, а лучшие команды начинают работать в 8 раз эффективнее! Основная идея данного метода, «Инспектируй и адаптируй», заключается в том, что долговременное планирование бесполезно, и не стоит ждать окончания проекта для того, чтобы оценить продукт. Напротив, нужно регулярно проверять, нужно ли людям то, что вы делаете, и быстро перестраиваться в случае необходимости. В результате многократно улучшается продуктивность и снижаются затраты, а главное — люди с радостью выполняют свою работу.

В данной книге Джефф Сазерлэнд обобщил собственный управленческий и консультативный опыт по созданию Scrum-команд, а также опыт своих последователей в разных странах. Автор убежден, что Scrum предлагает слишком серьезные конкурентные преимущества, чтобы его не использовать, и дает подробные рекомендации по организации работы. Несмотря на небольшой объем, книга максимально насыщена информацией и проиллюстрирована множеством примеров. Примечателен тот факт, что, наряду с бизнесом, Scrum эффективен и в личной жизни, и в решении глобальных проблем.

_________

*Каскадная модель (англ. waterfall model) — модель процесса разработки программного обеспечения, включающая последовательные этапы: определение требований, проектирование, конструирование (реализация), воплощение, тестирование и отладка, инсталляция и поддержка.

1. Основы Scrum

Ключевые принципы метода:

• Люди важнее процессов.

• Продукт важнее документов.

• Сотрудничество с клиентом важнее переговоров.

• Способность меняться важнее следования планам.

• Должности и титулы не важны – важно то, что вы делаете.

Понять, что такое Scrum, можно, выполнив простое упражнение.

Перед командой, в которой минимум три человека, ставится цель: сделать как можно больше бумажных самолетов, которые могут летать по комнате. Роли в команде распределяются следующим образом:

—   один член команды подсчитывает, сколько сделано самолетов, которые могут летать;

—   другой участвует в процессе изготовления самолетов, но в то же время уделяет внимание особенностям процесса и ищет пути улучшения качества продукции и ускорения производства;

—   остальные стараются сделать как можно больше качественных самолетов.

Упражнение включает три шестиминутных цикла:

1 минута — планирование. (Как делать самолеты?)

3 минуты — изготовление самолетов.

2 минуты — обсуждение. (Как улучшить процесс «авиастроения»? Что получалось хорошо? Что плохо? Как можно изменить дизайн? Как действовать быстрее? Как улучшить качество?)

Оцените, как изменились результаты после трех циклов (скорость, качество).

1.1. Спринт

Scrum отличается от традиционных систем управления, прежде всего, отсутствием подробного долгосрочного планирования. Детальные многолетние планы, как правило, нереалистичны. Хороший план предполагает возможность исследований, изменений и появления новых идей.

В начале работы над проектом определяется продолжительность спринтов (от англ. Sprint — забег на короткую дистанцию), равных отрезков времени (оптимально от 1 до 4 недель), из которых состоит проект. Чем короче спринт, тем динамичнее и гибче процесс разработки. Во время каждого спринта создается продукт или услуга, которые можно продемонстрировать клиенту. «Частично сделанное» считается несделанным!

Если вы осуществляете проект по ремонту дома согласно Scrum, вам лучше отремонтировать одну комнату в течение одного спринта вместо того, чтобы демонтировать старые полы во всем доме и начинать штробить стены под проводку.

Каждый новый спринт планируется заново по принципу «стирай и повторяй». Обратная связь, полученная от клиента в режиме реального времени, помогает определить новые приоритеты и ценности и быстро исправить ошибки. Иногда приходится полностью менять направление деятельности, однако лучше потратить 1–2 спринта, чем получить на выходе продукт, который не будет востребован.

Американцы приходили в Афганистан и в Ирак с намерением помочь наладить мирную жизнь населения, но не спрашивали, что именно нужно людям. Они тратили миллионы долларов на строительство птицефабрик, но не учитывали тот факт, что неграмотное население не может работать на сложном оборудовании. Когда же, наконец, «благодетели» поинтересовались, чего хотят местные жители, то выяснилось, что им нужен всего лишь мост через реку, чтобы можно было быстро возить продукцию на рынок. Таким образом, то, что представляло собой ценность (мост) стоило несколько сотен долларов, а то, что не имело ценности (фабрика) — миллионы.

Первый спринт — самый сложный, и команде предстоит угадать, что именно нужно клиенту. Тем не менее, как только будет создан первый, «сырой» продукт, клиенты скажут, что для них наиболее важно. Не старайтесь дать клиенту все и сразу, сфокусируйтесь на самом ценном, и вы значительно сэкономите силы, бюджет и время: согласно принципу Парето, 80% ценности находится в 20% особенностей.

1.2. Команда

Несмотря на то, что о командной работе много говорят и пишут, бизнес ориентирован преимущественно на привлечение отдельных специалистов и стимулирование индивидуальных достижений (бонусы, увеличение зарплаты, продвижение по службе). Однако, даже наняв лучших из лучших, вы все равно не можете быть уверены в получении выдающихся результатов. Известны случаи, когда великие спортсмены, собранные в одной команде, и знаменитые музыканты, объединенные в оркестр, не добивались успеха.

Что же отличает успешные команды? Прежде всего, всем им свойственны:

—   межфункциональность (в команде собраны люди, аккумулирующие все умения, необходимые для выполнения проекта);

—   автономность (руководство ставит стратегические цели, а команды имеют полномочия самостоятельно ��ешать, как им работать для их достижения);

—   уверенность в собственных силах (члены команды ставят перед собой высокие цели и знают, как их достичь).

По мнению Джеффа Сазерленда, оптимальное количество людей, совместно работающих над проектом — семь (+/–2). Если людей меньше, скорее всего, будут проблемы с межфункциональностью, и рано или поздно придется привлекать специалистов со стороны.

Чем многочисленнее команда, тем больше коммуникационных каналов внутри нее. Количество коммуникационных каналов равно n*(n–1)/2, где n — это количество людей в команде. В группе из пяти человек 10 коммуникационных каналов, из шести — 15, из семи — 21, из восьми — 28, из девяти — 36, а из десяти — 45. Таким образом, в большой команде сложно уследить за тем, чем занимаются все коллеги, и совещания становятся бесконечными, что негативно отражается на скорости и качестве.

В середине 1990-х Роберт Путнэм провел масштабное исследование по выявлению оптимального размера команды. Он изучал 491 команду, и пришел к удивительному выводу: команды из 3–7 человек справлялись с одним и тем же объемом работы в 4 раза быстрее, чем команды из 9–20 человек!

В 2001 году Нельсон Коэн из Университета Миссури обнаружил, что человек единовременно запоминает не более четырех знаков (ранее считалось, что не более семи). Он давал людям взглянуть на набор букв fbicbsibmirs, и большинство участников эксперимента запоминали не больше четырех букв. Только самые внимательные запоминали все буквы, поскольку обнаруживали, что это набор известных акронимов FBI, CBS, IBM и IRS.

1.3. Роли в Scrum

Работая над моделью Scrum, автор пришел к выводу, что команде необходим человек, который будет следить за эффективностью процесса. Это должен быть не босс, а нечто среднее между капитаном команды и тренером. Эта роль называется Scrum-мастер и предполагает выполнение следующих функций:

—  контроль за соблюдением прозрачности проекта;

—   организация рабочих встреч и совещаний;

—   обнаружение препятствий в работе (поиск ответа на вопрос «Что больше всего мешает быстро и качественно работать?»);

—   обеспечение постоянного улучшения (поиск ответа на вопрос «Каким образом мы можем работать лучше?»).

Как бы хорошо ни работали команда и Scrum-мастер, нужен кто-то, кто будет осуществлять связь между клиентом и командой. Такой человек называется Владельцем продукта, и он создает бэклог (п. 2.1), исходя из потребностей клиентов. Тот, кто претендует на роль владельца продукта, должен:

—   быть универсалом, а именно: уметь поставить себя на место потребителя, понимать возможности команды и уметь преобразовывать результаты труда команды в реальную ценность для клиента;

—   быть наделен полномочиями принимать решения относительно того, каким должен быть продукт и как этого достичь;

—   быть постоянно на связи, чтобы объяснять команде, что нужно сделать и почему, и оперативно обсуждать спорные вопросы с клиентом;

—   отвечать за ценность продукта и определять, в чем она измеряется.

В церкви ценность измеряется в количестве прихожан, а в полиции — в раскрываемости преступлений. Соответственно, проекты и мероприятия будут направлены на увеличение паствы или оптимизацию раскрываемости, в зависимости от того, кто будет клиентом.

—   быстро принимать решения, основанные на полученной обратной связи.

1.4. Совещания

Коммуникация стимулирует работу, поэтому Scrum предусматривает несколько видов совещаний. Обязательным условием их проведения является присутствие всех членов команды, владельца продукта и Scrum-мастера и активное участие всех присутствующих.

В начале каждого спринта команда собирается на совещание по планированию спринта. На встрече определяются приоритеты и прогнозируется скорость выполнения работы. Пер��чень заданий, принятый на этом совещании, должен быть выполнен к концу спринта и остается неизменным на его протяжении.

В конце спринта члены команды вновь встречаются на ретроспективном совещании, чтобы продемонстрировать, что было сделано и сколько это заняло времени (в течение первых спринтов определяется скорость работы). На ретроспективном совещании команда отвечает на следующие вопросы:

—  Каким образом мы можем работать лучше в следующем спринте?

—   Что нам мешало в этом спринте? Что снижало скорость?

Если честно отвечать на эти вопросы и корректировать работу в соответствии с ответами, команда будет работать с невероятной скоростью.

Ежедневный stand-up — это короткое совещание (не более 15 минут), которое проводится в одно и то же время. На этих встречах обсуждается текущее положение дел (все ли задания выполняются вовремя, требуется ли помощь кому-то из членов команды и кто может помочь) и ставятся задачи на день (каждый человек выходит с совещания, четко зная, что он будет делать в течение дня).

1.5. Риски

Scrum позволяет значительно снизить вероятность неудачи, а именно:

—   рыночный риск: команда постоянно получает обратную связь и знает, насколько востребован продукт;

—   технический риск: чтобы понять, какой именно продукт нужен клиенту и какие ресурсы могут понадобиться, следует создавать прототипы продукта;

В большом проекте по созданию «Умного дома» такая деталь, как материал, из которого изготовлена линза дверного глазка, кажется незначительной. Однако вносить изменения на стадии готовности дорого и долго, поэтому было принято решение заказать 3 вида линз: хрустальную, пластиковую и стеклянную — и протестировать их при помощи компьютерной камеры. Клиент выбрал стеклянную линзу как наиболее четко передающую изображение, морозостойкую и устойчивую к внешним воздействиям.

—   финансовый риск: благодаря релизам и обратной связи можно быстро изменить продукт на этапе разработки, пока он не выпущен на рынок.

1.6. Многозадачность

Scrum не приемлет многозадачности, несмотря на то, что она является неотъемлемой частью современной бизнес-культуры.

Самый простой пример того, что многозадачность не только вредна, но и опасна для жизни — когда человек одновременно ведет машину и разговаривает по телефону.

На самом деле, многозадачность — не положительная черта, а элементарная неспособность сконцентрироваться на чем-то одном. Джеральд Вайнберг приводит следующие результаты исследований:

Таким образом, выполняя 5 проектов одновременно, вы теряете 75 % времени!

Попробуйте выполнить следующее упражнение:

Запишите арабские цифры от 1 до 10, римские от I до X и буквы от A до L:

— Сначала таким образом: 1 I A…

— Затем так: 123…, I II III…, ABC…

У автора выполнение первого упражнения заняло 39 секунд, а второго — 19, потому что в первом случае 3 задания перемешаны, а во втором — выполнены последовательно.

2. Внедрение Scrum

Scrum стоит на трех китах: открытость, командная работа и тесное сотрудничество с клиентами.

2.1. Оборудование и документация

Все гениальное просто: Scrum не требует использования сложной техники, для него не нужны дорогостоящие CMR-системы; все, что нужно — это бумага, карандаш или ручка, самоклеящиеся листочки и доска (как вариант, стена).

График спринта и график проекта — это инструменты, демонстрирующие ежедневное изменение объема работ и обеспечивающие открытость выполнения проекта.

Бэклог продукта представляет собой список работ, после реализации которых получается конечный продукт. Перед составлением бэклога необходимо определиться с видением товара или услуги с учетом требований заказчика или рынка и представлений членов команды о будущем продукте, а затем решить, что нужно сделать, чтобы реализовать это видение. Долгосрочное планирование не имеет смысла, поскольку уже после первого спринта видение может измениться на 100 % под влиянием обратной связи. После этого нужно определить приоритеты: в верхней части бэклога следует поместить наиболее ценные и менее рискованные дела.

Планируя первый спринт, целесообразно составить список задач (бэклог спринта) «с запасом» — минимум на два спринта. Скорость команды трудно прогнозировать до начала работы, и нужно избегать ситуаций, когда членам команды нечего делать. Бэклог представляет собой колонки «будет сделано», «делается» и «сделано», которые заполнены самоклеющимися листочками с историями. Это помогает отслеживать работу коллег: если какая-то история застряла в колонке «делается», значит, нужно помочь.

История — это рабочая задача в определенном контексте:

—  для кого это задание;

—   что нужно;

—   мотивация — почему клиенту это важно.

История имеет следующую структуру: «Как X я хочу Y, чтобы Z».

Заказчик говорит: «Мне нужна машина, чтобы ездить на работу». В зависимости от контекста, история может выглядеть по-разному: «Мне как жителю мегаполиса нужна машина, чтобы ездить из дома в офис и на встречи с клиентами» или «Мне как фермеру из Сибири нужна машина, чтобы доставлять продукцию заказчикам, ездить на соседние фермы и возить детей в школу, которая находится в пятидесяти километрах».

2.2. Организация работы

Эффективность работы одной и той же команды над аналогичными проектами может значительно отличаться. Нет плохих людей — есть плохие системы, стимулирующие плохое поведение и низкую производительность.

Одно из предприятий General Motors было убыточным. Руководство не могло справиться с отвратительной трудовой дисциплиной, низкой производительностью и высоким процентом брака. Когда было принято решение создать на базе этого завода совместное предприятие с Toyota, боссы GM предложили оставить прежних менеджеров и нанять новых рабочих. Японские коллеги, напротив, сумели настоять на смене руководства. В результате новые руководители быстро вывели предприятие из аутсайдеров в лидеры, а некогда плохие рабочие стали невероятно эффективными и дисциплинированными.

Часто низкая продуктивность является результатом отсутствия взаимопонимания и постоянного поиска виноватых. Совещания проходят в многочасовых обсуждениях того, что кто-то принимает глупые решения, мешает работать другим и не выполняет свои обязанности. Scrum учит не обвинять, а вести себя позитивно по отношению к коллегам, партнерам, поставщикам, заказчикам и подчиненным. В Scrum нет понятия индивидуальной ответственности, есть командная ответственность.

2.3. Особенности работы с клиентами

Наряду с постоянным взаимодействием с клиентами с целью получения обратной связи, применение Scrum предполагает особый подход к составлению контрактов, в которых предусмотрена возможность изменений. На первый взгляд, это кажется нереальным: любые изменения продукта стоят денег, а изменения графика чреваты задержками. Тем не менее автор предлагает внести пункт «Изменения, не подлежащие оплате» в стандартный контракт с фиксированной стоимостью. В этом пункте следует перечислить ожидаемый функционал, определив степень сложности каждого пункта.

Вы должны изготовить танк, который перемещается со скоростью 50 км/ч, стреляет 10 раз в минуту и в котором помещаются четыре человека. Вы договариваетесь с заказчиком об условной стоимости различных функций и деталей: например, двигатель стоит 100 баллов, механизм загрузки — 50 баллов, 1 сидение — 5 баллов. Согласно контракту, можно вносить изменения, не превышающие итоговой стоимости в баллах, если те или иные детали и функции исчезнут из бэклога или станут менее приоритетными.

В контракте также целесообразно предусмотреть возможность досрочного окончания проекта.

Вы заключаете контракт на изготовление и поставку оборудования стоимостью 10 миллионов долларов сроком на 20 месяцев. Контракт предусматривает ежемесячные платежи заказчика по 500 тысяч долларов. Включение в контракт пункта о том, что в случае преждевременного завершения проекта заказчик оплачивает исполнителю 20 % от оставшейся суммы контракта, выгоден обеим сторонам.

Спринт длится 4 недели, и в течение трех спринтов компании-изготовителю удается создать оборудование, которое полностью устраивает заказчика: большая часть функций, запланированных изначально, оказалась не нужна, а часть из них удалось заменить более востребованными, но менее трудоемкими. В первые 3 месяца клиент перевел 500 000*3 = 1 500 000 долларов, и должен оплатить 20 %* (10 000 000 – 1 500 000) = 1 700 000 долларов за досрочное завершение проекта. В итоге заказчик получил продукт на 17 месяцев раньше за 3 200 000 долларов вместо 10 миллионов. Исполнитель заработал за 3 месяца 3 200 000 долларов вместо 1 500 000 долларов и может приступить к выполнению других проектов.

3. Scrum и разные подходы, методики и инструменты

3.1. Scrum и Flow

Scrum подобен айкидо или танго — его можно освоить только на практике. По мере того как вы тренируетесь, вы постепенно достигаете состояния, когда работа начинает выполняться быстро и непринужденно, без видимых усилий с вашей стороны. Scrum помогает достичь состояния, пребывая в котором, человек испытывает радость от работы, но при этом сосредоточен, полностью вовлечен в деятельность и нацелен на успех. Это состояние называется потоком (англ. Flow).

Михай Чиксентмихайи, который сформулировал теорию потока, выделил следующие особенности деятельности, сопутствующие состоянию потока:

—   ясные цели;

—   ясные цели; высокая концентрация на определенной сфере деятельности (отсутствие многозадачности);

—   ясные цели; потеря чувства самосознания (растворение в деятельности);

—   ясные цели; прямая и незамедлительная обратная связь (позволяет быстро исправлять ошибки и снизить процент неудач);

—   ясные цели; баланс между способностями работника и сложностью задания;

—   ясные цели; ощущение контроля над ситуацией;

—   ясные цели; деятельность воспринимается как награда, поэтому не требует сверхусилий.

Все перечисленные выше черты характерны и для Scrum, который помогает четко определить цели и выработать наиболее простой и эмоционально не затратный способ работы, дающий высокие результаты.

3.2. Scrum и Бережливое производство

Scrum имеет много общих идей с системой Бережливого производства, которая предполагает максимальную ориентацию на интересы потребителя и полную вовлеченность каждого работника в производственный процесс. Эта система представляет собой американскую интерпретацию идей компании Toyota. В ней так же, как и в Scrum, анализируется ценность продукта для потребителя на каждом этапе его создания. Обе системы нацелены на то, чтобы устранить все то, что мешает созданию ценности и по сути является потерей времени и ресурсов. В Бережливом производстве для описания разного рода потерь используются японские слова:

Muri — потери из-за неблагоразумия — сотрудники и оборудование перегружены.

Mura — потери из-за несогласованности — прерывистый график работ из-за колебаний спроса.

Muda — потери из-за результата (отходы, невостребованные материалы, брак).

Scrum также борется со всеми видами потерь: с Muri — через грамотное распределение приоритетов, с Mura — через одинаковую продолжительность спринтов, а с Muda — через формирование видения продукта с учетом потребностей клиента.

3.3. Scrum и Цикл PDCA

Цикл PDCA, созданный американским специалистом по управлению качеством Эдвардом Демингом, расшифровывается ка�� Plan (Планируй) — Do (Делай) — Check (Проверяй) — Act (Действуй) и представляет собой циклически повторяющийся процесс принятия решений. По мнению Деминга, нельзя однажды достичь нужного результата и успокоиться: нужно что-то улучшать постоянно. Цикл Деминга можно считать развернутой версией основной идеи Scrum «Инспектируй и адаптируй».

3.4. Scrum и Диаграмма Венна

Диаграмма Венна — это схематичное изображение пересечений нескольких (чаще всего трех) множеств. Эта диаграмма может быть использована в Scrum для понимания того, что такое видение продукта. Дж. Сазерлэнд считает, что если вы концентрируетесь на том, что можете создать, то сделаете что-то, что никому не нужно, даже если вы вкладываете в это душу. Если вы делаете акцент на производстве продукта, который вы сможете продать, то, возможно, технически не сможете осуществить задуманное. Если вы будете работать над тем, что вам нравится, без учета требований рынка и расчета технических возможностей, то не сделаете ничего выдающегося. Только видение, основанное на реальности, вдохновении и рыночном спросе, позволит вам создать великий продукт. Общий фрагмент трех кругов на диаграмме и есть видение.

Заключение

Scrum — это эффективный способ организации работы, многократно повышающий продуктивность команд. Этот метод основан на идее создания именно такого продукта, который нужен клиенту, поэтому предполагает постоянное изменение концепции и отрицает долгосрочное планирование.

Наиболее эффективные Scrum-команды состоят из 5–9 человек и характеризуются межфункциональностью, автономностью и уверенностью в собственных силах. Эффективно работать команде помогают Scrum-мастер, который решает организационные вопросы и следит за ходом работы, и Владелец продукта, который обеспечивает связь команды с клиентом.

Методика Scrum предлагает проводить три вида встреч: совещание по планированию спринта, ретроспективное совещание по итогам спринта и ежедневные короткие встречи, которые имеют определенную структуру и лимитированы по времени.

Scrum помогает снизить технический, финансовый и рыночный риски и исключает многозадачность.

Открытость проекта обеспечивается отсутствием сложных процедур и многочисленных документов. По графику спринта можно следить за ходом работ, а бэклог содержит перечень задач, ранжированных согласно приоритетам.

Scrum предполагает командную ответственность за любые результаты и позитивное отношение к процессу и к людям. Клиентоориентированность Scrum-команд проявляется как в постоянном взаимодействии с целью получения обратной связи, так и в особенностях контракта, в котором предусмотрена возможность изменений и досрочного (и более экономичного) завершения проекта.

Поскольку Scrum появился в результате изучения опыта передовых мировых компаний, он имеет много общего с другими теориями и методиками управления. Так, лучшие Scrum-команды достигают состояния потока; практикуют идеи сокращения потерь Muri, Mura и Muda, описанные в «Бережливом производстве»; основная идея Scrum «Инспектируй и адаптируй» созвучны циклу Деминга (Планируй — Делай — Проверяй — Действуй); а диаграмма Венна помогает команде понять, каково реальное видение производимого продукта.