Как подойти к решению задачи «Скрам», когда в заданиях участвуют несколько человек?

12

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

Проблема в том, как подойти к сгоранию? Если я соберу часы вместе, предположим следующую оценку:

10 часов - время разработки

4 часа - QA

4 часа - обзор кода.

Оценка задания = 18 часов

В конце каждого дня я прошу обновить задание на «сколько времени осталось до его выполнения». Тем не менее, каждый человек, как правило, просто думает о своей части этого. Должны ли они отметить оставшееся усилие, а затем ДОБАВИТЬ оценки усилия к этому? Как вы, ребята, делаете это?

ОБНОВИТЬ

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

  1. Кто-то, чтобы разработать задачу. (делать юнит-тесты, т. д.)
  2. Специалист по обеспечению качества для проверки задачи (в основном они проводят интеграционные и регрессионные тесты)
  3. Технический лидер, чтобы сделать обзор кода.

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

Мой вопрос к тем, кто работает таким образом, будет о том, как записать «задачу», когда они настроены таким образом. Если у Задачи нет своих собственных подзадач (которые JIRA не позволяет) ... Я не уверен, что это лучший способ ежедневно отслеживать "что осталось".

AgileMan
источник
8
Не могли бы вы описать, каков ваш процесс? Мы никогда не используем часы при планировании Scrum и никогда не сообщаем о количестве оставшихся часов. Задачи выполняются, когда они сделаны.
dcaswell
1
@ user814064: Хороший вопрос. Каждый раз, когда я видел команды, оценивающие каждую задачу, они всегда ошибались. Иногда в 1/10 и более раз.
Арсений Мурзенко
Этот процесс для меня новый. В прошлом мы сжигали задачу, когда она была выполнена. ОДНАКО, я пытаюсь побудить людей лучше оценивать. Мы можем оглянуться назад на наши оценки и сравнить их с нашими фактическими и, надеюсь, извлечь из них уроки. Это может быть бесплодным начинанием, но я хочу, чтобы команды некоторое время пытались.
AgileMan
Трудно объяснить, почему вы не должны делать это с помощью нескольких символов, которые вам разрешено вводить здесь. Оценка - это именно то, что следует из ее названия: она расплывчатая, приблизительная, и вы не можете добиться в ней какого-либо значимого и сбалансированного соотношения затрат и усилий. В конце концов, это называется «оценка», а не «расчет». Я бы посоветовал вам прочитать сообщения Нила Киллика на #NoEstimates: neilkillick.com/2013/01/31/…
Стефан

Ответы:

14

Это 3 задачи, а не одна.

Это может быть одна особенность / история, но это три задачи. Одна задача может быть выполнена одним человеком за конечное время.

Стивен А. Лоу
источник
@ user814064: это не предположение; ОП перечислил оценки для каждого задания в посте
Стивен А. Лоу
Я должен был быть более конкретным ... это уже на уровне задач. Например, КАЖДУЮ задачу (небольшую часть истории) необходимо разработать, протестировать и проанализировать. Даже если задача была выполнена одним человеком ... другие потратят время, чтобы убедиться, что она выполнена. Я полагаю, вы можете сделать так, чтобы у каждой задачи были свои задачи ... но я не уверен, как это будет работать.
AgileMan
3
@AgileMan: в мире здравого смысла задача - это единица работы, которую может выполнять один человек, а три серии задач от трех разных людей - это проект. В мире схваток ... это то же самое. (например, www.scrumalliance.org/community/articles/2007/march/glossary-of-scrum-terms#1129). Story-1-dev, Story-1-QA-review и Story-1-code-review - это 3 разные задачи. Если вам нужно смоделировать задачи из 3-х частей, возможно, подойдут 3 различных графика выкатов;)
Стивен А. Лоу,
Если это необходимо на уровне задач, вам действительно нужно поработать над определением «Готово» и разбить свои задачи. Должно быть просто да / нет, чтобы знать, завершена ли задача, а не процесс, выполняемый несколькими людьми.
SpoonerNZ
7

TL; DR

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

В Scrum вы должны измерять прогресс в достижении цели спринта, а не измерять временные рамки спринта. Это позволяет сконцентрироваться на возможностях команды и предоставлении функций, а не на постоянных корректировках расписания.

Задачи против историй

Вы объединяете задачи и истории. Истории включают все задачи, необходимые для завершения истории в соответствии с «определением выполненного» вашей команды. История считается на 100% неполной, если все ее задачи не выполнены. В Scrum истории всегда оцениваются каким-то образом; чаще всего они оцениваются в сюжетных баллах.

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

Сгореть

В Scrum ваша диаграмма выгорания показывает объем работы, оставшейся для спринта или проекта. Реальные диаграммы выгорания часто имеют плато; в некоторых случаях график может даже подняться. Например, при однонедельном спринте с двумя историями по 3 и 5 баллов ваши данные могут выглядеть примерно так:

Mon | Tue | Wed | Thu | Fri
--- | --- | --- | --- | ---
 8  |  5  |  5  |  5  |  0

В этом идеалистическом сценарии вы начинаете с 8 сюжетных очков. История с 3 пунктами была закончена во вторник днем, в то время как история с 5 пунктами не была закончена до пятницы. Очки истории не вычитаются из выгорания до тех пор, пока история не соответствует определению «сделано». Если вы используете идеальные часы вместо баллов, единственное, что изменится, - это ваш масштаб.

Время-бокс

Общепринятой практикой является обеспечение того, чтобы ваши задачи разбивались на куски размером с укус между 1/2 дня и 2 дня. Отклонение более чем на один день должно быть самоочевидным из ежедневных заездов или отставания спринта; не должно быть необходимости выполнять формальную проверку статуса.

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

CodeGnome
источник
Я не думаю, что мы полностью согласны. Несомненно, таблица выживаемости действительно измеряет прогресс в достижении цели спринта ... но она делает это путем измерения прогресса в конкретных историях спринта. Как правило, вы можете выбрать «прожигать», когда история завершена на 100%, или вы можете записывать часы на каждую историю каждый день, когда работа завершается. Я пытаюсь сделать последнее ... но для команд это сложно. Я чувствую, как будто ваш пост отклоняется от вопроса, который я первоначально задал.
AgileMan
один из рисков, не позволяющих завершить задачу на 100%, состоит в том, что 100% ваших задач выполнены на 99%, что означает, что на самом деле ничего не «сделано»
hanzolo
1
@AgileMan Вы находите это «трудным для команд», потому что вы измеряете не то, что нужно. Вы, безусловно, можете применять любую методологию, которая работает для вас и вашей команды, но я согласен с утверждением, что измерение исходных оценок - прошедшее время - это не то же самое, что измерение оставшегося рабочего продукта. Делайте все, что работает для вашего проекта, но не бойтесь ставить под сомнение предположения, которые лежат в основе ваших текущих показателей.
CodeGnome
@CodeGnome. Здесь происходит простое неправильное общение. Я не пытаюсь отследить "прошедшее время". Я пытаюсь определить «оставшееся время». Когда эта задача будет выполнена? Это все, что я пытаюсь определить. Однако, поскольку даже самая маленькая задача (как правило) включает в себя несколько человек, задача состоит в том, как определить, что осталось, простым и понятным способом.
AgileMan
4

Можете ли вы определить задачу разработчика как "выполненную", прежде чем QA выполнит свою роль? Можете ли вы определить рецензирование кода как «выполнено» до того, как завершится разработка? Может ли QA быть «выполнено», если нет разработки и проверки кода?

Я бы сказал, что вы должны объединить три элемента в одну задачу, и три человека должны работать вместе над этим.

Scrum НЕ говорит, что ответственность за любой предмет лежит на командире. Напротив, элементы журнала спринта являются обязанностью КОМАНДЫ. Если для выполнения задачи требуется три человека, то это то, что нужно.

Мэтью Флинн
источник
У меня есть некоторые сомнения по поводу этого предложения. Для меня задача разработки может быть выполнена до проверки качества и проверки кода, но проверка кода и проверка качества (которые для них являются отдельными задачами), скорее всего, создают новые задачи разработки, которые можно «сжечь» индивидуально. Конечно, если «задача» означает «реализовать полную пользовательскую историю», то вы правы, но почему задача должна быть такой грубой?
Док Браун
@DocBrown - я сделал это обоими способами. Я обнаружил, что высказывание задачи выполнено, когда она не была проверена (проверка и проверка), не оказалась полезной для отслеживания прогресса. Помещение всех в ловушку для выполнения задачи помогает поддерживать срочность для всех вовлеченных.
Мэтью Флинн
Очевидно, что ничего не делается, пока он не прошел процесс DoD. Тем не менее, все может прогрессировать до такой степени, что это может быть полезным для рассмотрения другими сторонами. В настоящее время я объединяю всю «работу», необходимую для каждой небольшой задачи, в совокупный час, как вы упомянули. Проблема в том, что когда один человек пытается сообщить о том, что осталось, ему обычно приходится учитывать свою часть, а затем добавлять оценки других людей сверху ... так что это довольно напряженная работа. Я чувствую, что есть лучший способ.
AgileMan
3

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

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

После первоначальной оценки она неофициально завершается для нашей команды более, чем на часы. Если мы изначально думали, что это займет два дня, но после одного дня, мы думаем, что оно выполнено только на 25%, мы берем 4 из первоначальных 16 часов. Это оставляет 12 часов, а технически мы оцениваем 24, потому что мы, вероятно, вычтем 4 часа за оставшиеся 3 дня.

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

Карл Билефельдт
источник
2

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

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

Это говорит:

  • Большие задачи могут указывать на то, что ваши истории слишком велики. В этом случае лучшее решение - это уменьшить объем и размер историй, и если вы сократите его, отслеживание оставшегося времени на задачах больше не имеет значения (они либо выполнены, либо нет - сумма оценки для невыполненных задач). достаточно гранулированный).
  • SCRUM призывает всех понять, что нужно делать. Если вы назначаете задачи лицам (в отличие от ролей), то вы потенциально лишаете себя возможности рассказывать историю, даже если разработчик ничего не делает - потому что QA является узким местом.
ptyx
источник
-1

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

Исходное задание: исправить что-то

Новые задачи: (потомок родителя исходного задания)

  • Dev A - Исправление проблемы
  • Dev B - Помощь Dev A в решении проблемы (например, парное программирование, проверка кода)
  • Dev A - тестирование исправления с помощью Dataset X
  • Dev B - тестирование исправления с помощью набора данных Y
Асим Гаффар
источник
вопрос гласит, что подзадачи не разрешены
комнат
я никогда не имел в виду подзадачу как таковую ... я имею в виду разбить задачу на задачи и сделать их всех потомками истории или ошибки .. я перефразирую свой ответ ..
Асим Гаффар
Хорошо разбить его так, как вы описали, уже предлагалось и объяснялось как минимум в двух предыдущих ответах (в данный момент голосовали лучшие): «Это 3 задачи, а не одна ...» «Вы объединяете задачи и истории ...»
Комнат