новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts
новый проект: журнал Unusual Concepts

Кетчуппопрежнемувбутылке

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

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

Product Owner

Очень проблемная область. Плохих вариантов тут великое множество:

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

Scrum Master

Типичные болезни вокруг этой роли заключатся в скрам мастерах:

Как должно быть: Скрам мастер не имеет никакой власти над членами команды, работает с одной командой и работает со скрам мастерством больше, чем с прочими вещами. Скорее, бывший HR, нежели бывший разработчик.

Самоорганизовываемая Команда

Именно с большой буквы “К”. Типично, ее просто нет. “А что есть?” – спросите вы. Кучка индивидов, в лучшем случае, сидящих в одной комнате. Каждый работает над “своими” задачами и отношением: “Я свое сделал, что дальше – меня не касается” (количество задач в “In progress” больше количества членов команды). Никакой командной ответственности и никаких командных обязательств. Никто не делится знаниями, все тянут одеяло на себя. Никто не может ответить на вопрос, почему он часть этой команды. Что он в нее привносит? Чего ожидает получить взамен?

Как должно быть: наоборот от всего, что описано выше.

У вас остались PM-ы

Помимо скрам ролей (команда, PO, скрам мастер) у вас есть PM-ы, проектные координаторы и прочие роли “из прошлой жизни”. Ну, не выгонять же столько хороших людей? А учить их делать что-то другое долго, да и не все они хотят этого. Поэтому оставляем их, пусть придумают, чем им заняться. Пусть PO работает с направлением “наружу” к клиентам, а PM с направлением “внутрь” к команде. Ну, или еще чего-нибудь. Они же умные, найдут, чем заняться.

Как должно быть: зачем телеге 5-ое колесо?

Разработчики – разрабатывают

Как вам: “Я не тестер, я разработчик, не боги горшки обжигают”. Или может быть вам знакомо: “Разработчики должны сидеть в, закрытой на ключ, серверной. В щель под дверью, им надо регулярно закидывать пиццу. А периодечески “оттуда” будут вылетать прекрасные продукты в красивых праздничных упаковках. Ни в коем случае разработчики не должны встречаться с клиентами, и уж тем более с пользователями.”

Как должно быть: наоборот.

У вас есть ТЗ

Вы по-прежнему удовлетворяете требования вместо того, чтобы поставлять business value?

Бесполезные скучные ретроспективы

Я вам расскажу, как типично умирают ретроспективы. Мы делаем одночасовую ретроспективу в формате: “Что было хорошо? Что было плохо? Что можем улучшить?” один раз. Второй раз. Третий раз. После третьего раза в wiki уже собрался довольно длинный список наших проблем и он продолжает расти. После 20-ого раза, список уже не растет, и в wiki снизу под списком уже появилась прокрутка страниц, чтобы его прочитать до конца. На 21-й раз кто-то подкидывает умную мысль: “К чему нам тратить час на ретро? У нас же в wiki все проблемы уже описаны. Кому надо пусть идет в вики и почитает. Давайте сделаем 30 минут. Потом 15 минут, потом 5. И в конце-концов мы от ретроспектив отказываемся. Можно делать ее раз в полгода, в формате: “Ну что? Все, как в вики?” – Дааа, все, как в вики, расходимся”.

Как должно быть: в топку списки. И вики в топку. Закончите свою ретро, согласившись всей командой пофиксить одну единственную проблему, которая вам (как команде) подконтрольна и которая для вас больше всего наболела. Запишите ее одну единственную себе на флип-чарт, унесите с собой в следующий спринт и сделайте так, чтобы к следующей ретроспективе эта проблема исчезла. Да, это так просто! И, кстати, купите уже библию ретроспектив: Agile retrospectives. Making good teams great , сделайте свои ретроспективы разнообразными и интересными. И еще одно (после того, как книжку прочитаете): сделайте свои ретро длиннее, пусть они будут 4 часа, вместо часа.

Редкие релизы в продакшн

А у нас релиз в прод – раз в году. Слава богу, у вас спринты не по одному году, спасибо и на этом. Мы быстро-быстро  работаем короткими спринтами по две недели. А толку что, если пользователи смогут это увидеть через год? И связь обратную вы получите не раньше. И переделывать придется снова за целый год. И в чем, собственно, преимущества вашего аджайл?

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

Зашиваемся в суппорте

Аджайл внедрили, только баги покоя не дают. Планировать невозможно, никогда не знаешь, когда баг размером с пол-спринта на голову упадет. Ну, а тогда и о командных обязательствах говорить не приходится. Как можно обещать хоть что-то в такой обстановке?

Как должно быть: в 2011 году начинать надо с качества. А это значит с солидных современных инженерных практик. К чему ваш аджайл, если вы код нормально писать не умеете? А если вы не умеете, это не значит, что надо продолжать в том же духе. У нас есть достойные эксперты, которые придут и научат вас, как это делается. Расскажут вам, как делать code review, парное программирование, наладят continious integration, научат TDD, BDD, DDD и заразят желанием заниматься прочими DD. Если вы ждали команды сверху, то вот она: “Просто сделайте это! Уже пора.”

Контракт с фиксированным объемом работ и детальная спецификация

Дааа, давайте взглянем на ваши контракты. Уже страшно? Мне да. Я знаю, там scope зафиксировали (а как же иначе, у нас же гос заказ, там инструкции какие-то за номер 40 чего-то там) и дату и стоимость. И попробуй тут не сделать. Поэтому мы все делаем по старинке. Прикинули по зафиксированному объему работ наши оценки, умножили на греческое число “пи” (самые смелые умножили на “е” вместо “пи”) и вперед, делать скрам. Не надо, простите, уже поздно.

Как должно быть: идите и продайте заказчику фиксированную дату, фиксированный бюджет и нефиксированный объем работ. Я знаю, что сложно, я знаю, что никто до вас не продал. Да, это требует доверия между вами и заказчиком. А никто и не говорил, что будет легко. Но кто-то же должен быть первым.

 

Сергей Дмитриев Cовладелец Unusual Concepts

Плюсануть
Поделиться
Отправить
Класснуть
Линкануть
Вотсапнуть
Запинить
Ещё по теме
Большие элементы в Бэклоге продукта (PBI) — причина неприятных сюрпризов и повышенной вариативности в Спринте. Чем больше задача, тем больше неизвестных. Большие PBI с трудом вмещаются в Спринт, а Владелец Продукта и стейкхолдеры могут долго не видеть результатов работы Скрам-команд. Недавно я начал работать с двумя фиче-командами. Владелец Продукта поместил наверх Бэклога одну огромную фичу, которая, по предварительной оценке, должна была занять команды на много Спринтов вперёд. На актуализации Бэклога Продукта присутствовали обе команды в полном составе (Multi-Team PBR). Мы декомпозировали, оценили и подготовили Бэклог Продукта к планированию за восемь шагов.

Шаг 1. Определить связь PBI с бизнес-целью

Мы обсудили, что связывает PBI с ближайшей бизнес-целью: с увеличением конверсии заявок с сайта (CR). Если ранее вы не определили бизнес-цель, то техника Impact Mapping и её вариация Extended Impact Mapping точно помогут на этом шаге.

Шаг 2. Описать PBI в формате «кто, что и зачем»

Я часто использую такой формат описания элементов Бэклога Продукта:
  • кто — пользовательский сегмент или персона;
  • что — краткое описание задачи;
  • зачем — бизнес-ценность или ценность для пользователя.
Владелец Продукта и команды обсудили это в открытой дискуссии. Я зафиксировал сказанное на флипчарте, чтобы к информации было легко вернуться.

Шаг 3. Разбить PBI в малых группах

Мы сформировали четыре группы по 3–5 человек и отправили их на рабочии станции в опенспейсе, где они в течение 20 минут декомпозировали PBI. Ребята использовали паттерны разбиения и другие техники, в частности, User Story Mapping. Если команды ещё не владеют навыками декомпозиции, нужно провести обучающий воркшоп. Восемь шагов для работы с большими элементами в Бэклоге Продукта (PBI)

Шаг 4. Представить варианты разбиения

У нас получились четыре варианта декомпозиции. Теперь я хотел, чтобы мы нашли самое ценное в каждом из них. Для этого мы прошлись по каждой рабочей станции, где нам презентовали каждый из вариантов разбиения. На каждой станции мы пробыли не более пяти минут. Восемь шагов для работы с большими элементами в Бэклоге Продукта (PBI)

Шаг 5. Провести финальную «склейку»

Я попросил Владельца Продукта и нескольких представителей команд сделать финальную «склейку» различных вариантов декомпозиции. Для этого мы принесли все флипчарты и повесили их на стену. Владелец Продукта выбирал наиболее удачные части и размещал их на финальной версии. Восемь шагов для работы с большими элементами в Бэклоге Продукта (PBI)

Шаг 6. Оценить и приоритезировали полученные фичи

К этому моменту гигантская фича была разбита на более мелкие элементы. Я попросил представителей из каждой команды провести экспресс-оценку при помощи «рубашечных размеров». Затем Владелец Продукта упорядочил все полученные фичи. В итоге мы получили 11 фич, самые приоритетные из которых должны были комфортно поместиться в двухнедельном Спринте. Восемь шагов для работы с большими элементами в Бэклоге Продукта (PBI)

Шаг 7. Прояснить приоритетные PBI

Каждая группа, взяв одну фичу из верхушки Бэклога Продукта, прояснила её на рабочей станции. Через 20 минут на каждой станции появились:
  • описание фичи,
  • обновлённая оценка,
  • приемочные критерии,
  • бизнес- и пользовательская ценности.
Далее мы сделали несколько раундов «мирового кафе», двигаясь по часовой стрелке. На каждой станции был человек, который принимал обратную связь и рассказывал о фиче.

Шаг 8. Обсудить полученную ценность

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

Выводы

  • Предпочитайте использовать Multi-Team PBR, когда Бэклог Продукта актуализируют сразу несколько команд.
  • Всегда начинайте обсуждение PBI со связи с бизнес-целью.
  • Декомпозируйте элементы Бэклога Продукта с помощью паттернов разбиения и техники User Story Mapping.
  • Работайте в малых группах и форматах мирового кафе, трейдшоу или коктейльной вечеринки.
  • Для лучшего взаимодействия используйте бумагу, флипчарты, ножницы или стикеры.
 
Андрей Толмачев рассказывает, как разрешить взаимное недовольство Владельца Продукта и Команды Разработки.

Условия задачи

Представьте такую ситуацию. Вы — новый Скрам-мастер. Ваша Команда Разработки состоит из системного аналитика, двух разработчиков и двух специалистов по тестированию. Длина Спринта — две недели. Команда работает со сложной системой на старой платформе, поэтому для каждого элемента Бэклога Продукта аналитика, разработка и тестирование попадают в отдельные Спринты. В течение последнего Спринта Команда не успела сделать работу, взятую в Спринт, поэтому на Ретро Владелец Продукта допытывается, кто чем занимался в течение Спринта. Владелец Продукта жалуется, что Команда работает очень медленно. Члены Команды жалуются, что бизнес контролирует и микроменеджит их. Как разрешить взаимное недовольство Владельца Продукта и Команды Разработки? Давайте разбираться.

Что происходит

Для каждого элемента Бэклога Продукта аналитика, разработка и тестирование попадают в отдельные Спринты — это означает, что элемент будет готов к выпуску только через три Спринта. В таком случае истинная длина Спринта равна шести неделям — это больше, чем допускает Руководство по Скраму.
Максимальная продолжительность Спринта — один календарный месяц. При большем сроке планирования возможны изменения целей, увеличение сложности и рост рисков.
Руководство по Скраму Когда Команда редко поставляет готовый Инкремент, то редко получает обратную связь от стейкхолдеров и клиентов. В результате:
  • возрастает риск сделать не то, что надо. Способность реагировать на изменения падает;
  • стабильность процесса падает, прогнозировать работу сложно. Например, тестирование выявляет дефекты через недели после разработки. Баги обнаруживаются поздно, поэтому объём «поддержки» будет меняться от Спринта к Спринту;
  • рабочий процесс перестаёт быть прозрачным.
По этим причинам Команда Разработки теряет доверие Владельца Продукта и стейкхолдеров, следовательно, давление возрастает и начинаются конфликты.

Решение

Скрам-мастер не может решить проблему самостоятельно, но может помочь своей Команде следующим образом:
  • объяснить описанную выше системную динамику и её вредные последствия. Скрам-команда должна понимать, что правило Скрама про Done Increment каждый Спринт — это естественное системное решение их проблемы;
  • помочь сформулировать или пересмотреть минимальный DoD, который может быть выполнен в течение Спринта и который обеспечит готовность Инкремента к релизу;
  • научить Команду Разработки правильно декомпозировать элементы Бэклога. Небольшие элементы в Бэклоге Продукта способствуют ранней поставке, оптимизации ценности Продукта и улучшению потока работы;
  • помочь договориться взять в следующий Спринт хотя бы один небольшой элемент Бэклога, но довести его до состояния Done;
  • визуализировать поток работы. Прозрачность — залог успеха;
  • устранить простои в работе. Для этого Скрам-мастер обучает Команду хорошим инженерным практикам, например, общему владению кодом, стимулирует развитие T-shaped или E-shaped людей в Команде, заключает командные соглашения;
  • объяснить Владельцу Продукта, что причина задержек — технический долг и убедить его выплатить.
Используйте Ретроспективу, чтобы найти лучшие решения по устранению препятствий. Помните, что эти решения — эксперименты, не факт, что они принесут ожидаемый эффект. Поэтому инспектируйте результаты прошлых решений и адаптируйте решения на следующих Ретроспективах.

Итоги

Готовый Инкремент в конце Спринта — это важнейшие правило Скрама, которое помогает избежать роста рисков, потери предсказуемости и гибкости. Описанные причинно-следственные связи полезно знать, чтобы понимать, почему Скрам требует соответствующий DoD, готовый к релизу Инкремент каждый Спринт. Следующие действия могут помочь в достижении этой цели:
  • декомпозиция работы на небольшие PBI;
  • визуализация потока работы в Спринте и поиск основных узких мест;
  • устранение «простоев» работы с помощью командных соглашений, хороших инженерных практик и развития T-shaped или Е-shaped людей;
  • планомерная ликвидация технического долга.
Комментарии
Сергей Дмитриев, 28 ноября 2011

Лучше в ответ "иди учись", чем умри :)

Николай Алименков, 28 ноября 2011

Так я и не сдаюсь. На своих проектах так все и стараюсь делать. Просто в жизни разные ситуации бывают. Так можно придти к бедному человеку и говорить: "Живи богато! Старайся!". А он тебе: "Так нет образования, нет работы нормальной...". А ты ему в ответ: "Ну тогда умри и поделом тебе!". Это неконструктивно. Надо всегда искать выход и подстраивать процесс под ситуацию, когда не можешь изменить саму ситуацию. :)

Рубрика «Полезное чтиво». Выпуск 12 « XP Injection, 28 ноября 2011

[...] Кетчуп по прежнему в бутылке – как должен выглядеть идеальный Agile [...]

Сергей Дмитриев, 26 ноября 2011

Далеко не всем в кайф заниматься поддержкой.

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

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

Мой вопрос все равно будет: А зачем у нас работают такие люди?
Иначе они останутся без софта.

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

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

Николай Алименков, 26 ноября 2011

Давно хотел написать, но руки не доходили. Я больше склоняюсь к мнению Макса. Все слишком идеализировано в твоем представлении, да и во многих публикуемых материалах по поводу Scrum и Agile в целом.
Приведу тебе пару примеров. Ты спрашиваешь почему разрабатывала одна команда, а поддерживает другая. Да очень просто. Та команда, что разрабатывала, разбежалась потихоньку по мере того, как продукт выходил на поддержку. Далеко не всем в кайф заниматься поддержкой. И набирали новых людей. Или вообще заказчик решил, что дорого платить этой высококлассной команде за поддержку.
На пункт про "увязку поставок подрядчикам" ты ответил "команда". Это самый распространенный ответ. Но он предполагает, что у нас очень ответственная и самоорганизующаяся команда. Но в жизни очень много людей, которые не хотят этой ответственности. Они просто любят разрабатывать, тестировать, дизайнить и т.д. Ты, понятное дело, ответишь: "стройте такую команду". На самом деле это не всегда возможно.
Да и по поводу контрактов. Я думаю многие понимают, что контракты неправильные. Но существует множество бюрократических организаций, которые ни за какие коврижки с тобой другой контракт не будут подписывать. И с ними кому-то надо работать тоже. :) Иначе они останутся без софта. Ты может быть с такими не сталкивался, но их очень много, особенно в России.
Вообщем этот идеальный мир не всегда физически можно построить. Поэтому стремиться надо не к нему, а к адаптированному под реалии проекта процессу. Очень понравилась вот эта статья на обсуждаемую тему: http://www.agileadvice.com/2011/10/25/scrumxplean/what-is-scrum-good-for/.

Сергей Дмитриев, 24 ноября 2011

Привет, Максим. Начнем с того "что одно из двух :)", поскольку я на таких идеальных заказчиков к счастью попадал.

аналитик на нашей стороне.
аналитик на нашей стороне не повредит, даже когда есть нормально доступный продакт оунер, ведь ему нужна помощь в проработке деталей, и наивно полагать что PO с этим со сам всем справится, если продукт более менее большой.
Мне как-то не уложиться в голове скрам-оф-скрам в больших проектах. Кто-то должен мониторить общий проект
- для этого проводятся демо и там присутствует заказчик (PO).
работать с бюджетом
- PO
распределением ресурсов
- у нас команда фиксированная, чего тут еще распределять?
увязывать поставки подрядчиков
- команда
ТЗ против бизнес-вэлью: в коммерции – да, в госсекторе зачастую нет.
- ага, я и говорю, что контракты у нас неправильные, но это не значит, что надо продолжать их подписывать :).
Суппорт – ну кагбэ да. Но если у тебя пишет одна команда, суппортит другая, и это разыне депаратменты, то только тдд не поможет.
а почему у тебя пишет одна команда, а суппортит другая?

Maks Vyshnivetskyi, 22 ноября 2011

Сережа, привет!
Правда, как-то все идеально получается. Либо в этом мире есть идеальные заказчики и проекты и я на них не попал, либо одно из двух:)
По продакт-овнеру понятно: супер, если он есть , и он умный, и он доступен. В реальности - сам понимаешь. Выход - аналитик на нашей стороне. Причем чем больше проект, тем важнее его у себя иметь. Как-то вот заметил, что доступность овнера в больших проектах обратнопропорциональна размеру проекта.
Команды с "К" и "все мы за тебя и даже затебее, чем остальные" - этот фактор важен для любого проекта, какую бы методологию он не юзал.
ПМы. Ну тут совсем сложно. Мне как-то не уложиться в голове скрам-оф-скрам в больших проектах. Кто-то должен мониторить общий проект, работать с бюджетом, распределением ресурсов, увязывать поставки подрядчиков.
ТЗ против бизнес-вэлью: в коммерции - да, в госсекторе зачастую нет. ТЗ - часть тендера и даже если в некоторых требованиях нет этого самого вэлью, то акты хрен подпишут, если не сделаешь. Так что вэлью для команды тут прямое и простое, как угол дома:)
Ретро и релизы - 100% согласен:). Главное, чтобы релизы не релизились чаще, чем нужно;)
Суппорт - ну кагбэ да. Но если у тебя пишет одна команда, суппортит другая, и это разыне депаратменты, то только тдд не поможет.
Фикседсроки и фикседденьги с нефиксед скоупом... Если дедикейтед команда - да. Если заказчик не госсектор - да. Иначе - тендерные условия изволь выполнить, и если недооценил - сам себе буратино:)
Как-то так вот:).