На мой взгляд самую коварную ошибку допустили создатели, когда сказали, что скрам это фрэймворк, который нужно адаптировать под себя. Я много раз слышал, как люди ссылаясь на это утверждение, оправдывали отсутствие или модификацию фундаментальных элементов скрама, таких как роль Product Owner, burndown диаграмма, цель спринта, демонстрация, готовый продукт в конце спринта и др. Для таких многочисленных «адаптаций» даже появился специальный термин «Скрамно» (ScrumBut).
В этой статье я поделюсь своим видением смысла и пользы некоторых элементов скрам. Я это сделаю в формате вопроса «почему этот элемент важен?». Это те почему, которые удалось мне выявить, путем проб и ошибок, а также внимательного наблюдения за процессами скрам в компаниях, где я работал.
Я долгое время не понимал зачем нужна цель спринта. И почему в книге «Scrum и XP — заметки с передовой» Хенрика Книберга написано, что очень важно ее выбрать. Из-за подчеркнутой важности этого элемента скрама, мы всегда его использовали. Но из-за того, что мы не понимали смысла, мы придумывали ужасные цели. Обычно мы просто упрощали процесс выбора цели, задавая негласное правило, брать целью выпуск очередного релиза или реализацию какой-то очередной жирной спринтовой фичи. От этого усиливалось ощущение бесполезности цели, а то и ее вреда.
Понимание цели пришло когда я начал участвовать в скрам команде, участники которой делают технические задачи, а не пользовательские истории. Задачи нарезаны таким образом, чтобы результат работы одного члена команды был использован другим членом команды в другом спринте. Мой приход добавил еще одно звено в этой цепочке. Такой процесс в корне является каскадо-водопадным со всеми вытекающими отсюда последствиями.
Как можно исправить сложившуюся ситуацию? Ведь речь идет о тяжелом и мучительном изменении процесса в его корне. Хорошо подобранная цель спринта является тем мощным инструментом, который делает команду командой. Если у команды есть общая цель. Та цель к которой стремится каждый из ее членов. То такая команда будет трансформировать свои процессы естественным образом, чтобы достичь поставленной в начале спринта цели.
Таким образом, цель спринта — это командообразующий элемент скрама и хорошо подобранная цель — это то к чему стремится каждый из членов команды в течении спринта и это то что важно для всей команды в целом.
На планировании команда берет на себя обязательство выполнить спринтовые задачи к концу спринта. Отправленное письмо — это документальное подтверждение этих обязательств, это негласный контракт между исполнителями и заказчиками, это честное слово данное командой, а также точка невозврата, после которой все спринтовые задачи жестко фиксируются и ничего другого не остается как делать их и тем самым выполнять свое обещание.
У письма есть и другое, более известное назначение. Все заинтересованные лица вводятся в курс задач и сроков команды. Такая осведомленность ЗЛ повышает лояльность к команде и уменьшает поток незапланированных задач.
Считая производительность команды (velocity) и ведя график исторических значений производительности, можно понять насколько ритмична и стабильна работа команды. Начинающая команда, еще не вошедшая в ритм, будет иметь ломанный график. Если ломанный график имеет зрелая команда, то это сигнализирует о проблеме, которую нужно решать (за исключением отпусков и больничных). Например, на график может повлиять постоянное изменение объема незапланированных задач, от спринта к спринту. Эта проблема в свою очередь может быть причиной срыва сроков спринта.
Также график производительности команды полезен при определении объема задач на спринт на основе метода вчерашней погоды.
Во-первых, такой ритм дает более устойчивое значение velocity, а следовательно и более надежное планирование. Во-вторых, ритм формирует устойчивые привычки у членов команды, выполнение которых требует меньше интеллектуальных и психологических затрат, чем выполнение тех же действий, но без привычек. В-третьих, к ритму команды привыкают заинтересованные лица и они всегда знают чего ожидать от команды.
Мы пробовали работать без соблюдения постоянного ритма, периодически меняли состав команды и длину спринта, меняли дни планирования и демонстраций. Когда мы начали работать в постоянном ритме, то заметили прирост скорости команды.
Все знают, что DSM (daily scrum meeting) нужны для синхронизации команды. Также DSM позволяет своевременно устранять проблемы разработки. Если у кого-нибудь из команды возникает проблема, угрожающая срывом сроков спринта, то она сразу вскрывается и решается совместными усилиями. Таким образом, основная ценность DSM заключается в обеспечении контроля следования плану. Эту ценность можно усилить, если отмечать завершенные задачи на burndown диаграмме в конце каждого DSM. Если burndown сигнализирует о слишком медленном завершении задач, это сразу вскрывается и решается.
Основной причиной этому является необходимость в частых релизах со стороны бизнеса. Но так бывает не всегда. Иногда бизнесу нужны ежеквартальные, а то и полугодовые релизы. Нужны ли нам готовые продукты в конце каждого спринта в этих случаях? Нужны!
Во-первых, делая готовый продукт в конце спринта, команда избавляется от хвостов. Новый спринт начинается с чистого листа, с новыми пользовательскими историями. Это делает работу последовательной. В новом спринте не приходится вспоминать детали реализации задачи, половину которой команда сделала в прошлом/позапрошлом спринте.
Во-вторых, готовый продукт можно продемонстрировать заинтересованным лицам и получить от них полезную обратную связь. Демонстрация готового продукта лучше любого отчета показывает результаты работы и провоцирует новые идеи. Также демонстрация мотивирует команду в течении спринта. Зная что будет демонстрация, команда готовится к ней.
В-третьих, не приходится выпиливать куски кода для пользовательской истории, которая была наполовину реализована один или несколько спринтов назад и сильно упала в приоритете или совсем потеряла актуальность.
Литература:
В этой статье я поделюсь своим видением смысла и пользы некоторых элементов скрам. Я это сделаю в формате вопроса «почему этот элемент важен?». Это те почему, которые удалось мне выявить, путем проб и ошибок, а также внимательного наблюдения за процессами скрам в компаниях, где я работал.
1. ПОЧЕМУ нужна цель спринта?
Я долгое время не понимал зачем нужна цель спринта. И почему в книге «Scrum и XP — заметки с передовой» Хенрика Книберга написано, что очень важно ее выбрать. Из-за подчеркнутой важности этого элемента скрама, мы всегда его использовали. Но из-за того, что мы не понимали смысла, мы придумывали ужасные цели. Обычно мы просто упрощали процесс выбора цели, задавая негласное правило, брать целью выпуск очередного релиза или реализацию какой-то очередной жирной спринтовой фичи. От этого усиливалось ощущение бесполезности цели, а то и ее вреда.
Понимание цели пришло когда я начал участвовать в скрам команде, участники которой делают технические задачи, а не пользовательские истории. Задачи нарезаны таким образом, чтобы результат работы одного члена команды был использован другим членом команды в другом спринте. Мой приход добавил еще одно звено в этой цепочке. Такой процесс в корне является каскадо-водопадным со всеми вытекающими отсюда последствиями.
Как можно исправить сложившуюся ситуацию? Ведь речь идет о тяжелом и мучительном изменении процесса в его корне. Хорошо подобранная цель спринта является тем мощным инструментом, который делает команду командой. Если у команды есть общая цель. Та цель к которой стремится каждый из ее членов. То такая команда будет трансформировать свои процессы естественным образом, чтобы достичь поставленной в начале спринта цели.
Таким образом, цель спринта — это командообразующий элемент скрама и хорошо подобранная цель — это то к чему стремится каждый из членов команды в течении спринта и это то что важно для всей команды в целом.
2. ПОЧЕМУ нужно отправлять письмо с объявлением старта спринта всем заинтересованным лицам и членам команды?
На планировании команда берет на себя обязательство выполнить спринтовые задачи к концу спринта. Отправленное письмо — это документальное подтверждение этих обязательств, это негласный контракт между исполнителями и заказчиками, это честное слово данное командой, а также точка невозврата, после которой все спринтовые задачи жестко фиксируются и ничего другого не остается как делать их и тем самым выполнять свое обещание.
У письма есть и другое, более известное назначение. Все заинтересованные лица вводятся в курс задач и сроков команды. Такая осведомленность ЗЛ повышает лояльность к команде и уменьшает поток незапланированных задач.
3. ПОЧЕМУ нужно считать производительность команды и вести график?
Считая производительность команды (velocity) и ведя график исторических значений производительности, можно понять насколько ритмична и стабильна работа команды. Начинающая команда, еще не вошедшая в ритм, будет иметь ломанный график. Если ломанный график имеет зрелая команда, то это сигнализирует о проблеме, которую нужно решать (за исключением отпусков и больничных). Например, на график может повлиять постоянное изменение объема незапланированных задач, от спринта к спринту. Эта проблема в свою очередь может быть причиной срыва сроков спринта.
Также график производительности команды полезен при определении объема задач на спринт на основе метода вчерашней погоды.
4. ПОЧЕМУ важен постоянный ритм?
Во-первых, такой ритм дает более устойчивое значение velocity, а следовательно и более надежное планирование. Во-вторых, ритм формирует устойчивые привычки у членов команды, выполнение которых требует меньше интеллектуальных и психологических затрат, чем выполнение тех же действий, но без привычек. В-третьих, к ритму команды привыкают заинтересованные лица и они всегда знают чего ожидать от команды.
Мы пробовали работать без соблюдения постоянного ритма, периодически меняли состав команды и длину спринта, меняли дни планирования и демонстраций. Когда мы начали работать в постоянном ритме, то заметили прирост скорости команды.
5. ПОЧЕМУ нужно проводить DSM и зачем рисовать burndown?
Все знают, что DSM (daily scrum meeting) нужны для синхронизации команды. Также DSM позволяет своевременно устранять проблемы разработки. Если у кого-нибудь из команды возникает проблема, угрожающая срывом сроков спринта, то она сразу вскрывается и решается совместными усилиями. Таким образом, основная ценность DSM заключается в обеспечении контроля следования плану. Эту ценность можно усилить, если отмечать завершенные задачи на burndown диаграмме в конце каждого DSM. Если burndown сигнализирует о слишком медленном завершении задач, это сразу вскрывается и решается.
6. ПОЧЕМУ в конце спринта должен быть готовый продукт?
Основной причиной этому является необходимость в частых релизах со стороны бизнеса. Но так бывает не всегда. Иногда бизнесу нужны ежеквартальные, а то и полугодовые релизы. Нужны ли нам готовые продукты в конце каждого спринта в этих случаях? Нужны!
Во-первых, делая готовый продукт в конце спринта, команда избавляется от хвостов. Новый спринт начинается с чистого листа, с новыми пользовательскими историями. Это делает работу последовательной. В новом спринте не приходится вспоминать детали реализации задачи, половину которой команда сделала в прошлом/позапрошлом спринте.
Во-вторых, готовый продукт можно продемонстрировать заинтересованным лицам и получить от них полезную обратную связь. Демонстрация готового продукта лучше любого отчета показывает результаты работы и провоцирует новые идеи. Также демонстрация мотивирует команду в течении спринта. Зная что будет демонстрация, команда готовится к ней.
В-третьих, не приходится выпиливать куски кода для пользовательской истории, которая была наполовину реализована один или несколько спринтов назад и сильно упала в приоритете или совсем потеряла актуальность.
Литература:scrum_xp-from-the-trenches-rus-final.pdf
www.smartagilee.com/2012/06/v-behaviorurldefaultvmlo.html
www.scrum.org/ScrumBut
www.smartagilee.com/2012/06/v-behaviorurldefaultvmlo.html
www.scrum.org/ScrumBut