Я и моя команда внедряем Scrum в наш проект. Мы находимся на этапе разделения пользовательских историй на задачи для каждого разработчика.
Я понимаю концепцию Slicing the Cake , где пользовательская история представляет собой вертикальный срез, который пересекает все технологические уровни (т. е. начиная с пользовательского интерфейса и заканчивая промежуточным программным обеспечением и базой данных).
Однако, когда я делю свою вертикальную пользовательскую историю на задачи, она делится на горизонтальные слои. Таким образом, я назначаю задачу горизонтального уровня для каждого разработчика: один разработчик будет работать над частью истории пользовательского интерфейса, другой над промежуточным программным обеспечением и третий над базой данных. Таким образом, поступая так, я чувствую, что нарушаю концепцию вертикальной нарезки.
Краткий ответ: задача состоит в том, чтобы команда организовала свою работу так, как она считает нужным. Если это означает разделение на внешний интерфейс, промежуточное программное обеспечение и базу данных, это нормально. На самом деле это нормальная часть прогресса для кросс-функциональных команд.
Тот факт, что мы объединили людей со всеми навыками в одну команду, не означает, что они вдруг овладеют этими другими навыками. Таким образом, они начинают с такой горизонтальной разбивки и, вероятно, по-прежнему изолируют определенные типы задач от человека, наиболее квалифицированного в этом деле. Обычно довольно рано, работая таким образом, команда оказывается в ситуации, когда слишком много задач типа Х для члена команды, который обычно делает это, и кто-то другой должен вмешаться и помочь - обычно с некоторыми из более легких задач. Со временем люди приобретут более широкий набор навыков и начнут замечать места, где разбиение задач на горизонтальные уровни больше не выглядит лучшим способом.
Большая ловушка, на которую следует обратить внимание, заключается в том, что если команда окажется в такой ситуации и вместо того, чтобы вмешаться, чтобы помочь друг другу, остальная часть команды перейдет к новым элементам невыполненной работы, и вы получите кучу элементов невыполненной работы, которые просто имеет один тип задачи. Чаще всего я вижу это с задачами тестирования, но иногда это также проявляется и в других типах.
Вместе со своими командами я обнаружил, что труднее всего правильно разделить истории, а не задачи, и я считаю этот ресурс бесценным:
https://agileforall.com/resources/how-to-split-a-user-story/
Когда у вас есть отличные небольшие и независимые истории, разбивать эти истории на технические задачи совершенно необязательно, и некоторым разработчикам это нравится, а другим это не нужно.
Суть, которую я пытаюсь донести, заключается в том, чтобы истории были небольшими и меньше беспокоились о технических задачах. Вам, конечно же, не нужно назначать технические задачи разным разработчикам.
Разработчики должны создавать «истории» по отдельности или в парах, а затем выяснять, что нужно сделать, и хотят ли они фиксировать вещи по мере выполнения задач.
Вертикальные срезы разбиваются на задачи , специфичные для каждого домена и, естественно, горизонтальные. Вы правильно используете эту гибкую концепцию — БУМ!
Единственное, что я бы посоветовал, это позволить команде выбирать, над какими задачами ей работать. Это поможет вашей команде стать более знающей, более эффективной, более удовлетворенной и, безусловно, более гибкой.
Тодд А. Джейкобс
надер
Тодд А. Джейкобс