Почему, как и что из ретроспективы Agile

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

  • Часть 1. Почему вы должны это делать?
  • Часть 2. Как добавить ретроспективы функций в существующий процесс разработки?
  • Часть 3. Что вы делаете на ретроспективной встрече? Кого вы приглашаете?
  • Часть 4. Шаблон ретроспективы функций
  • Часть 5:резюме

Часть 1. Зачем это делать?

Начнем с Почему (это всегда хорошая идея, спасибо, Simon Sinek). Все мы знаем, что процесс разработки всегда длиннее, чем нам всем хотелось бы. Так почему вы должны добавить еще один шаг к этому? Что это значит для вас?

Поясню, почему это так важно.

Цель Agile-ретроспективы – постоянное совершенствование в команде.

Это наш способ регулярно делать небольшие шаги к улучшению. Эти небольшие шаги создадут культуру роста и повысят производительность всей команды разработчиков. Мы хотим иметь ретроспективную культуру, в которой люди постоянно хотят учиться и делать что-то лучше; быстрее, с меньшими усилиями, с меньшим количеством ошибок, с меньшими ресурсами и т. д. Небольшие (на первый взгляд незначительные) улучшения, если их делать последовательно в течение долгого времени, приводят к ПОТРЯСАЮЩИМ результатам (Робин Шарма)

Надеюсь, теперь вы убедились, что ретроспективы — это хорошая идея.

Давайте узнаем, как привести команду к «ретроспективной культуре».

Часть 2. Как добавить ретроспективы функций в существующий процесс разработки?

Вот в чем суть:

  • Назначьте владельца функции для каждой функции. Это человек, отвечающий за общую доставку и реализацию функции — от этапа создания идеи до полного развертывания.
  • Имейте slack канал для каждой функции — это позволяет всем коммуникациям происходить в одном месте, где все заинтересованные лица могут следить за ними. Это полезно для организационной памяти, помогает помнить, кто принимал решения, и, что более важно, помнить, ПОЧЕМУ эти решения были приняты и какие соображения учитывались при их принятии.
  • Создайте документ Ретроспектива функций для каждой функции — используйте шаблон (я добавил его в конце этого блога).
  • Проведите встречу, посвященную ретроспективе функций.
  • Поделиться с группой

Какое место это занимает в существующем процессе разработки?

Наш процесс разработки выглядел так до того, как мы добавили ретроспективы функций:

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

  • Шаг 1: «Планирование продукта» — менеджер по продукту планирует функцию (мечту).
  • Шаг 2. Откройте канал Slack для этой функции, чтобы все сообщения о ней хранились в одном месте.

  • Шаг 3. Проведите совещание по началу работы над функцией, на котором менеджер по продукту расскажет о функции всем разработчикам, прежде чем они начнут работать над ней.
  • Шаг 4. Ознакомьтесь со спецификацией функции (каковы требования?). Это предварительное условие, необходимое для того, чтобы разработчик подготовил дизайн функции.
  • Шаг 5.Подготовьте дизайн функции и проведите совещание по обзору дизайна (это может быть отдельная запись в блоге).
  • Шаг 6.Оцените временную шкалу функции — когда она будет готова? какие вехи у нас будут? У нас также есть собрание Планирование игры в покер, на котором мы вместе обсуждаем задачи и оцениваем, сколько времени займет каждая из них. Для этого есть несколько бесплатных онлайн-инструментов, вот один из них. Это снижает риск того, что задача не будет готова вовремя, так как позволяет большему количеству людей увидеть план и подумать, что может пойти не так и что мы забыли учесть.

  • Шаг 7.Это основное блюдо — разработка функций — это когда вы на самом деле пишете код.

  • Шаг 8.КК (необязательно) — после того, как функция будет готова, у нас будет КК, который ее протестирует.
  • Шаг 9.Встреча по внедрению — как мы планируем выпустить эту функцию? Например, откройте эту функцию сначала для небольшой группы пользователей, а затем постепенно увеличивайте трафик, пока она не будет открыта для 100 % пользователей по всему миру. Рассмотрите все, что может пойти не так, спланируйте, как вы узнаете об этом и как вы будете решать проблему в случае ее возникновения (закрытие переключателя функций, откат и т. д.)

Как мы изменили существующий процесс?

Мы добавили еще 4 шага:

1. Прежде чем начать:

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

2. В процессе разработки:

  • Каждый член команды должен собирать индивидуальную информацию и записывать ее в документ ретро-функции.

3. После выхода функции:

  • Проведите ретроспективную встречу с командой, занимающейся этой функцией.

4. Поделитесь своими выводами

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

Часть 3. Что вы делаете на ретроспективной встрече?

Создайте подходящую атмосферу для обсуждения

  • Не переходи на личности, не принимай на свой счет
  • Слушайте с открытым сердцем
  • Опыт каждого действителен
  • Сосредоточьтесь на улучшении, а не на обвинении

О чем следует поговорить на собрании?

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

А потом:

  1. Сгруппируйте похожие проблемы вместе, найдите идеи, как сделать это по-другому и лучше в следующей функции, кратко обсудите каждую проблему в команде.
  2. Определяйте действия, открывайте заявки (в вашем инструменте управления задачами, таком как Jira/Monday/Asana) + назначайте их + устанавливайте крайние сроки.

Кто приглашен на встречу?

Кто бы ни принимал участие в этой функции, это могут быть разработчики Backend и Frontend, QA, менеджеры по продукту, эксперты по пользовательскому опыту, авторы контента, аналитики и т. Д.

Кто еще?

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

У каждой функции должна быть ретроспектива

Чтобы было проще, вот шаблон, который вы можете использовать:

Часть 4. Шаблон ретроспективы функций:

  1. Описание функции: несколько строк, объясняющих, зачем она нужна, о чем она.
  2. Команда: назовите людей, которые работают над этой функцией: менеджер по продукту, разработчик внешнего интерфейса, разработчик внутреннего интерфейса, QA и т. д. Кто бы ни принимал участие!
  3. Что мы сделали хорошо? Что мы можем сделать лучше в следующий раз? Подумайте об API, оценке времени, управлении, командной работе, синхронизации совещаний.
  4. Элементы действий: напишите, что нужно сделать, назначьте это соответствующим людям, установите срок выполнения задачи. если вы работаете с Jira/Asana/Monday/любой другой системой управления задачами — добавьте ее туда. Не оставляйте это в документе.

5. Резюме

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

Ретроспективы функций — важная часть культуры разработки.

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

Как выразился знаменитый философ Софокл;

"У меня нет желания страдать дважды, на самом деле, а потом задним числом".

— Софокл, "Царь Эдип"

Не стесняйтесь комментировать и задавать вопросы!

Следите за мной в Medium, LinkedIn и Twitter :)