Настройка отчета Burndown and Burn Rate в Team Foundation Server 2010

В вашем проекте по разработке программного обеспечения используется методология гибкой разработки Scrum? Если так, то для отслеживания статуса работ по итерации (спринту) вы используете так называемую “диаграмму сгорания задач” (Burndown chart). Если предыдущий вывод не соответствует действительности, то скорее всего вы сильно ошибаетесь по поводу методологии вашего проекта. Пользуетесь ли вы Microsoft Team Foundation Server (TFS) в качестве инструментальной поддержки планирования жизненного цикла приложения? Если на оба вопроса у вас ответ утвердительный, то эта заметка может оказаться полезной для вас.

Daily stand-up meeting или просто ежедневный Scrum мы проводим с помощью виртуальной доски задач на интерактивной доске, обмениваясь информацией по текущим и планируемым работам, а также связанным проблемам. См. подробное описание и видеоролик в заметке Ежедневный Scrum с использованием интерактивной доски. Обычно эта 15-минутная встреча завершается просмотром следующих отчетов:

  1. Статус выполнения автоматизированных модульных и интеграционных тестов Test Plan Progress: если запуск тестов на последних сборках завершился падением каких-то тестов, то кому-то из команды нужно будет оперативно разобраться с причиной и устранить проблему, пока мы все не убежали слишком далеко.
  2. И, пожалуй, самый важный отчет Burndown and Burn Rate: успеваем ли мы сделать все запланированное, а, быть может, мы запланировали мало работы и скоро нечего будет делать?

Но, к сожалению, в TFS 2010, а вернее на стыке со службой SQL Server Reporting Services (SSRS), которая используется для конструирования, размещения и доставки отчетов, есть досадная недоработка, омрачающая использование отчетов, ориентированных на просмотр статуса проекта по итерациям. Каждый раз, когда нужен отчет по статусу итерации, необходимо устанавливать корректные параметры итерации в качестве входных параметров построения соответствующего отчета. Если занимаешься этим каждое утро в течение продолжительного времени, приходишь к тому, что нужно создать отчет, предустановленный на текущую итерацию, которым можно пользоваться в течение всего спринта в стиле «открыл – и получил». Разумеется, отчеты в конструкторе SSRS можно легко настраивать, но вот настройку параметра итерации в отчетах SSRS разработчики TFS почему-то решили сделать особенно увлекательным приключением. К примеру, чтобы настроить отчет на текущую итерацию “XXX\Release X.X\Iteration 21 (26.11.2012-09.12.2012)”, мне нужно в соответствующий параметр отчета в конструкторе SSRS установить значение “[Work Item].[Iteration Hierarchy].[Iteration2].&[-5089597503145446076]&[-7727649729827232999]”: его легко угадать, не правда ли?

При поиске решения данной проблемы я находил такие, что даже бывшие программист и архитектор внутри меня содрогались от вопроса: “А проще никак нельзя?!” Тем не менее, я нашел, как мне кажется, самый простой вариант, не требующий сильных компетенций, наличия установленных средств разработки вроде полноценной Microsoft Visual Studio, ковыряния внутри баз данных SQL Server и прочих увлекательных действ, а потому может пригодиться любому менеджеру.

Примеры в описании ниже построены на использовании проекта со схемой MSF for Agile Software Development, который определяет стандартные отчеты, идущие по умолчанию в комплекте проекта TFS. Тем не менее, описанный принцип может быть распространен и на иные отчеты.

Итак, запускаем Microsoft Team Explorer 2010, в панели Team Explorer подключаемся к проекту TFS.

Прежде всего нам нужно создать копию стандартного отчета, в которой мы настроим параметры, соответствующие текущей итерации. В дереве проекта выбираем необходимый нам шаблон отчета Reports / Project Management / Burndown and Burn Rate и создаем копию с помощью команд Copy и Paste в контекстном меню. В результате получаем отчет Copy of Burndown and Burn Rate, которому можно теперь дать правильное имя, к примеру, Burndown and Burn Rate Iteration 21 с помощью команды Rename в контекстном меню.

team_explorer

Теперь нужно настроить необходимые параметры отчета. Открываем отчет Burndown and Burn Rate Iteration 21 двойным кликом: по умолчанию отчет показывает статус по рабочим элементам типа Task с периодом в месяц до текущей даты.

burndown

Настраиваем параметры текущей итерации: двухнедельная итерация начинается с 26 ноября (Iteration Start (Date)) и заканчивается 7 декабря (Iteration End (Date)), нужно учитывать только рабочие элементы на текущей итерации (Iteration), а также хочется видеть не только идеальный, но и фактический тренд изменений (Trend Line) – по завершению нажимаем кнопку Просмотр отчета и получаем то, чего хотели.

burndown1

К сожалению, это еще не все. Выполненные настройки параметров отчета не сохраняться, то есть в следующий раз придется снова выполнить этот мартышкин труд. Вот здесь и начинается самая магическая часть наших танцев с бубном! Нажимаем на панели инструментов оранжевую кнопку Экспортировать в поток данных, сохраняем на диск и открываем с помощью программы Блокнот полученный файл “Burndown and Burn Rate Iteration 21.atomsvc”. В полученном страшного вида XML-файле нужно найти последовательность символов после “IterationParam=” и до “&”, скопировать и вставить их, к примеру, в этот же файл поверх всего содержимого для последующей правки.

atomsvc

Теперь нужно заменить символы HTML-кодирования на исходные, воспользуясь сочетанием клавиш Ctrl+H:

  • “%5B” – “[”;
  • “%5D” – “]”;
  • “%20” – “ ” (пробел);
  • “%26” – “&”

– чтобы получить заветную строчку “[Work Item].[Iteration Hierarchy].[Iteration2].&[-5089597503145446076]&[-7727649729827232999]”.

Все, дело за малым: настроить параметры отчета в SSRS. В панели Team Explorer в дереве выбираем Reports, вызываем контекстное меню и выбираем пункт Show Report Site. В открывшемся диспетчере отчетов находим отчет Burndown and Burn Rate Iteration 21, вызываем его контекстное меню и выбираем пункт Управление. В открывшемся окне настройки отчета переходим на закладку Параметры, где указываем значения параметров StartDateParam, EndDateParam, IterationParam (вставляем сюда ту страшную строчку, которую мы получили ранее) и TrendLineParam – по завершению нажимаем кнопку Применить.

Все, возвращаемся в Team Explorer: теперь 2 недели подряд можно просто щелкать по подготовленному один раз отчету, сразу же получая картину по текущей итерации.

burndown2

Причина написания заметки на самом деле в следующем. Я решил на недельку во время отпуска директора и сам в отпуск улизнуть, но обнаружил, что сакраментальными знаниями по настройке критичного для работы отчета Burndown в моей команде никто не обладает. А вот теперь есть инструкция. Тем не менее, надеюсь, что эта заметка поможет и вам.

Реклама

3 thoughts on “Настройка отчета Burndown and Burn Rate в Team Foundation Server 2010

  1. Когда-то раньше я пользовал более простой способ замены escape-последовательностей на «нормальные» символы. И способ вполне работает до сих пор.

    Пуск — Выполнить.

    Пишем:

    mailto:billgates@microsoft.com?subject=%5BWork%20Item%5D.%5BIteration%20Hierarchy%5D.%5BIteration2%5D.%26%5B4211293141921679943%5D%26%5B-9048698078703010714%5D

    Нажимаем OK. Открывается окно создания сообщения в почтовом клиенте по умолчанию, в поле Subject указан раскодированный текст:

    [Work Item].[Iteration Hierarchy].[Iteration2].&[4211293141921679943]&[-9048698078703010714]

    Нравится

      • Я не уверен, что это корректный e-mail 🙂 Лучше писать Балмеру, я слышал, что он почту читает лично, может даже ответит 🙂

        P.S. Уведомление о комментарии я почему-то не получил, хотя и подписывался 😦

        Нравится

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s