2008-12-05 6 views
6

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

+2

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что речь идет не о программировании. – 2017-10-23 08:38:32

ответ

6

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

  • Задача A будет принимать 2 единицы (произвольные)
  • Задача B примерно в 2 раза так сложно, как Task A (4 единицы)
  • Задача C составляет около половины усложнило (1 единица)

Мы лучше оцениваем относительную сложность, чем абсолютная сложность. Затем вы выполняете одну из задач и выясняете, сколько «реального времени» требуется для реализации 1 единицы - теперь вы можете рассчитать все задачи. Вы продолжаете обновлять свои оценки в соответствии с тем, как вы продвигаетесь.

Этот метод от Agile Estimating and Planning от Майка Кон, который является отличной книгой на эту тему.

+0

+1 Вы «постоянно обновляете свои оценки» или обновляете соотношение единиц/коэффициентов в реальном времени? – philant 2008-12-05 12:29:46

2

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

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

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

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

Что касается сюрпризов, это не имеет никакого отношения к оценке пользовательских историй ... так как у вас нет пользовательских историй для представления сюрпризов.

0

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

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

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

2

Макконнелл в «Software estimation - demystifiying the black art» сказал, что это лучше, чем я: «Граф, если это вообще возможно, когда Compute вы не можете рассчитывать использовать суждение в одиночку только в крайнем случае.».

Chapter 7 - Count, Compute, Judge (PDF).

(спасибо за напоминание мне об этом :)