Ниже приведен отрывок из нашей книги « Скрам: новичок ниндзя» , написанной М. Дэвидом Грином. Копии продаются в магазинах по всему миру, или вы можете купить их в электронном виде здесь .
Демонстрация истории
За день до демонстрации, в рамках подготовки, владелец продукта садится с младшим инженером, который владеет историей о щенках. Они уже несколько раз проходили через различные компоненты во время спринта, но владелец продукта хочет быть уверен, что все критерии приемлемости могут быть продемонстрированы.
«Будет ли это правильно организовано на готовых к работе серверах к демонстрации?» — спрашивает владелец продукта.
«Довольно», — отвечает инженер. «Это сервер, на котором тестировалось QA. Это должно быть хорошо для демо.
«Нужно ли мне знать что-то особенное, — говорит владелец продукта, — или я могу просто перейти на тот же сервер, которым мы сейчас пользуемся?»
«Нам не нужно ничего настраивать», — отвечает инженер. «Я думаю, что вы уже прошли через компоненты несколько раз. После развертывания вы сможете присоединиться к бета-версии, протестировать функции и успешно выйти из бета-версии ».
«Могу ли я пройти через все это прямо сейчас?» — спрашивает владелец продукта.
«Пока нет, — отвечает инженер, — но QA прошел все, поэтому нам просто нужно пройти развертывание до завтра. Это должно быть готово вовремя для демонстрации. ”
«Отлично, я с нетерпением жду этого», — говорит владелец продукта.
Проверка критериев приемки
На демонстрации присутствуют все, включая инженера QA и дизайнера, который работал над историей о щенках. Есть много любопытства о том, как это получится. Доска Scrum показывает все истории, которые были в процессе спринта, готовы к демонстрации:
Примечание: что случилось с заданиями?
Все задачи, которые были разбиты на истории о щенках, больше не актуальны, и поэтому были скрыты от просмотра на доске для демонстрации. После того, как история завершена, владельцу продукта не имеет значения, что потребовалось для его выполнения, а только соответствует ли вся история всем критериям приемлемости. Ради команды, индивидуально определенные задачи все еще сохраняются для последующей ссылки, если это необходимо.
Первое, что делает владелец продукта, это проверяет, что истории, перенесенные с предыдущего спринта, теперь завершены. Пройдя через них и убедившись, что все критерии приемлемости были выполнены, пришло время продемонстрировать большую историю, которая заняла большую часть времени в спринте.
«Итак, как мне попасть в бета-версию?» — спрашивает владелец продукта.
«У вас должен быть образец электронного письма с приглашением и ссылкой на бета-версию», — отвечает младший инженер, отвечающий за историю. «Проверьте свой почтовый ящик и нажмите на ссылку, чтобы начать».
Владелец продукта проверяет электронную почту и подтверждает, что она соответствует предоставленному тексту. Это выглядит очень просто, но соответствует критериям приемлемости. Дизайнер начинает делать заметки.
При нажатии на ссылку в электронном письме открывается настраиваемая страница входа с приглашением, которое также соответствует критериям принятия. После нажатия кнопки «Принять» владелец продукта входит в систему и начинает навигацию по благоприятной для щенка версии сайта.
В верхней части страницы показан заголовок предупреждения, как это было определено в критериях приемлемости для истории. «Пока это выглядит довольно хорошо», — говорит владелец продукта.
«Нам пришлось немного позаботиться о форматировании в заголовке, чтобы обеспечить интеграцию справки», — отмечает один из инженеров. «Я не думаю, что решение идеально, но оно делает работу».
«Да, давайте проверим это сейчас», — говорит владелец продукта. Несколько щелчков мыши, и экран изменится, чтобы показать страницы справки на сайте. Заголовок раскрывается на этих страницах, раскрывая дополнительные разделы справки для бета-версии, которые не рассматриваются на стандартных экранах справки.
«Казалось, это лучший способ вывести нужную вам информацию на экран, где люди могут ее найти», — говорит инженер. «Если бы у нас было время сделать полный рефакторинг, мы могли бы интегрировать его непосредственно в разделы справки, но просто не было времени сделать это с помощью кода».
«Это выглядит не очень хорошо, но я вижу, откуда ты, — говорит владелец продукта.
«Я думаю, что мы можем придумать более элегантные способы сделать это», — говорит дизайнер из задней части комнаты. «Я могу работать над некоторыми набросками».
«Это было бы хорошо», — говорит владелец продукта. «Я действительно не хочу отправлять его в таком виде».
«Но это соответствует критериям приемлемости, верно?» — подтверждает мастер схваток.
«Да», — соглашается владелец продукта. «Так что, если мы хотим сделать обновления для визуального дизайна, это будет новая история для следующего спринта, верно?»
«Вот как это звучит, — говорит мастер схватки.
Изучив остальные функции и пройдя все критерии приемлемости, владелец продукта определяет ряд областей, в которых есть место для улучшения. Команда сделала несколько целесообразных решений по визуальному оформлению, чтобы реализовать все функциональные возможности.
Не все параметры интерфейса были указаны в проектных решениях, и некоторые функции выходили за рамки существующего руководства по стилю. Теперь дизайнер делает заметки и подтверждает владельцу продукта, что они рассмотрят эти проблемы после демонстрации, чтобы обсудить, над чем нужно работать дальше.
Но, несмотря на некоторое визуальное отсутствие доработки, все флажки были отмечены. Ради этого процесса команда может считать, что история завершена, даже если она еще не готова к выпуску. Таким образом, мастер схватки обновляет историю на доске и устанавливает статус «выполнено». Это обновляет количество баллов, добавляя все баллы за историю к сумме за этот спринт.
К концу одиннадцатого спринта команда набрала все 24 очка в зачете спринта, и доска объявлений выглядит следующим образом:
Спринт Ретроспектива
После завершения демонстрации и закрытия спринта команда садится вместе с мастером схватки, чтобы пройти ретроспективу спринта. Суть в том, чтобы люди говорили о том, что, по их мнению, прошло хорошо во время последнего спринта, что они могли бы сделать лучше, и какие изменения, по их мнению, они должны внести в дальнейший процесс.
«Одна вещь, которая, я думаю, пошла очень хорошо, — это иметь возможность проследить эту большую историю от начала до конца», — говорит младший инженер, который взял на себя ответственность за историю с щенками. «Это дало мне отличный шанс увидеть, как наша архитектура работает сверху вниз».
«Вы действительно хорошо поработали над этим», — говорит инженер, который работал над этой историей. «Я узнал кое-что о нашей собственной архитектуре, чего тоже не знал. Там есть действительно грязные вещи.
«Да, — говорит другой инженер, — это одна из тех вещей, которые, я думаю, пошли не так хорошо. Я действительно думаю, что у нас должна была быть возможность провести рефакторинг, прежде чем пытаться все это выстроить ».
«Я согласен», — говорит второй инженер. «Но теперь, по крайней мере, у нас есть представление о том, в чем заключается беспорядок, поэтому мы знаем, на чем в первую очередь сосредоточиться».
«Было бы проще, если бы я только мог сначала погрузиться и исправить все это», — говорит третий инженер. «Я уже знал, где это было, и меня до сих пор беспокоит, что мы сделали это задом наперед».
«По крайней мере, теперь вы не единственный, кто знает», — отмечает второй инженер.
«Да, но звучит так, как будто у нас тоже не будет шанса провести рефакторинг этого спринта», — говорит третий мрачный инженер.
«Вот как это звучало и для меня», — вмешивается четвертый инженер. «Они собираются придерживаться историй, чтобы сначала были внесены изменения в дизайн для бета-версии».
«Вероятно, у нас будет несколько историй о дизайне, чтобы исправить визуальные эффекты для бета-версии», — говорит мастер. «Но владелец продукта согласился дать нам время для рефакторинга в качестве основного приоритета, если мы закончили историю, и мы сделали. Я свяжусь с этим до встречи по планированию, чтобы убедиться.
«Ну, одно, — говорит третий инженер, — это то, что я хочу пройтись по этим новым конструкциям с помощью зубчатого гребня и убедиться, что они действительно окончательные, прежде чем мы их оценим».
«Должны ли мы сделать это еще одной целью для следующего спринта?» — спрашивает мастер схваток.
Инженеры по комнате кивают. В конце ретроспективы они представили краткий список улучшений, которые они хотели бы внести в свой процесс, а также пару заданий, которые мастер Scrum мог согласовать с владельцем продукта.
С двумя сторонами можно согласиться, что работа по всему стеку была разочаровывающей, но также полезной для выявления проблем в коде, которые необходимо исправить, и что приоритетом следующего спринта должно быть решение этих проблем. Так или иначе, это будет интересная встреча по планированию в следующем спринте.
Резюме
Одна из вещей, которую мы узнали о scrum, заключается в том, что она не может дать вам команду, которую вы, возможно, пожелаете иметь, но она может помочь вам оптимизировать имеющиеся у вас ресурсы и поддержать их в эффективной совместной работе. В этой главе мы рассмотрели, как команда с некоторыми проблемами подошла к новой истории, которая потянула их ресурсы.
- Мы увидели, как команда организовала работу, и разбили большую историю на инженерные задачи, чтобы ее можно было разрабатывать параллельно.
- Мы наблюдали, как команда сталкивалась с проблемами с критериями приемлемости, и получали отзывы от владельца продукта о том, как их решать во время спринта.
- Мы увидели компромиссы, которые возникли во время демонстрации, и как они привели к пересмотренным ожиданиям предстоящего спринта.
- А потом мы послушали, как команда обсуждает свои проблемы на ретроспективе, обсуждая, что прошло хорошо, что могло бы пойти лучше, и что они надеются увидеть в следующем спринте.
Во всем этом заложена философия совместной прозрачности и самоуправления, лежащая в основе схватки. В следующей главе мы поговорим о том, как заставить Scrum работать на вашу команду. Мы поговорим о том, как внедрить концепцию scrum в организацию, какие ресурсы необходимы для поддержки scrum, а также о том, как устранить некоторые анти-паттерны, которые могут проявиться при обучении применению scrum.