Подтвердить что ты не робот

TFS и Scrum - конфигурация передовой практики для областей, итераций, итераций отставания, итерации спринтера

Этот набор вопросов пытается найти лучший ответ на вопрос о том, как настроить области и итерации TFS 2012 с помощью Scrum 2.

Контекст: Мы использовали Team System с TFS 2005 и изначально создали Team Project для каждого продукта, который у нас есть, а затем использовали шаблон процесса MSF 4.2, который мы в конце концов немного изменили (добавили несколько полей к некоторым типам рабочих элементов).

Переходите к сегодняшнему дню, и теперь мы запускаем TFS 2012 и VS 2012. Принимая во внимание прошлый опыт и отзывы сообщества, мы перейдем к единому Team Project и Scrum 2.1, а затем будем использовать области для разделения продуктов и команд. Следующие ссылки хорошо читают этот подход:

Типичный макет, который мы планируем применять для областей, будет следующим образом:

-> Team Project (Area root)
 |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
    |---> Product A
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |   |---> Feature Area 3
    |
    |---> Product B
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |
    | (ETC)

 |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
    |---> Product C
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |
    | (ETC)

Концептуально мы довольны приведенным выше, так как это логично для нашей среды. Согласно вышеизложенному, у нас были бы команды: * "Команда клиента" * "Команда клиента B"

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

Вопрос 2) Предполагая, что указанная выше конфигурация команды в порядке, мы затем исправим, чтобы "сопоставить" каждую из вышеперечисленных областей с каждой командой, т.е. для команды "Клиентская команда" укажите область "Клиент" A "(и всех подзонах) в качестве областей, которыми должна обладать эта команда. Как насчет области по умолчанию, нормально ли установить корень из области" Клиент А" как по умолчанию для команды?

Что касается макета итераций, мы планируем нечто подобное:

-> Team Project (iteration root)
 |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
    |---> Product A
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |   |---> Sprint 3
    |   |
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |   |---> Sprint 3
    |   |
    |   |---> Release 3
    |
    |---> Product B
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   | 
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |
    | (ETC)

 |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
    |---> Product C
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |
    | (ETC)

Вопрос 3) Это кажется более сложным для правильной итерации, особенно когда речь заходит о TFS, показывающем отставание. В частности, для установки Tter Scrum 2 Iteration кажется, что я должен выбрать (флажок) только те итерации уровня листа, которые предназначены для планирования и последующей разработки. Поэтому, расширяя приведенный выше пример, возможно, что "Клиентская команда" будет доступна для начала работы над новым продуктом B в течение следующих 4 недель (предположим, 2-недельные спринты). Не могли бы мы тогда выбрать (флажок) "Sprint 1" и "Sprint 2" из Release 1? Я правильно понимаю/использую его?

Вопрос 4) Групповое отставание Выбор итерации - это может быть проблематично из-за нашей концепции наличия команд для каждого клиента, а не для каждого продукта, но, возможно, я просто понимаю, что это неправильно. В настройках TFS Areas вы указываете, какой итерацией является "Итерация отставания для команды". Моя проблема заключается в том, что наши PBI (Product Backlog Items) будут специфичными для продукта и не хотят смешивать их с PBI из другого продукта. Так что я пока не могу понять, каково будет влияние, если мы выберем область "Клиент А" как "Итерацию отставания для команды", а не "Продукт Б". Я думаю, что я запутался здесь - что было бы разумным выбором?

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

Я не знаю, имеет ли один командный проект и несколько областей для продуктов (как это обычно рекомендуется) усложняет проблему.

Вопрос 5) Веб-сайт TFS для веб-сайта. Для любой команды в разделе "РАБОТА | рабочие элементы | Общие запросы" есть предопределенные запросы в папке "Текущий спринт" (Заблокированные задачи; и т.д.), но кажется, что эти запросы жестко запрограммированы против "Root Project\Release 1\Sprint 1" - если они не будут автоматически обнаруживать, что является текущим спринтом, учитывая даты, определенные для итераций? Если нет, то какова наилучшая практика для поддержания этих запросов?

Знаете ли вы о каких-либо качественных TFS 2012 и Scrum 2, которые могут помочь решить эти вопросы или дать некоторые рекомендации по успешной настройке Scrum 2 TFS?

4b9b3361

Ответ 1

Я надеюсь, что вы нашли использование моего сообщения, и я также рекомендую вам взглянуть на One Team Project, чтобы управлять ими всеми и TFS vNext: настройка вашего проекта на наличие основного отставания и подгрупп.

Вот мои лучшие усилия, чтобы ответить на ваши вопросы:

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

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

Вопрос 2) Предполагая, что приведенная выше конфигурация команды в порядке, мы тогда исправим, чтобы "сопоставить" каждую из вышеперечисленных областей с каждой командой, т.е. для команды "Клиентская команда" укажите область "Клиент А" (и все суб- области) в качестве областей, которыми должна обладать эта команда. Как насчет области по умолчанию, нормально ли установить корень из области "Клиент А" как по умолчанию для команды?

Это действительно правильно и должно привести к созданию всех ваших рабочих элементов, когда эта команда будет выбрана с этими значениями по умолчанию. Многие организации также создают резервное копирование родительского или основного персонала, в котором создаются, упорядочиваются разные элементы, а затем делятся на соответствующие отставания команды как Грег Боер, владелец продукта для гибких инструментов планирования TFS, о которых сообщается в своем сообщении TFS vNext: настройка вашего проекта на наличие основного журнала и подгрупп.

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

-> Team Project (Iteration root)
 |—> Team Boundary (This could be one or more teams)
    |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
        |---> Product A
        |   |---> Release 1
        |   |---> Release 2
        |   |---> Release 3
        |
        |---> Product B
        |   |---> Release 1
        |   |---> Release 2
        |
        | (ETC)

    |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
        |---> Product C
        |   |---> Release 1
        |   |---> Release 2
        |
        | (ETC)

Пока он не является динамическим, это позволит включить этот сценарий. Тем не менее я сохранил бы свою структуру управления исходными файлами $\ TeamProject\Client A\ProductA и не отфильтровывал бы это. Это просто разделение процесса планирования и не должно чрезмерно перетекать в другие части вашего решения ALM.

Вопрос 3) Кажется более сложным получить правильные итерации, особенно когда речь заходит о TFS, показывающем отставание. В частности, для установки Tter Scrum 2 Iteration кажется, что я должен выбрать (флажок) только те итерации уровня листа, которые предназначены для планирования и последующей разработки. Поэтому, расширяя приведенный выше пример, возможно, что "Клиентская команда" будет доступна для начала работы над новым продуктом B в течение следующих 4 недель (предположим, 2-недельные спринты). Не могли бы мы тогда выбрать (флажок) "Sprint 1" и "Sprint 2" из Release 1? Я правильно понимаю/использую его?

Вы, но вы действительно смотрите на 3 Sprints, чтобы иметь действующее отставание как часть процесса Scrum. Я бы рекомендовал последовательно пронумеровать ваши спринты последовательно, чтобы в пользовательском интерфейсе вы не запутались в Sprint 2, когда вы также пометили Sprint 4, если он называется Sprint 1. Также приятно держать оценку уровня опыта текущей команды.

-> Team Project (Iteration root)
 |—> Team Boundary (This could be one or more teams)
    |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
        |---> Product A
        |   |---> Release 1
        |   |   |---> Sprint 1
        |   |   |---> Sprint 2
        |   |   |---> Sprint 3
        |   |---> Release 2
        |   |   |---> Sprint 4
        |   |   |---> Sprint 5
        |   |   |---> Sprint 6
        |   |---> Release 3
        |   |   |---> Sprint 7
        |   |   |---> Sprint 8
        |   |   |---> Sprint 9
        |
        | (ETC)

Но вы принципиально верны в отношении технического процесса и результата, которого он достигнет.

Вопрос 4) Выбор группы. Выбор Iteration. Это может быть проблематично из-за нашей концепции наличия команд на клиента, а не для каждого продукта, но, возможно, я просто понимаю, что это неправильно. В настройках TFS Areas вы указываете, какие итерации "Итерация отставания для команды". Моя проблема заключается в том, что наши PBI (Product Backlog Items) будут специфичными для продукта и не хотят смешивать их с PBI из другого продукта. Так что я пока не могу понять, каково будет влияние, если мы выберем область "Клиент А" как "Итерацию отставания для команды", а не "Продукт Б". Я думаю, что я запутался здесь - что было бы разумным выбором?

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

Все, что находится под областью, которую вы указываете как Team Default, по умолчанию включено в элементы, которые вы видите. Вы можете "щелкнуть правой кнопкой мыши" по умолчанию для группы и отменить "Включить подзоны", чтобы вы видели только верхний уровень, и это техническая технология, используемая для Greg Master Backlog. Однако я бы предположил, что вы хотите сохранить настройку "Включить под-области" для видимости и прозрачности в своей команде.

Я не знаю, имеет ли один командный проект и несколько областей для продуктов (как это обычно рекомендуется) усложняет проблему.

Он может. Некоторые организации предпочитают добавлять раскрывающийся список для "Команды" к своим рабочим элементам (например, шаблон Conchango/EMC) и использовать их в качестве определения своей команды, которые могут быть настроены в конфигурации Agile Planning Tools по умолчанию. Таким образом вам не нужно назначать команду в Area или Iteration, если вы на это нападаете. У меня нет никакой рекомендации ни в одном из способов без дополнительной информации о том, как настроена ваша организация.

Вопрос 5) Веб-сайт веб-доступа TFS. Для любой команды в разделе "РАБОТА | рабочие элементы | Общие запросы" есть предопределенные запросы в папке "Текущий спринт" (Заблокированные задачи, Спринт-бэклог и т.д.), но кажется что эти запросы жестко запрограммированы против "Root Project\Release 1\Sprint 1" - не должны ли они автоматически обнаруживать, что является текущим спринтом, учитывая даты, определенные против итераций? Если нет, то какова наилучшая практика для поддержания этих запросов?

Вариант 1: каждый Спринт потратит 2 минуты, чтобы изменить запросы

Вариант 2. Создайте инструмент для этого

Вариант 3: Сделайте дополнительную "Текущую" итерацию node в своем выпуске и переместите текущую активную итерацию ниже node. Затем установите для запросов "Under", что "Клиент A\Product A\Release 1\Current". Затем быстрее встраивается итерация, и все запросы работают. Затем вам нужно только изменить ток, но один раз для выпуска.

Знаете ли вы о каких-либо качественных TFS 2012 и Scrum 2, которые могут помочь решить эти вопросы или дать некоторые рекомендации по успешной настройке Scrum 2 TFS?

Я бы порекомендовал профессиональное обучение разработчиков Scrum с Scrum.org или/и вошел в контакт с консультантом ALM.

Ответ 2

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

Больше в своем блоге: http://nakedalm.com/team-foundation-server-2012-teams-without-areas/