Лучшие способы для исправления ошибок в процессе Scrum?

Я изучаю и читаю о Scrum за последние несколько дней и читаю о планировании и задачах Sprint. Одна проблема, которая возникла у меня в голове, заключается в том, как бороться с ошибками в Scrum. Хенрик Книберг перечисляет некоторые способы решения этой проблемы в своей очень хорошей книге Scrum и XP из траншей:

  • Владелец продукта печатает наиболее высокоприоритетные предметы Jira, приносит их на совещание по планированию спринта, и ставит их на стену вместе с другими историями (тем самым неявным образом указывая приоритет этих пунктов по сравнению с другие истории).
  • Владелец продукта создает истории, которые относятся к Джире Предметы. Например, "Исправить наиболее критические отчеты о бэк-офисе, Джира-124, Джира-126 и Джира-180 ".
  • Исправление ошибок считается вне спринта, т.е. команда сохраняет достаточно низкий фокус-фактор (для пример 50%), чтобы они есть время исправить ошибки. Тогда просто предположил, что команда тратить определенное количество времени каждый sprint fixing Jira- сообщил об ошибках
  • Положите отставание продукта в Jira (например, Excel). Обращайтесь только с ошибками как и любая другая история.

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

Ответ 1

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

  • Рассмотрение всех ошибок одинаково с элементами отставания может звучать как хорошая идея в теории (работа отслеживается в одном месте), но на практике не работает. Ошибки обычно являются низкоуровневыми и более многочисленными, поэтому, если вы создаете индивидуальную историю пользователей для каждой ошибки, тогда "настоящие" истории вскоре будут закрыты.
  • Явное время в каждом спринте, зарезервированном для исправлений, отлично, если сделано так, как это видно для владельца продукта. Ошибки должны упоминаться во время ежедневной схватки, и обсуждение исправленных ошибок должно происходить во время обзора спринта. В противном случае владелец продукта не будет знать, что происходит в проекте.
  • Включение всего отставания в инструмент отслеживания ошибок приводит к тому же набору проблем, что и в 1. Более того, большинство трекеров ошибок не разработаны с учетом Scrum, и использование их для этой цели может быть болезненным.

Решение, которое мы нашли наиболее удовлетворительным, заключалось в том, чтобы на каждом спринте поставить одну историю пользователей под названием "Билеты" или "Ошибки". Затем такую ​​историю можно разделить либо на задачи низкого уровня, описывающие конкретную ошибку (если она известна во время планирования), либо мета-задачи, резервирующие определенное количество часов для общего исправления ошибок. Таким образом, у владельца продукта есть видимость процесса, и график сжигания отражает прогресс.

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

Ответ 2

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

Позвольте мне привести его:

  • Если ошибка легко или быстро исправлена ​​(одна лайнер и т.д.), затем просто исправьте его.
  • Если ошибка не является тривиальной, а не блокировщик, затем добавьте его в отставание.
  • Если ошибка является блокировщиком, добавьте задачи (к текущему спринту) к захватить работу, необходимую для ее исправления, и начать работать над этим. Эта требует, чтобы что-то еще было перемещено (от текущего спринта) до отставание для учета новых часов потому что ваши общие часы доступны не изменилось.

Ответ 3

Первый шаг - определить, что такое ошибка. Я участвую в том, что ошибка - это всего лишь ошибка, если она не работает на производстве, поскольку она предназначена/предназначена. Это превращает PBI типа ошибок в приоритет с новой разработкой. Отсутствие функциональности в производстве - это функция и становится обычным элементом заготовки продукта. Любой дефектный код, найденный во время спринта, считается неполной работой, и поскольку вы не переходите к следующей истории, пока текущий не будет выполнен; нет необходимости отслеживать эти недостатки в спринте, поскольку команда всегда работает над нарушительным кодом. Post-its может быть очень удобен здесь для быстрого напоминания между товарищами по команде. Исправление неработающего кода всегда имеет прецедент над написанием нового кода. Если дефекты вызваны неправильным пониманием истории, вам необходимо работать над условиями вашего приёма, прежде чем начинать рассказ.

Инвентарь - это отходы. Отслеживание ошибок - это инвентарь. Отслеживание ошибок - это отходы.

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

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

Ответ 4

Не отслеживайте дефекты в списке, найдите их и исправьте - Mary Poppendieck

В самом деле, если инвентарь - это отходы, что касается инвентаризации дефектов...

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

И когда дефекты проходят, мы фиксируем их перед написанием нового кода (истории с ошибками все равно не выполняются). Затем мы пытаемся исправить наш процесс, чтобы сделать его более ошибочным и обнаружить дефекты в тот момент, когда они происходят.

Ответ 5

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

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

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

Ответ 6

В нашем случае (разработка greenfield, 2-3 devs) найденные ошибки записаны, четко обозначены как ошибка, и в зависимости от их серьезности они назначаются следующей итерации или остаются в отставании. В случае критических и срочных ошибок они добавляются к текущей итерации.

Ответ 7

Я не знаю, почему что-то простое, как исправление ошибок, сложно с правилами. Scrum имеет очень мало правил, помните? Каждая функция, поддержка, рекомендация или дефект является проблемой Backlog в Scrum, нет никакой дифференциации. Итак, как говорится в руководстве Scrum:  задачи в Спринте никогда не ограничиваются тем, что вы принимаете во время совещания по планированию  Daily Scrum помогает людям обсуждать "препятствия" на своем пути.

Почему?

Итак, вы обсуждаете и думаете рационально, как команду, если хотите, чтобы дефект, то есть проблема с backlog, чтобы войти в PBI или остаться в этом Sprint и доставить его...

Ответ 8

Лучший вопрос: как прекратить создавать ошибки на этапе разработки? см. → http://bit.ly/UoTa4n

Если вы идентифицируете и документируете ошибки, вам придется сортировать и исправлять их в будущем. Это приводит к "стабилизационным спринтам", т.е. Одному сплошному спринту только для исправления ошибок. Или вы можете добавить их обратно в отставание и расставить приоритеты в качестве части будущего спринта. Это также означает, что вы будете предоставлять и ожидать, чтобы получить подписанное и выпущенное программное обеспечение с известными ошибками в нем (P3 и P4 aka косметические и второстепенные).

Это не очень гибко?

Ответ 9

Я представил идею в нашем проекте, чтобы ввести короткую ошибку, спринт, каждый третий спринт. Наши нынешние спринты - три недели.

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

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

Кто-нибудь пробовал это или получал отзывы о том, как они думают, что это может сработать?

Cheers, Кевин.