Коллеги, всем привет!

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

Способ номер 0. Внедрять scrum там, где он вообще не нужен.

На практике часто бывает так, что идея перехода на Scrum приходит «сверху» - кто-то в руководстве компании хочет повысить эффективность разработки, узнает про Agile и Scrum, после чего начинается agile-изация всего и вся. При этом зачастую качество agile-трансформации определяется просто количеством запущенных scrum команд. 

Но стоит ли применять Scrum везде, где только можно?

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

Предположим, у вас нет как такового продукта, ценность которого вы постепенно увеличиваете, а есть просто некий поток разрозненных «хотелок» от совершенно несвязанных stakeholder-ов, и ваша задача –закрывать эти «хотелки» быстро и качественно.. Или предположим, что вы занимаетесь внедрением и развертыванием типового решения, и это внедрение всегда состоит из одинаковых шагов фиксированной длительности.

В принципе, при желании можно разбить такие «хотелки» и задачи на спринты, но вот получится ли у вас выделить product goal и sprint goal, которые не будут выглядеть искусственными или «высосанными из пальца»? И как определить роль Product owner-а в этом процессе? И насколько велика будет польза от самоорганизации команды при решении этих задач?

Если ответ на эти вопросы «нет», то следующий вопрос, который надо задать «а зачем вам Scrum»? И если вы не найдете другого ответа кроме как «нам сделали предложение, от которого нельзя отказаться», то стоит подумать, а нужен ли он вам все-таки? Зачем «насиловать» людей тем, что не принесет им и бизнесу пользу? Вполне возможно, вам будет достаточно просто оптимизировать управление потоком задач, и для этого достаточно будет настроить Kanban-процесс.  

Способ номер 1. Внедрить scrum, не предоставив команде необходимые полномочия.

Предложим, вы взяли группу разработчиков, назначили им scrum-мастера и product owner-а, после чего торжественно объявили команде, что теперь они каждый день собираются у доски со стикерами, а еще раз в две недели должны «делать ретроспективу», планирование и product backlog refinement. Достаточно ли этого для того, что бы вы могли сказать, что запустили scrum-команду?

Прежде чем отвечать на этот вопрос, давайте посмотрим на него под другим углом.

Основа Scrum – это Scrum team:

  • Product owner – отвечает за повышение ценности продукта и имеет полномочия решать, какое из изменений будет нести наибольшую ценность.

  • Developers – отвечают за создание инкремента продукта, который соответствует принятым критериям качества, при этом имеют полномочия выбирать способ достижения цели спринта и совместно с PO формируют эту цель. Также в команде есть все навыки, необходимые для решения поставленных задач.

  • Scrum мастер – имеет полномочия организовать работу по scrum в соответствие с принципами Scrum guide.

Также Scrum team имеет право:

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

  • отвечать за последствия принятых решений и вносить корректировки, если принятые решения оказались неудачными.

Именно такое сочетание обязанностей и полномочий делает команду эффективной и помогает ей повышать ценность продукта и решать комплексные задачи.

Теперь рассмотрим следующую ситуацию:

  • Product owner – не может самостоятельно решать, что является полезным для продукта, и у команды большое количество задач от разных stakeholder-ов с «первым» приоритетом, которые надо сделать «вчера».

  • Developers – набор разработчиков, которые сами не имеют право ничего решать, делают не то, что приносит пользу, а то, что попросил начальник с самым «громким голосом» или самыми «большими погонами». При этом сделать это все надо было тоже еще «вчера», потому что так решил самый «большой» начальник.

  • Scrum-мастер – «секретарь», который назначает кучу разных встреч, на которых люди поговорят о том, что никогда не смогут сделать, и каждый участник встречи будет ждать, когда же она закончится, т.к. у него еще 5 задач, которые надо было сделать также еще «вчера».

Т.е. участники команды на самом деле не решают ничего, и просто делают то, что им сказали, пытаясь «осчастливить» тех, кто «спустил» идею перехода на Scrum.

Насколько эффективная эта команда?

Можно ли считать, что она действительно работает по Scrum?

Ответ на первый вопрос «хз, но она точно могла бы лучше», ответ на второй – «нет». Но участники команды и ее руководители будут считать, что у них Scrum (есть ведь доска со стикерами), но Srcum не работает в "наших" реалиях.

Поэтому прежде чем внедрять Scrum необходимо понять, готовы ли вы дать людям соответствующие полномочия и независимость (и что немаловажно – готовы ли люди эти полномочия принять).

Если по какой-то причине не готовы, то снова возникает вопрос «Нужен ли вам Scrum?». Если ваша цель – просто сделать прозрачным и эффективным поток создания ценности, то может вам достаточно, опять же, просто организовать правильный Kanban процесс.

Способ номер 2. Устройте из daily scrum ежедневный статусный отчет на 60+ минут

На моей практике один из самых частых комментариев на тему негативного отношения к Scrum – «Как задолбали эти ежедневные встречи, когда каждый день нужно стоять у доски по часу, вместо того, чтоб делать что-то полезное». Знакомая картина:)?

О чем это может говорить? Ответ очевиден - о том, что такие встречи не несут никакой практической пользы, и команде жалко времени, которое тратится впустую.

В Scrum guide-е явно написано, что ежедневная встреча должна длиться 15 минут, и этого достаточно для того, чтоб были достигнуты основные цели daily scrum – участники команды узнают, кто из них и над чем работает, у кого какие проблемы, и как команда продвигается к целям спринта. И ничего более – все остальные вопросы решаются отдельно.

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

Зачастую в этих обсуждениях участвует не вся команда, а только 2-3 человека, и что еще хуже – эти вопросы можно было решить еще до встречи. Как результат – встреча затягивается, а вопросы не решаются, т.к. все равно надо собираться отдельно с другими людьми, и участники выходят со встречи с чувством потерянного времени.

Что можно сделать:

  1. Однозначно договориться о том, какая цель Daily scrum и какие вопросы должны решаться на этой встрече (Scrum guide явно говорит о том, какие это вопросы).

  2. Если во время встречи возникает вопрос, который не получается полноценно решить за 2-3 минуты обсуждения (а в идеале вообще за минуту), то выносить такой вопрос на «парковку» после встречи, где в обсуждении будут участвовать только те, кого вопрос касается напрямую.

  3. Если на daily scrum возникает вопрос, который на самом деле возник еще вчера, то «подсвечивать» такие ситуации отдельно и явно спрашивать у команды, почему подобные вопросы не решаются сразу. Возможно, причина в какой-то комплексной проблеме (например, участники команды взаимодействуют друг с другом только на daily scrum).

  4. Предложить команде заранее думать о том, что рассказать на Daily scrum. При этом важно помнить, что Daily scrum – это не рассказ про все, что ты делал по шагам, а про то, что ты сделал в итоге. Как показывает практика, рассказ про итоговый результат занимает меньше времени, чем рассказ о том, как ты к этому результату пришел.

  5. Если команда не довольна длительностью Daily scrum предложить им самим подумать о том, как сделать такие встречи эффективнее, и взять на себя ответственность за реализацию этих идей.

Способ номер 3. Постоянно расширять sprint backlog по ходу спринта, добавляя в него новые задачи.

История из реальной жизни:

  1. Когда слова Agile и scrum стали звучать из каждого «ИТ-утюга», в одной компании решили, что разработка большого и важного проекта обязательно должна вестись в ногу со временем, т.е по Scrum, т.к. это «модно, стильно и молодежно».

  2. Перед началом спринта команда оценивала объем работ, который может выполнить за спринт, и исходя из оценки формировала sprint backlog.

  3. После этого приходил «большой начальник» (хороший и неглупый человек, кстати) и говорил, что надо «поднапрячься» и взять в спринт еще несколько задач в дополнение к уже запланированным, потому что один очень уважаемый человек пообещал другому еще более уважаемому человеку сделать это все еще в прошлом спринте.

  4. Ситуация из п.3 могла повторяться несколько раз за один спринт:)

А самое чудесное в этой истории аргумент, которым это все подкреплялось – «мы работаем по гибким методологиям, значит мы должны гибко корректировать свои планы, у нас ведь Agile».

Думаю, не сложно догадаться, насколько эффективный был такой процесс и насколько довольна была команда таким подходом:) К слову сказать, когда обещания «уважаемым людям» не выполнялись, то все сваливалось на Scrum, по которому нельзя нормально работать в российских реалиях, т.к. у нас "другой менталитет".

Какие выводы можно сделать из этой истории? Вполне простые:

  1. В Scrum мире «здорового человека» Product owner формулирует задачи на спринт на основании Product goal, а дальше совместно с командой определяет, в каком виде и в каком объеме эти задачи можно реализовать за спринт с учетом скорости команды.

  2. В ходе этого обсуждения команда определяет цели спринта и наиболее ценный инкремент продукта, на основании этого формируется sprint backlog.

  3. Бессмысленно пытаться сделать вид, что команда может сделать за спринт больше, чем ее реальная скорость – в первую очередь, это самообман, а также обман ожиданий всех заинтересованных лиц.

  4. По ходу спринта в sprint backlog вносятся те и только те изменения, которые помогают достичь согласованных целей спринта.

  5. Недопустимо расширять объем работ, жертвуя качеством.

  6. Команда должна иметь полномочия для выполнения описанных выше шагов.

Что мешает воплотить эти простые вещи в жизнь? – недоверие. Product owner-ы или stakeholder-ы не доверяют команде и считают, что «любой нормальный человек» будет пытаться занижать свои возможности, чтоб меньше напрягаться и не перерабатывать.

Могут ли подобные опасения иметь реальную основу? – конечно, более чем.

Закроет ли этот риск постоянное «раздувание» backlog-а спринта, с целью нагрузить команду в соответствие с ее «реальными» возможностями? – не факт. Но вот что скорее всего произойдет, так это создание дополнительной нервозности и недоверия друг к другу и к scrum-у как к процессу.

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

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

Комментарии (11)


  1. Myclass
    29.07.2021 12:43
    +1

    Вы так точно описали эти признаки, что спрошу вас — вы что, следите за мной и компанией в которой я работаю? (#ирония). Не могу голосовать, но подписываюсь под каждым вашим словом.


    1. Roman_Sergeev Автор
      29.07.2021 14:13
      +1

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


  1. vvbob
    29.07.2021 16:12

    Что мешает воплотить эти простые вещи в жизнь? – недоверие. Product owner-ы или stakeholder-ы не доверяют команде и считают, что «любой нормальный человек» будет пытаться занижать свои возможности, чтоб меньше напрягаться и не перерабатывать.

    Могут ли подобные опасения иметь реальную основу? – конечно, более чем.

    Закроет ли этот риск постоянное «раздувание» backlog-а спринта, с целью нагрузить команду в соответствие с ее «реальными» возможностями? – не факт. Но вот что скорее всего произойдет, так это создание дополнительной нервозности и недоверия друг к другу и к scrum-у как к процессу.

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

    "Эффективные менеджеры" очень любят такие "регуляторы", ведь можно не напрягаясь улучшить свои показатели в глазах руководства, вот мол я пришел, и ленивые жопы стали работать как положено!

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


  1. scythian
    29.07.2021 18:03

    Перевод Дилберта теряет игру слов. В оригинале «designated scrumbag» — скорее «назначен скрамнюком», нежели «скрамешком».


    1. Roman_Sergeev Автор
      30.07.2021 12:53

      Да, scrumbag и скрамнюк лучше передали бы смысл:)


  1. vladshulkevich
    03.08.2021 08:19

    Мы работаем по Скраму.

    Представьте меня владельцу продукта и скрам-мастеру.

    У нас это один человек.


  1. usa_habro_user
    05.10.2021 05:04
    +1

    Вы все верно описали (хотя все написанное чрезвычайно банально, это самый базис Scrum-а), хотя можно было сказать и короче: "Scrum is a team managed project", но на статью это бы не потянуло.

    Но даже в "правильно" имплементированном Scrum-е есть очень большие нюансы, как говорится:

    • Scrum хорошо работает в "гомогенной" команде, где разработчики, scrum master, product owner добросовестно, профессионально и ответственно выполняют свою работу. Когда же принцип "гомогенности" нарушается, это приводит, порой, к весьма нежелательным последствиям и конфликтам в команде, как-то:

      • product owner ушла в декрет на полгода, и в ее отсутствие стало намного меньше "косяков и непоняток" с заказчиком (вернее, ее отсутствие замечается лишь по резко сократившемуся количеству "авралов" и "showstopper"-ов)

      • помимо тебя - сеньора с 20 летним опытом, и еще пары хороших программистов, в команде есть вчерашние студенты (которых взяли на работу "по лимиту" - не удивляемся, "лимиты" есть и в самой, что ни на есть, "цитадели капитализма"), которые постоянно "не осиливают" спринты, "мессят" с git-ом, совершают глупые и не очень (но от этого не менее "фатальные") ошибки, и вам, сеньорам, приходится, переключаться на совершенно иную часть проекта, и, в результате, делать чужую и неинтересную работу - заметим, за те же деньги!

      • на стендапах взрослый, вроде бы, народ, нагло врет в глаза! Вот просто врут: говорят, что "сделали", а на самом деле нихера не сделали. Самое интересное, что это знает и scrum master, но считает для себя невозможным поставить это на вид (ну, типа, "молодые дарования", во-вторых, "TLM" (their lives matter - это ну ооочень важно, я серьезно!), в-третьих, не у всех хватает смелости говорить правду в глаза)

    • Внутрикорпоративная субординация (которая, опять-таки, нужна, хочешь-не хочешь) порой влияет фатально даже на "правильный" scrum: например, прибегает CTO/CFO и сходу всех "озадачивает": "Так, пацаны, я не знаю, над чем вы там работаете на своем "сраме", но бросайте все - нужно срочно запилить киллер-фичу для нового потенциального и очень богатого клиента! Фича нужна еще вчера, сроку вам три дня!"

    • У команды должна присутствовать сравнимая степень заинтересованности в успехе проекта; когда же часть разработчиков - контракторы, привлеченные хорошим рейтом, а часть - full time employee, которым обещали (sic!) "сладкий кус" при IPO или продаже, то сложно и сравнивать степень заинтересованности. И разработка будет идти совсем не так успешно, как этого хотелось бы - какой смысл контрактору, нанятому на год или полгода, "рвать оппу" за "чужой кусок", чистить чужой бэклог, помогать отстающим? В контракте такое не прописывается (или очень редко прописывается, но за дополнительные деньги!).

    В общем, как-то так...

    P.S. Мне довелось поработать и в "почти нормальном скраме", и в "ненормальном скраме" (привнесенным сверху), и, даже, в сознательно "симулируемом" (для инвесторов) "скраме".


    1. Roman_Sergeev Автор
      05.10.2021 13:19

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


      1. usa_habro_user
        05.10.2021 17:31

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

        Это-то да, только вот про это писано 100500 раз, и будет писано еще столько же (и даже тут, на "Хабре"), а воз все равно останется там, где есть. "Разруха не в клозетах, а в головах" (c) - поскольку все упирается в пресловутый "человеческий фактор", сделать тут что-то очень сложно. Сколько раз я встречал комментарии людей (тут, на "Хабре"), искренне убежденных, что они работают по scrum, но постоянно упоминающих "тимлидов", "прожект менеджеров" и остальной "счастливый набор управленцев".

        Много пишут об ошибках внедрении скрама, о "карго-культе" скрама, о достоинствах "идеального скрама", но чрезвычайно мало - о недостатках в практическом применении в реальной жизни. А, ведь, помимо упомянутых мной выше, есть и другие! В частности, когда менеджеры среднего и высшего звена понимают (и принимают) суть скрама, но решают, что основной смысл его применения - это некий добровольный sweatshop, "потогонка", в которой разработчики должны сами себя вертеть на заставлять все быстрее бегать в колесе, как белки! Ну, и, вдобавок, переложить с себя часть ответственности на команду. Я тоже такое встречал, и, к сожалению, чаще, чем хотелось бы. А ведь "правильный скрам" должен облегчать жизнь разработчика, а не усложнять, и заставлять работать все больше и больше за те же деньги!

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

        P.S. By the way, а у вас есть реальный опыт успешного создания продукта в "правильном скраме", или вы больше в теории сильны?


        1. Roman_Sergeev Автор
          05.10.2021 18:16

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

          Что касается практики - все описанные в статье кейсы - как раз примеры из практики в разных организациях. Где-то эти проблемы получилось решить, где-то нет, и все в итоге загнулось. Было бы интересно рассказать о том, как проблемы были решены - возможно. Помогли бы эти же методы кому-то другому - не факт, т.к. все снова упирается в человеческий фактор, и то, что отлично отработало в одном месте не факт, что поможет в другом. Тут как с книжками про построение бизнеса - полезнее читать не про то, как заработать миллион, а как его потерять.

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


          1. usa_habro_user
            05.10.2021 18:58

            Ну, уже хорошо, что вы не "чистый теоретик" ;) , а то мне приходилось таких часто встречать. На самом деле, думаю, все-таки можно хотя-бы попытаться сформулировать принципы "реального правильного скрама", но вся штука в том, что, по моему мнению, в этом никто, кроме разработчиков, понимающих, как это таки должно работать, не заинтересован. Топ-менеджмент, как правило, ищет путей удешевления и ускорения разработки, и хочет "волшебную технологию", которую евангелисты рады подсунуть, сопровождая "умными" лекциями, графиками и диаграммами. Менеджеры среднего звена ну очень не хотят расставаться с ролями "начальников" и "микро-менеджментом", чисто по человеческим причинам (не знаю, как в России - но, думаю, что точно также - но в США это очень распространено, поэтому project manager, "переименованный" в scrum master-а или product owner-а, пытается работать по старому, как его ни заставляй (и кто будет его заставлять?) Лентяи и очковтиратели тоже научились приспосабливаться под scrum (а я-то сначала думал, что это очень хороший способ "вывести их на чистую воду"! Наивный... Как я выше писал, просто нагло врут в глаза, зная, что их не уволят). И даже хорошие разработчики, испуганные "неправильным скрамом" (либо "карго-культом", либо "потогонкой"), и, в особенности, интроверты, зачастую принимают скрам в штыки.

            P.S. Кстати, если вам интересно, можем подискутировать тут касательно тех "гипотез" (не хочу писать "максим"), что я высказал выше, а именно:

            • нужна или нет "гомогенная" команда?

            • нужна или нет "гомогенная" заинтересованность?

            • что делать с "корпоративной солидарностью" и попытками "микроменеджмента" высшим руководством?

            • как убедить высокое начальство, что scrum должен быть не "добровольной потогонкой", а, напротив, "альтруистической" системой, добивающейся намеченных целей меньшими усилиями и средствами?