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

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 для отслеживания как требования

WiTs, добавленные в категорию требований, отображаются в журнале невыполненной работы по продукту и на канбан-доске. Необходимо убедиться, что определение 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"&gt; 
    <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 для отслеживания задачи

Wi-файлы, добавленные в категорию задач, отображаются в невыполненных работах и на досках задач. Добавляемый 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 в категорию ошибок

Wi-файлы, добавленные в категорию ошибок, будут обрабатываться на основе параметра команды. Так как эти 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 в качестве невыполненной работы по портфелям, см. статью Добавление невыполненных работ по портфелям.

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

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