Практическое занятие: Гибкое управление проектами в Team Foundation Server 11

Общие сведения

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

Необходимые условия

Для этого практического занятия вам понадобится виртуальная машина Visual Studio 11, предоставляемая компанией Microsoft. Дополнительная информация о приобретении и использовании этой виртуальной машины представлена на сайте здесь.

Информация о сценарии Fabrikam Fiber

В этой группе практических занятий для более удобного изучения сценариев упоминается вымышленная компания Fabrikam Fiber, которая предоставляет доступ к кабельному телевидению и оказывает сопутствующие услуги в США. Компания быстро развивается. С целью масштабирования своего веб-сайта для клиентов она использует приложение Windows Azure, чтобы предоставить конечным пользователям возможность самообслуживания и отслеживания доступности технических специалистов. В компании используется также локальное приложение ASP.NET MVC для повышения эффективности работы представителей отдела обслуживания клиентов. Приложение позволяет управлять процессом выполнения заказов клиентов.

В рамках этой группы практических занятий вы примете участие в ряде сценариев, в которые вовлечены разработчики и тестировщики компании Fabrikam Fiber. Рабочая группа из 8–10 специалистов решила использовать инструменты управления жизненным циклом приложений Visual Studio для управления исходным кодом, запуска сборок, проверки веб-сайтов, а также планирования и мониторинга процесса реализации проекта.

Упражнения

Данное практическое занятие включает следующие упражнения:

  1. Журнал невыполненных работ по продукту и спринты.
  2. Доска задач.

Примерная продолжительность практического занятия: 60 минут.


Упражнение 1. Журнал невыполненных работ по продукту и спринты

В ходе выполнения этого упражнения вы научитесь использовать Team Foundation Server для управления журналом невыполненных работ по продукту, создания рабочих элементов и задач в рамках этих элементов, а также распределения задач между членами рабочей группы. Новые функции ведения журнала невыполненных работ помогут вам быстро выполнить все операции с учетом ресурса вашей рабочей группы.

Примечание. В этом примере рабочая группа использует шаблон процесса Scrum. Однако продемонстрированные основные функции применимы ко всем шаблонам процессов.

  1. Войдите в систему с логином Julia. Для всех учетных записей используется пароль P2ssw0rd.
  2. Запустите Internet Explorer на панели задач и нажмите кнопку TFS Web Access (Веб-доступ к Team Foundation Server) в меню Favorites (Избранное) в верхней части экрана.

Рисунок 1. Запуск сайта Team Web Access

Примечание. Ссылка Web Access (Веб-доступ) также присутствует в окне Team Explorer (Командный обозреватель) платформы VisualStudio.

  1. Представление Home(Домашняя страница) для рабочей группы Fabrikam Fiber Web Team является высокоуровневым обзором текущей итерации (Sprint 3). Он включает в себя данные о нагрузке на рабочую группу в сравнении с ее ресурсом, индикатор выполнения задач и Team Favorites (Избранное рабочей группы) — настраиваемый набор очередей рабочих элементов, определения сборок и путь контроля версий. Кроме того, присутствуют ссылки для быстрого создания новых рабочих элементов и ошибок, загрузки журнала невыполненных работ, запуска панели задач, инициирования запросов на обратную связь и так далее.

Рисунок 2. Домашняя страница рабочей группы Fabrikam Fiber Web Team

Примечание. Team Favorites (Избранное рабочей группы) можно добавлять или удалять с портала Team Web Access. Например, перейдите на вкладку Build (Сборка) и добавьте определение сборки в избранное рабочей группы. Кроме того, очереди рабочих элементов, добавленные в избранное рабочей группы, можно редактировать в Visual Studio.

  1. В секции Members (Члены) перечислены члены группы. Рабочие группы впервые появились в Team Foundation Server 11. Они упрощают управление, присвоение и отслеживание выполнения задач. Эта рабочая группа отвечает за все технические работы, связанные с присутствием компании Fabrikam Fiber в Интернете.
  2. Щелкните выпадающий список команд в правом верхнем углу портала. Вы увидите, что здесь присутствует один проект и одна рабочая группа. Нажмите кнопку ESCAPE, чтобы выбранной осталась текущая рабочая группа.

Рисунок 3. Выбор рабочей группы

Примечание. Каждой рабочей группе может соответствовать собственное «избранное», собственный ресурс работоспособности и даже свои рабочие элементы. Определяющим фактором того, где будет отображаться рабочий элемент, является содержимое поля Area (Область).

  1. Чтобы открыть журнал невыполненных работ, щелкните ссылку View backlog (Просмотр журнала невыполненных работ), расположенную под секцией Activities (Действия).

Рисунок 4. Переход к журналу невыполненных работ

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

Рисунок 5. Вид журнала невыполненных работ по продукту

Примечание. Текущая итерация, показанная в дереве в левой части этого экрана, представляет собой Sprint 3. Team Foundation Server использует текущую дату и время для определения текущей итерации. В виртуальной машине, с которой вы работаете в рамках данного практического занятия, эта дата жестко установлена на 15 февраля 2012 года. Эта дата устанавливается после каждой загрузки виртуальной машины.

Если ваша виртуальная машина работает уже в течение некоторого времени, дата может иметь значение, отличное от 15 февраля 2012 года. Если это так, необходимо вручную установить дату и время на виртуальной машине на 8:00 15 февраля 2012 года. Однако если вы изменяли рабочие элементы или настройки системы управления версиями в Team Foundation Server, рекомендуется восстановить исходное состояние виртуальной машины, прежде чем приступить к этому практическому занятию.

  1. Представьте себе, что вице-президент Fabrikam Fiber дал задание создать новое пользовательское описание функциональности для портала обслуживания клиентов. Это новое пользовательское описание функциональности позволит клиентам просматривать информацию об отказах в обслуживании, связанных с погодой. В разделе Contents (Содержимое) журнала невыполненных работ по продукту выберите последнюю строку и создайте новый элемент журнала под названием Customer should see weather-related outages on portal (Клиент должен получить возможность просматривать информацию об отказах в обслуживании, связанных с погодой).

Рисунок 6. Добавление нового пользовательского описания функциональности в журнал невыполненных работ по продукту

Примечание. Новые рабочие элементы, как правило, вставляются над выбранной позицией. Исключением является ситуация, когда выбран последний пункт. В этом случае новый элемент станет последним в списке.

  1. Нажмите кнопку Add(Добавить), для добавления нового пользовательского описания функциональности в журнал невыполненных работ.

Рисунок 7. Добавление нового пользовательского описания функциональности в журнал невыполненных работ по продукту

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

Рисунок 8. Повышение приоритета нового пользовательского описания функциональности

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

Рисунок 9

  1. Редактирование нового пользовательского описания функциональностиПрисвойте новый элемент сотруднику Brian Keller(владелец продукта для Fabrikam Fiber Web Team), укажите Approved(Утверждено) в поле State (Состояние). Для первоначальной оценки требуемых трудозатрат укажите «8» и нажмите кнопку Save and Close(Сохранить и закрыть).

Рисунок 10. Присвоение нового пользовательского описания функциональности и оценка требуемых трудозатрат

Примечание. Каждая рабочая группа может внести в поле Effort (Усилия) любое значение, которое посчитает нужным. Можно использовать единицы измерения пунктов пользовательского описания, часы, дни или требуемое количество ресурсов. Дело в том, что это относительная величина по отношению к другим рабочим элементам. Разбиение работ по часам будет произведено позже.

 

Примечание. Популярный подход к планированию, позволяющий преодолеть шаблонное мышление и учитывающий вклад всех членов рабочей группы, известен как «Покер планирования» (Planning Poker). Дополнительная информация: http://en.wikipedia.org/wiki/Planning_poker

  1. Назначьте новое пользовательское описание функциональности к текущей итерации (Sprint 3), перетащив его, как показано на рисунке ниже.

Рисунок 11. Назначение нового пользовательского описания функциональности к текущей итерации

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

  1. Обратите внимание на поле Iteration Path (Путь итерации) и убедитесь, что новое пользовательское описание функциональности отнесено к Sprint 3, как и планировалось. Данное пользовательское описание функциональности будет отображаться в журнале невыполненных работ по продукту до тех пор, пока рабочая группа не подтвердит, что берется за решение поставленных задач.

Рисунок 12. Назначение нового пользовательского описания функциональности к текущей итерации

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

Рисунок 13. Расположение графика скорости разработки

  1. Во время первого спринта (Sprint 1) рабочая группа выполнила работу, эквивалентную 35 баллам описания. Второй спринт (Sprint 2) оказался несколько более продуктивным — 42 балла описания. В рамках текущей итерации (Sprint 3) выполнено 18 баллов описания, а 23 еще предстоит выполнить. Напоминаем, что балл описания — это относительная единица, утвержденная и применяемая рабочей группой для оценки трудозатрат.

Рисунок 14. График скорости разработки, отображающий ход решения поставленных в пользовательских описаниях задач

  1. Нажмите клавишу ESCAPE на клавиатуре, чтобы закрыть график.
  2. Журнал невыполненных работ по продукту также содержит простой инструмент прогнозирования, который можно активировать и получить приблизительное представление об ожидаемых результатах будущих итераций. Щелкните ссылку Forecast (Прогноз), чтобы активировать соответствующий инструмент.

Рисунок 15. Активация инструмента прогнозирования

  1. Обратите внимание, что прогноз в настоящее время рассчитывается для скорости 10. Это означает, что каждая итерация в будущем будет оцениваться примерно в 10 баллов описания. Как видите, прогноз для Sprint 4 включает 11 баллов описания. Записи в журнале невыполненных работ, для которых не установлено значение в поле Effort (Усилия), считаются нулевыми и не будут учитываться в процессе прогнозирования. Рекомендуется перед запуском инструмента заполнить соответствующие поля для всех элементов.

Рисунок 16. Результат прогнозирования со скоростью «10»

Примечание.Пользовательское описание функциональности, которое мы только что создали и присвоили спринту Sprint 3, размещено вверху списка. Оно НЕ является частью спринта Sprint 4, как может показаться на первый взгляд. Спринт Sprint 4 подчеркнут, к нему относятся вторая и третья записи.

  1. График скорости разработки показывает, что такая «звездная» рабочая группа способна на гораздо большие достижения. Поэтому щелкните цифру «10», введите «35» и нажмите клавишу Enter.

Рисунок 17. Изменение параметра «скорость разработки», которое используется в целях прогнозирования

  1. Мы установили более реалистичное значение для скорости разработки. Теперь мы можем получить представление о том, какой объем работы команда может выполнить в течение оставшихся итераций.

Рисунок 18. Изменение параметра «скорость разработки», которое используется в целях прогнозирования

  1. Журнал невыполненных работ по продукту также группирует итерации в соответствии с указанной для них датой (прошедшие, текущие и будущие итерации). Щелкните ссылку Sprint 3, чтобы разбить рабочий элемент на составляющие и распределить задачи между членами рабочей группы.

Рисунок 19. Переход к текущему журналу невыполненных работ

  1. В журнале для спринта Sprint 3 сверните два пользовательских описания, которые отмечены как Done (Выполненные), нажав на маленькие треугольники слева от соответствующих названий.

Рисунок 20. Сворачиваем пользовательские описания, работы по которым завершены

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

Рисунок 21. Представление текущей итерации в журнале невыполненных работ

  1. Сразу бросается в глаза, что работы в рамках текущей итерации выполняются с 6 по 17 февраля и что осталось три рабочих дня. Справа от диапазона дат для текущей итерации есть небольшой график, который отображает оставшийся объем работы.

Рисунок 22. График, показывающий оставшийся объем работы

  1. Щелкните график, чтобы увеличить его. Здесь показан в графическом виде оставшийся объем работы для спринта. На первый взгляд может показаться, что команда не выполнит порученную работу вовремя. Но имейте в виду, что некоторые работы будут завершены до конца текущего дня (на данный момент никто не отчитался).

Рисунок 23. Увеличенный график, показывающий оставшийся объем работы

  1. Нажмите клавишу ESCAPE на клавиатуре, чтобы закрыть график.
  2. Обратите внимание на панель Work (Работа). Эта панель показывает, насколько мы близки к предельной работоспособности в рамках текущей итерации, с учетом общего объема оставшейся работы в этой итерации и общего ресурса работоспособности рабочей группы. На данный момент все в порядке, однако мы еще не распределили задачи для нового пользовательского описания функциональности.

Рисунок 24. Общий объем оставшейся работы в сравнении с ресурсом работоспособности рабочей группы

  1. Перейдите на вкладку Capacity (Ресурс работоспособности), чтобы получить более подробную информацию о ресурсе рабочей группы.

Рисунок 25. Местоположение ссылки Capacity (Ресурс работоспособности)

  1. Представление Capacity (Ресурс работоспособности) позволяет указать количество часов в день, которые каждый член рабочей группы будет отводить на работу над этим проектом, а также количество выходных дней для всей рабочей группы и каждого отдельного сотрудника. Указанные параметры ресурса работоспособности относятся к текущей итерации. Если это необходимо, в колонке Activity (Деятельность) можно указать специализацию каждого члена рабочей группы. Когда задачи разбиты по видам деятельности, вы сможете получить более детальное представление о ресурсе работоспособности своей рабочей группы и оценить, например, есть ли у вас достаточное количество делопроизводителей для данной итерации. Пока оставим эти настройки без изменений.

Рисунок 26. Параметры работоспособности рабочей группы

  1. Вернитесь к представлению Contents (Содержимое) в текущем журнале невыполненных работ по продукту.

Рисунок 27. Местоположение вкладки Contents (Содержимое)

  1. Представьте себе, что мы собрались как рабочая группа для обсуждения нового пользовательского описания функциональности и определения перечня задач, которые предстоит решить. Дважды щелкнитеновый рабочий элемент. В поле State (Статус) вместо Approved (Утверждено) выберите Committed(Подтверждено) и нажмите кнопку Save and Close(Сохранить и закрыть). Как только рабочая группа подтвердит работу, задача исчезнет из журнала невыполненных работ по продукту.

Рисунок 28. Подтверждение нового пользовательского описания функциональности

  1. Нажмите кнопку «+» слева от пользовательского описания, чтобы добавить новую задачу. Это будет дочерняя задача для пользовательского описания. Она используется для детализации подлежащих выполнению задач.

Рисунок 29. Местоположение кнопки, предназначенной для создания новых задач

  1. В области заголовка введите название для новой задачи — ConsumeOData feed for weather alerts(Получение уведомлений об опасных погодных условиях от OData). В качестве исполнителя укажите сотрудника Cameron Skinner. В поле Remaining Work (Оставшийся объем работы) укажите 5 часов. Нажмите кнопку Save and Close (Сохранить и закрыть).

Рисунок 30. Создание новой задачи

  1. Нажмите кнопку «+ слева от пользовательского описания функциональности, чтобы создать еще одну новую задачу.
  2. В области заголовка введите название для новой задачи — Create UI for alerts (Создать пользовательский интерфейс для уведомлений). В качестве исполнителя укажите сотрудника Annie Herriman. В поле Remaining Work (Оставшийся объем работы) укажите 3часа. Нажмите кнопку Save and Close(Сохранить и закрыть).

Рисунок 31. Создание новой задачи

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

Рисунок 32. Текущая итерация в журнале невыполненных работ по продукту характеризуется как неисполнимая

  1. По всей видимости, последнее пользовательское описание функциональности в этом спринте является масштабируемым, и работы еще не начались. Поэтому его можно перенести на будущие итерации, чтобы рабочая группа могла вернуться к нормальному режиму работы, учитывая дополнительную нагрузку. Перетащите последнее пользовательское описание функциональности под названием Technician can edit customer contact details on Windows Phone (Специалист может редактировать контактную информацию клиента в Windows Phone) в спринт Sprint 4 на левой стороне окна.

Рисунок 33. Перетаскивайте работы, чтобы переназначить их из одной итерации в другую

  1. Снова обратите внимание на общую панель Work (Работа). Убедитесь, что она стала зеленой. Это означает, что мы не превышаем предельную работоспособность текущей рабочей группы. Только не говорите об этом вице-президенту, иначе он обязательно даст нам дополнительное задание!

Рисунок 34. Оставшийся объем работы для текущей итерации в пределах нормы

Упражнение 2. Доска задач

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

  1. Мы закончили детализацию работ и распределение заданий между членами рабочей группы. Теперь рассмотрим доску задач, которая будет использоваться в процессе обсуждения в рабочей группе, посвященного ходу и результатам работы. Перейдите на вкладку Board (Доска) на домашней странице Fabrikam Fiber Web Team.

Рисунок 35. Местоположение ссылки на доску задач

  1. По умолчанию на доске задач представлены все задачи текущей итерации, сгруппированные по позициям журнала невыполненных работ по продукту и текущему состоянию. Перетащите задачу Consume OData feed for weather alerts(Получение уведомлений об опасных погодных условиях от OData) в столбец In Progress(Выполняется).

Рисунок 36. Перетаскивайте задачи на доске задач для их перемещения между состояниями

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

  1. Дважды щелкните задачу Consume OData feed for weather alerts(Получение уведомлений об опасных погодных условиях от OData) и измените значение параметра Remaining Work(Оставшийся объем работы) на 1. Это имитирует ситуацию, в которой сотрудник Cameron в течение дня уделил решению данной задачи 4 часа. Затем нажмите кнопку Save and Close (Сохранить и закрыть).

Рисунок 37. Редактирование задачи

  1. Перетащите задачу Create UI for alerts (Создать пользовательский интерфейс для уведомлений) в столбец In Progress (Выполняется) и измените значение в поле Remaining Work (Оставшийся объем работы) на 1. Нажмите кнопку Save and Close (Сохранить и закрыть). Две новые приоритетные задачи выполняются в настоящее время. Как ожидается, работы будут окончены через 2 часа.

Рисунок 38. Перетаскивайте задачи на доске задач для их перемещения между состояниями

  1. Сверните пользовательские описания, для которых выполнены все задачи, нажав на маленькие треугольники слева от соответствующих заголовков.

Рисунок 39. Сворачиваем группы пользовательских описаний, работы по которым завершены

  1. Перетащите задание Review new feature with technician early adopters (Оценка новой функции специалистом, выступающим в роли раннего последователя), выданное сотруднику Julia, в столбец Done (Выполнено), чтобы зарегистрировать завершение работы. Обратите внимание: после выполнения этой операции объем оставшейся работы был автоматически обнулен.

Рисунок 40. Перетаскивайте задачи на доске задач для их перемещения между состояниями

  1. Обратите внимание: диаграмма, показывающая оставшийся объем работ, размещенная в правом верхнем углу, была автоматически обновлена сразу после внесения вами изменений. Щелкните по диаграмме. Вы увидите, что до завершения работ в рамках текущей итерации осталось менее 20 часов.

Рисунок 41. Диаграмма, показывающая оставшийся объем работ

  1. Закрыть диаграмму, показывающую оставшийся объем работ.
  2. Каждая строка представляет собой работу и отображает количество оставшихся часов. Это суммарный индикатор оставшейся работы для всех дочерних задач. Кроме того, каждый столбец, отображающий состояние, показывает оставшийся объем работы. Это дает вам представление о масштабах задач, решаемых рабочей группой в данный момент.

Рисунок 42. Доска задач, отображающая объем работ в часах

  1. Доска задач также предоставляет сводные данные о членах рабочей группы. Щелкните ссылку Team Members (Члены рабочей группы), расположенную в верхней части доски задач.

Рисунок 43. Местоположение ссылки Team Members (Члены рабочей группы), для группировки задач по членам рабочей группы

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

Рисунок 44. Группировка задач по членам рабочей группы на доске задач

Свои отзывы и предложения вы можете отправить по электронной почте: VSKitFdbk@Microsoft.com

© 2012 г. Корпорация Microsoft. Все права защищены.