Добавление типа рабочего элемента в невыполненную работу и доску

Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г. | TFS 2018

Важно!

Эта статья относится к настройке проекта для моделей размещенных XML и локальных xml-процессов. Сведения о модели процесса наследования см. в статье Настройка невыполненных работ или досок для процесса. Общие сведения о моделях процессов см. в статье Настройка процесса отслеживания работы.

Чтобы удовлетворить выбранные бизнес-процессы, вашей команде может потребоваться отслеживать дополнительные типы рабочих элементов (WIT) в качестве требований или задач. Таким образом, вы можете добавить их и отслеживать в продуктах и невыполненных работах по спринту или канбан-досках и задачах.

Например, может потребоваться отслеживать различные типы требований в зависимости от целевого клиента или различные типы ошибок в зависимости от источника. Здесь команда Fabrikam Fibre добавила WIT приложения службы для отслеживания работы, которая поддерживает команду обслуживания клиентов.

Добавьте настраиваемую функцию WIT, например Приложение службы, в категорию требований, чтобы отслеживать ее как требование.

Совет

Если все, что вы хотите сделать, — это добавить ошибки в невыполненную работу и доски, см. статью Отображение ошибок в невыполненных работах и досках , чтобы сделать выбор вашей команды. Если вы хотите добавить еще один WIT и невыполненную работу портфеля, см. статью Добавление уровня невыполненной работы портфеля.

Чтобы добавить WIT для отслеживания требований, задач или ошибок, выполните следующие действия:

Примечание

Рекомендуется добавить WIT в одну и только одну из следующих категорий: Категория требований, Категория задач или Категория ошибок. Система не позволяет добавить один и тот же WIT в категорию требований и категорию задач. Функции WIT, добавленные в категорию ошибок, будут следовать за поведением ошибок, заданным для команды.

Последовательность настройки

Последовательность настройки модели размещенного XML-процесса

Примечание

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

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

Последовательность настройки локальной модели XML-процессов

Сначала вы экспортируете файлы определений отслеживания работы, обновляете их, а затем импортируете в проект.

Добавление WIT для отслеживания как требования

ВИТ, добавленные в категорию требований, отображаются в журнале невыполненной работы по продукту и канбан-доске. Необходимо убедиться, что определение WIT содержит обязательные поля для поддержки средств гибкого планирования.

  1. Экспортируйте процесс (размещенный XML- файл) или файлы определения (локальный XML- файл), как указано в разделе Первые шаги.

  2. Измените определение WIT для поддержки средств планирования.

    Настройка или синтаксис для добавления или обновления

    Поле Stack Rank (Agile, CMMI)

    <FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">     
    <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage. 
    </HELPTEXT>      
    </FIELD> 
    

    Поле Приоритет невыполненной работы (Scrum)

    <FIELD name="Backlog Priority" refname="Microsoft.VSTS.Common.BacklogPriority" type="Double" reportable="detail" /> 
    

    Поле "Область значений"

    <FIELD name="Value Area" refname="Microsoft.VSTS.Common.ValueArea" type="String"> 
    <REQUIRED />   
    <ALLOWEDVALUES>    
    <LISTITEM value="Architectural" />   
    <LISTITEM value="Business"/>   
    </ALLOWEDVALUES>   
    <DEFAULT from="value" value="Business" /> 
    <HELPTEXT>Business = delivers value to a user or another system; Architectural = work to support other stories or components  
    </HELPTEXT>   
    </FIELD>
    

    Поле Тип требования (CMMI)

    <FIELD name="Requirement Type" refname="Microsoft.VSTS.CMMI.RequirementType" type="String" reportable="dimension">  
    <REQUIRED />  
    <ALLOWEDVALUES>  
    <LISTITEM value="Scenario" />  
    <LISTITEM value="Quality of Service" />  
    <LISTITEM value="Functional" /> 
    <LISTITEM value="Operational" />  
    <LISTITEM value="Interface" />  
    <LISTITEM value="Security" />  
    <LISTITEM value="Safety" />  
    <LISTITEM value="Business Objective" />  
    <LISTITEM value="Feature" />  
    </ALLOWEDVALUES> 
    <DEFAULT from="value" value="Functional" />  
    </FIELD>
    

    WORKFLOW измените WORKFLOW или проверьте раздел следующим образом:

    • Agile, User Story: добавление переходов от Active к Removed и Resolved к Removed; удаление правил, заполняющих Activated By поля и Activated Date , когда состояние=Resolved
    • Scrum, элемент невыполненной работы по продукту: добавление перехода с Committed на Removed
      Если вы настроили WORKFLOW, обязательно определите необходимые сопоставления состояния с метасостояниями в разделе ProcessConfigurationRequirementBacklog.

    FORM Добавьте или убедитесь, что в раздел добавлены FORM следующие поля:

    • Гибкой:
    <Control FieldName="Microsoft.VSTS.Scheduling.StoryPoints" Type="FieldControl" Label="Story Points" LabelPosition="Left" />  
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />  
    
    • CMMI:
    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Size" Label="Size" LabelPosition="Left" />
    <Control Type="FieldControl" FieldName="Microsoft.VSTS.CMMI.RequirementType" Label="Type" LabelPosition="Left" /> 
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />  
    
    • Scrum:
    <Control FieldName="Microsoft.VSTS.Scheduling.Effort" Type="FieldControl" Label="Effort" LabelPosition="Left" />  
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />  
    
  3. Измените определение категорий. Добавьте WIT в категорию Требования. Здесь мы добавим приложение службы.

    <CATEGORY name="Requirement Category" refname="Microsoft.RequirementCategory">
       <DEFAULTWORKITEMTYPE name="User Story" />
       <WORKITEMTYPE name="Service App" />
    </CATEGORY>
    
  4. Обновите или проверьте определение ProcessConfiguration: RequirementBacklog раздел для добавляемого WIT. В частности, убедитесь, что выполняются следующие условия:

    • Сопоставьте начало каждого состояния рабочего процесса type="Proposed"
    • Сопоставьте каждое промежуточное состояние рабочего процесса, которое нужно отобразить на доске Канбан type="InProgress"
    • Сопоставьте окончание каждого состояния рабочего процесса type="Complete"
    • Убедитесь, что у вас есть только одно состояние, сопоставленное с type="Complete"
      Например, добавьте состояние ожидающего рабочего процесса:
    <States>    
         <State value="New" type="Proposed" />  
         <State value="Active" type="InProgress" />  
         <State value="Pending" type="InProgress" />  
         <State value="Resolved" type="InProgress" />  
         <State value="Closed" type="Complete" />  
    </States>   
    
  5. Добавьте определение цвета WIT в раздел ProcessConfiguration WorkItemColors . Например:

    <WorkItemColor primary="FF33CC33" secondary="FFD6F5D6" name="Service App" />
    
  6. Обновите проект:

Добавление WIT для отслеживания задачи

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

  1. Экспортируйте процесс (размещенный XML- файл) или файлы определения (локальный XML- файл), как указано в разделе Первые шаги.

  2. Измените определение WIT для поддержки средств планирования.

    Настройка или синтаксис для добавления или обновления

    Поле Stack Rank (Agile, CMMI)

    <FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">  
    <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.  
    </HELPTEXT>   
    </FIELD> 
    

    ** Поле Приоритет невыполненной работы** (Scrum)

    <FIELD name="Backlog Priority" refname="Microsoft.VSTS.Common.BacklogPriority" type="Double" reportable="detail" />   
    

    Поле действия (Agile, Scrum)

    <FIELD name="Activity" refname="Microsoft.VSTS.Common.Activity" type="String" reportable="dimension"> 
    <HELPTEXT&gt;Type of work involved&lt/HELPTEXT> 
    <SUGGESTEDVALUES&gt;  
    <LISTITEM value="Development" />    
    <LISTITEM value="Testing" />    
    <LISTITEM value="Requirements" />    
    <LISTITEM value="Design" />    
    <LISTITEM value="Deployment" />    
    <LISTITEM value="Documentation" />    
    </SUGGESTEDVALUES>    
    </FIELD>    
    

    Поле "Дисциплина " (CMMI)

    <FIELD name="Discipline" refname="Microsoft.VSTS.Common.Discipline" type="String" reportable="dimension">  
    <ALLOWEDVALUES&gt;  
    <LISTITEM value="Analysis" />    
    <LISTITEM value="User Experience" />   
    <LISTITEM value="User Education" />    
    <LISTITEM value="Development" />   
    <LISTITEM value="Test" />   
    </ALLOWEDVALUES>    
    </FIELD>    
    

    Поле "Оставшиеся трудоемки" (все)

    <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">    
    <HELPTEXT>    
    An estimate of the work remaining to complete the task (in person hours)  
    </HELPTEXT>
    </FIELD>    
    

    Дополнительные поля планирования (Agile, CMMI)

    <FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum">    
    <HELPTEXT&gt; The original estimate of work required to complete the task (in person hours)</HELPTEXT>   
    </FIELD>    
    <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">    
    <HELPTEXT>An estimate of the work remaining to complete the task (in person hours)
    </HELPTEXT>  
    </FIELD>    
    <FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">    
    <HELPTEXT>    
    The work that has been completed for this task (in person hours)  
    <HELPTEXT>    
    </FIELD>    
    <FIELD name="Start Date" refname="Microsoft.VSTS.Scheduling.StartDate" type="DateTime" reportable="dimension" />   
    <FIELD name="Finish Date" refname="Microsoft.VSTS.Scheduling.FinishDate" type="DateTime" reportable="dimension" />   
    

    Раздел WORKFLOW
    Обновите или проверьте WORKFLOW раздел следующим образом:

    • Agile, User Story: добавление переходов от Active к Removed и Resolved к Removed; удаление правил, заполняющих Activated By поля и Activated Date , когда состояние=Resolved
    • Scrum, элемент невыполненной работы по продукту: добавление перехода с Committed на Removed
      Если вы настроили WORKFLOW, обязательно определите необходимые сопоставления состояния с метасостояниями в разделе ProcessConfigurationTestBacklog.

    Раздел FORM
    Добавьте или убедитесь, что в раздел добавлены FORM следующие поля:

    • Гибкой:
    <Control FieldName="Microsoft.VSTS.Scheduling.StoryPoints" Type="FieldControl" Label="Story Points" LabelPosition="Left" />    
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />    
    
    • CMMI:
    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Size" Label="Size" LabelPosition="Left" /&gt;    
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />    
    
    • Scrum:
    <Control FieldName="Microsoft.VSTS.Scheduling.Effort" Type="FieldControl" Label="Effort" LabelPosition="Left" />   
    <Control FieldName="Microsoft.VSTS.Common.ValueArea" Type="FieldControl" Label="Value area" LabelPosition="Left" />    
    
  3. Измените определение категорий. Добавьте WIT в категорию Задача. Здесь мы добавим задачу службы.

    <CATEGORY name="Task Category" refname="Microsoft.TaskCategory">
       <DEFAULTWORKITEMTYPE name="Task" />
       <WORKITEMTYPE name="Service Task" />
    </CATEGORY>
    
  4. Обновите или проверьте определение ProcessConfiguration: TaskBacklog раздел для добавляемого WIT.
    В частности, убедитесь, что выполняются следующие условия:

    • Сопоставьте начало каждого состояния рабочего процесса type="Proposed"
    • Сопоставьте каждое промежуточное состояние рабочего процесса, которое вы хотите отобразить на доске задач type="InProgress"
    • Сопоставьте окончание каждого состояния рабочего процесса type="Complete"
    • Убедитесь, что у вас есть только одно состояние, сопоставленное с type="Complete"

    Например, добавьте Blocked состояние рабочего процесса:

    <States>  
       <State value="New" type="Proposed" />  
       <State value="Active" type="InProgress" />  
       <State value="Blocked" type="InProgress" />  
       <State value="Resolved" type="InProgress" />  
       <State value="Closed" type="Complete" />  
    </States>  
    
  5. Добавьте определение цвета WIT в раздел ProcessConfiguration WorkItemColors . Например:

    <WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Service Task" />
    
  6. Обновите проект:

  7. Убедитесь, что вы можете добавить WIT на доску задач. Откройте страницу доски задач или обновите страницу, если она уже открыта.
    Вы должны иметь возможность выбрать задачу или задачу службы в качестве связанного рабочего элемента с пользовательской историей.
    Доска задач с добавленным типом рабочего элемента

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

Добавление WIT в категорию ошибок

WiT, добавленные в категорию ошибок, будут обрабатываться на основе параметра команды. Так как эти WIT могут рассматриваться как требования или задачи, они должны соответствовать требованиям к средству гибкого планирования как для требований, так и для задач.

  1. Экспортируйте процесс (размещенный XML- файл) или файлы определения (локальный XML- файл), как указано в разделе Первые шаги.

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

  3. Измените определение категорий. Добавьте WIT в категорию ошибки. Здесь мы добавим два WIT.

    <CATEGORY name="Bug Category" refname="Microsoft.BugCategory">  
       <DEFAULTWORKITEMTYPE name="Bug" />  
       <WORKITEMTYPE name="Service Bug" />  
       <WORKITEMTYPE name="Feedback" />  
    </CATEGORY>
    
  4. Обновите или проверьте определение ProcessConfiguration: BugWorkItems раздел для добавляемого WIT.

    В частности, убедитесь, что выполняются следующие условия:

    • Сопоставьте начало каждого состояния рабочего процесса type="Proposed"
    • Сопоставьте каждое промежуточное состояние рабочего процесса, которое вы хотите отобразить на канбане или доске задач type="InProgress"
    • Сопоставьте окончание каждого состояния рабочего процесса type="Complete"
    • Убедитесь, что у вас есть только одно состояние, сопоставленное с type="Complete"

    Например, добавьте Investigate состояние рабочего процесса:

    <States>  
     <State value="New" type="Proposed" />  
     <State value="Active" type="InProgress" />  
     <State value="Investigate" type="InProgress" />  
     <State value="Resolved" type="InProgress" />  
     <State value="Closed" type="Complete" />  
    </States>  
    
  5. Добавьте определение цвета WIT в раздел ProcessConfiguration WorkItemColors . Например:

    <WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Service Bug" />  
    <WorkItemColor primary="FFFF00FF" secondary="FFFFCCFF" name="Feedback" />  
    
  6. Обновите проект:

  7. Выберите параметр команды для отслеживания ошибок.

  8. Убедитесь, что WIT отображается на невыполненных работах и досках, как ожидалось, и что вы можете добавить его через невыполненную работу, как ожидалось.

Импорт и экспорт файлов определения (локальный XML- файл)

Используйте команды witadmin для импорта и экспорта файлов определений. Дополнительные сведения см. в разделе witAdmin: настройка объектов для отслеживания работы и управление ими.

Совет

С помощью witadmin можно импортировать и экспортировать файлы определений. Другие средства, которые можно использовать, включают редактор процессов (требуется, чтобы у вас была установлена версия Visual Studio). Установите редактор шаблонов процесса из Visual Studio Marketplace.

Совет

С помощью witadmin можно импортировать и экспортировать файлы определений. Другие средства, которые можно использовать, включают редактор процессов (требуется, чтобы у вас была установлена версия Visual Studio). Установите редактор шаблона процесса TFS из Visual Studio Marketplace. Эту версию редактора процессов можно использовать для изменения форм рабочих элементов старого стиля. Его нельзя использовать для редактирования форм, связанных с новыми веб-формами.

Вы также можете использовать диспетчер командных проектов TFS, клиент с открытым кодом, доступный в GitHub.

  1. Откройте окно командной строки в соответствии с инструкциями, приведенными в статье witAdmin: Настройка объектов для отслеживания работы и управление ими. Например:
  1. witadmin Введите команду , заменив данные отображаемыми аргументами. Например, чтобы импортировать WIT, выполните приведенные ниже действия.

    witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\WITDefinitionFile.xml"
    

    В поле CollectionURL укажите URL-адрес коллекции проектов, а в параметре ProjectName укажите имя проекта, определенного в коллекции. URL-адрес необходимо указать в следующем формате: http://ServerName:Port/VirtualDirectoryName/CollectionName.

    В поле DirectoryPath укажите путь к папке WorkItem Tracking/TypeDefinitions , содержащей скачанный шаблон процесса. Путь к каталогу должен соответствовать следующей структуре: Drive:\TemplateFolder\WorkItem Tracking\TypeDefinitions.

    Например, импортируйте ServiceApp WIT:

    witadmin importwitd /collection:"http://MyServer:8080/tfs/DefaultCollection"/p:MyProject /f:"DirectoryPath/ServiceApp.xml"
    

Используйте следующие команды для экспорта и импорта WIT, категорий и конфигурации процесса:

witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:TypeName /f:"DirectoryPath\WITDefinitionFile.xml"  
witadmin importwitd /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\WITDefinitionFile.xml"  
witadmin exportcategories /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/categories.xml"  
witadmin importcategories /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/categories.xml"   
witadmin exportprocessconfig /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"  
witadmin importprocessconfig /collection:"CollectionURL" /p:"ProjectName" /f:"DirectoryPath/ProcessConfiguration.xml"  

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

Общие сведения обо всех доступных вариантах настройки объектов отслеживания работы см. в статье Настройка интерфейса отслеживания работы.

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