Это сложная тема, и по этой теме часто идут дебаты. Мне не нравится понятие «канонического» мнения по этому поводу: существуют различные мнения, имеющие ценность. Но есть поддерживающие ценности, принципы и практики, которые должны направлять подход.
Нижеследующее основано на моем собственном мнении о работе с командами Scrum более 10 лет. Но это только МОЕ мнение.
Исторические точки как метод прогнозирования Первоначальная цель сюжетных точек состояла в том, чтобы найти быстрый метод оценки усилий с целью прогнозирования того, что команда может выполнить за определенный период времени. Некоторые из «корифеев» утверждают, что точки используются только для прогнозирования долгосрочного охвата (например, по выпуску), а не для определения пропускной способности на уровне спринта. Кроме того, концепция заключается в том, что команды применяют «относительный размер» на основе исторических значений (Усилие X аналогично Усилию B, которое составляло 3 балла). Это ускоряет процесс оценки, так что командам не нужно разбивать будущую работу на подробные рабочие пакеты и применять часы для всех задач. Высокопроизводительные команды стремятся превратить всех технических работников в очень компетентных членов с одинаковым уровнем квалификации. (Эта концепция будет более подробно рассмотрена в пункте № 4). Когда это будет достигнуто, то индивидуальный уровень квалификации действительно не будет переменной в определении размера. НО: для достижения этой цели обычно требуется достаточно много времени и согласованных усилий. ТАК ... что мы делаем, прежде чем попасть туда?
Часы заданий определяют пропускную способность спринта. Согласно тем же «светилам», которые утверждают, что точки используются для долгосрочного прогнозирования, они также предлагают использовать часы заданий для определения пропускной способности спринта, а не точек. На мой взгляд, это хорошо, но я скажу, что когда я помог тренерским командам добиться «высокой производительности», их выровненные навыки усреднялись там, где они могли точно определить, что они могли бы выполнить в спринте, используя только очки истории. , Опять же, это может быть целью, к которой мы стремимся, но новые команды не готовы к этому. Таким образом, вы можете найти в одном спринте историю с двумя точками, на которую уложено 12 часов работы, а другую - с 25 часами работы. Ну так что ты делаешь? Некоторые люди, которых я называю «гибкими пуристами», заявят, что размер истории (в пунктах) не зависит от продолжительности. Другие не согласны. Прочитайте логику пункта № 3 и посмотрите, что вы думаете.
- Указание историй на основе консенсуса: применение объема, неизвестных, сложности, знаний
Таким образом, команды смотрят на часть работы и должны согласовать пункты, которые будут прокси для уровня усилий. Правильно? Если предположить, что все навыки равны, то консенсуса легко достичь. Но часто в командах есть парень, который является гуру Java, другой, который не так хорош в Java (возможно, он был на C # или .Net или Cobol и изучает Java). Итак, задача X для Боба очень проста. Для Джейн это сложнее.
Agile команды пытаются продвигать коллективное владение кодом и растут / расширяются знания. Поэтому мы обычно не назначаем истории людям на основе их опыта: мы предпочитаем, чтобы команды коллективно работали над историями и учились вместе. Это согласуется с концепцией «замедлиться, чтобы ускориться»: если мы потратим время, чтобы дать Джейн опыт работы с Java, хотя это может поначалу замедлить нас, позже у нас появятся более компетентные разработчики Java. Фактически, если у нас есть только ОДИН эксперт по Java, и каждый работает в своих областях, мы создаем ситуацию с несколькими потенциальными «точками отказа». Что происходит в спринте, когда 90% работы выполняется на Java, а Боб (наш эксперт по Java) болен или находится в отпуске? Расширяя навыки, мы устраняем потенциальные узкие места и снижаем риск. С этим в мыслях: Когда команда смотрит на историю, она должна иметь в виду несколько концепций при определении размера. Вы можете вспомнить акроним VUCK, чтобы запомнить это.
Объем: некоторые усилия довольно просты, но требуют большого объема повторяющихся задач. (У меня был парень, который должен был копировать и переформатировать более 50 таблиц, который сказал, что это 1 балл, потому что это было просто. Но поразмыслив, команда поняла, что хотя это было легко, это занимало много времени и было большое количество таблиц быть перемещены и оптимизированы. Таким образом, мы должны были скорректировать пункты из-за объема работы)
Неизвестные: иногда мы ДУМАЕМ, что знаем, что делать, но мы также идентифицируем некоторых неизвестных - они представляют РИСКИ . А это означает, что мы можем столкнуться с непредвиденными проблемами, которые нам необходимо решить, перепроектировать или попробовать другое решение.
Сложность: это довольно очевидно. Некоторые решения технически сложны. Мы точно знаем, что делать, но это требует технических знаний. Сложность также подразумевает некоторый риск, не так ли? Поэтому, даже если у нас у всех одинаковые навыки, техническая сложность подразумевает, что мы можем столкнуться с непредвиденными проблемами. Таким образом, мы могли бы сделать эту историю больше.
Знание: ДЕЙСТВИТЕЛЬНО ли мы знаем, что решаем? Иногда клиенты не совсем понимают, какое решение они хотят, и мы немного экспериментируем. Или, возможно, никто никогда не реализовывал это решение (новая технология никогда не использовалась раньше), и поэтому мы не знаем, чего не знаем.
На мой взгляд, каждое из этих соображений на самом деле является прокси на длительный срок. Легкая история, много объема? Это займет больше времени, или нам нужно разделить историю. Unknowns? Добавлен риск, исследования, эксперименты, это может занять больше времени или нам нужно разделить историю. Сложный? Добавлен риск, необходимо исправить ошибки, изменить дизайн и т. Д., Так что это может занять больше времени. Не знаете, есть ли у нас необходимые знания? У нас есть дополнительный риск, возможно, придется экспериментировать и т. Д., Поэтому это может занять больше времени ...
Видишь, куда это идет? Таким образом, в то время как концепция сюжетных точек отговаривает нас от размышлений о продолжительности при оценке, с другой стороны, было бы нелогично иметь 1-балльную историю, которую мы можем завершить за 4 часа, и другую 1-балльную историю, которая проста, но займет 2 недели.
- Высокопроизводительные команды устраняют бункеры и узкие места: поскольку команды пытаются выровнять всех участников, у них иногда бывают менее опытные участники, которые берут на себя новые задачи, или они объединяют свои коды для обмена знаниями, чтобы улучшить свою команду. Как упоминалось ранее, это является обязательным условием, если команда когда-либо достигнет настоящих высоких показателей.
Так что, если Джейн добровольно возьмет на себя эти усилия в Java, и это сделает усилие в 2 или 3 раза больше того же усилия, если Боб сделает это, что вы будете делать? Со временем мои команды остановились на подборе историй, основанных на уровне усилий (LOE) / VUCK для людей, работающих над этой работой. Бобу, командному гуру, не имеет смысла говорить «это 1», когда для Джейн это будет непросто и займет неделю, плюс потребуется некоторое время Боба для парного кодирования и проверки кода. Поэтому мы увеличили эти точки, чтобы отразить реальный LOE. В следующий раз, когда появилась похожая история, то, что было 8 для Джейн, ранее стало 5. В конце концов, все согласились, что это было легко 3. В тот момент мы знали, что растем как команда.