다음을 통해 공유


백로그 및 보드에 작업 항목 유형 추가

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Important

이 문서는 호스트된 XML 및 온-프레미스 XML 프로세스 모델에 대한 프로젝트 사용자 지정에 적용됩니다. 상속 프로세스 모델은 프로세스에 대한 백로그 또는 보드 사용자 지정을 참조하세요. 프로세스 모델에 대한 개요는 작업 추적 환경 사용자 지정을 참조하세요.

선택한 비즈니스 프로세스를 충족하기 위해 팀은 추가 WIT(작업 항목 유형)를 요구 사항 또는 작업으로 추적하려고 할 수 있습니다. 이러한 방식으로 제품을 추가하고 제품 내에서 추적할 수 있으며 백로그 또는 보드 및 작업 보드를 질주할 수 있습니다.

예를 들어 대상 고객에 따라 다양한 유형의 요구 사항 또는 원본에 따라 다양한 유형의 버그를 추적할 수 있습니다. 여기서 Fabrikam Fiber 팀은 고객 서비스 팀을 지원하는 작업을 추적하기 위해 서비스 앱 WIT를 추가했습니다.

요구 사항 범주에 사용자 지정 WIT(예: 서비스 앱)를 추가하여 요구 사항처럼 추적합니다.

백로그 및 보드에 버그를 추가하기만 하면 백로그 및 보드에 버그 표시를 참조하여 팀을 선택하세요. 다른 WIT 및 포트폴리오 백로그를 추가하려면 포트폴리오 백로그 수준 추가를 참조 하세요.

WIT를 추가하여 요구 사항, 작업 또는 버그로 추적하려면 해당 단계를 수행합니다.

참고 항목

WIT를 요구 사항 범주, 작업 범주 또는 버그 범주와 같은 범주 중 하나에만 추가하는 것이 좋습니다. 시스템에서 요구 사항 범주와 작업 범주 모두에 동일한 WIT를 추가할 수 없습니다. 버그 범주에 추가하는 WIT는 팀의 버그 동작 집합을 따릅니다.

사용자 지정 시퀀스

호스트된 XML 프로세스 모델 사용자 지정 시퀀스

참고 항목

정의 파일 가져오기/내보내기를 통해 프로세스를 사용자 지정하는 경우 다음 지침을 사용합니다. 그렇지 않으면 관리 UI를 통해 프로세스를 사용자 지정하는 경우 프로세스에 대한 사용자 지정 작업 항목 유형 추가 또는 수정을 참조 하세요.

프로세스 정의 파일을 변경한 다음 해당 프로세스를 가져와 기존 프로젝트를 업데이트하거나 프로세스를 사용하여 프로젝트를 만듭니다.

온-프레미스 XML 프로세스 모델 사용자 지정 시퀀스

먼저 작업 추적 정의 파일을 내보내고 업데이트한 다음 프로젝트로 가져옵니다.

WIT를 추가하여 요구 사항처럼 추적

요구 사항 범주에 추가하는 WIT는 제품 백로그 및 보드에 표시됩니다. WIT 정의에 Agile 계획 도구를 지원하는 데 필요한 필드가 포함되어 있는지 확인해야 합니다.

  1. 첫 번째 단계에 표시된 대로 프로세스(호스트된 XML) 또는 정의 파일(온-프레미스 XML)을 내보냅니다.

  2. WIT 정의를 편집하여 계획 도구를 지원합니다.

    추가 또는 업데이트할 사용자 지정/구문

    스택 순위 필드(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> 
    

    백로그 우선 순위 필드(스크럼)

    <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, 사용자 스토리: Active Activated Date Removed Resolved RemovedActivated By 상태=Resolved
    • 스크럼, 제품 백로그 항목: 다음으로 Committed 전환 추가 Removed
      사용자 지정한 WORKFLOW경우 ProcessConfiguration RequirementBacklog 섹션에서 필요한 상태-메타스테이트 매핑을 정의해야 합니다.

    FORM 섹션 추가 또는 섹션에 다음 필드가 추가 FORM 되었는지 확인합니다.

    • Agile:
    <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" />  
    
    • 스크럼:
    <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. 추가하려는 WIT에 대한 섹션인 RequirementBacklog ProcessConfiguration 정의를 업데이트하거나 확인합니다. 특히 다음 조건이 충족되는지 확인합니다.

    • 각 워크플로 상태의 시작을 다음으로 매핑 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. ProcessConfiguration 섹션에 WIT 색 정의를 추가합니다 WorkItemColors . 예시:

    <WorkItemColor primary="FF33CC33" secondary="FFD6F5D6" name="Service App" />
    
  6. 프로젝트를 업데이트합니다.

WIT를 추가하여 작업처럼 추적

작업 범주에 추가하는 WIT는 스프린트 백로그 및 작업 보드에 표시됩니다. 추가하는 WIT는 Agile 계획 도구를 지원하는 데 필요한 필드를 지정해야 합니다.

  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> 
    

    ** 백로그 우선 순위** 필드(스크럼)

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

    활동 필드(Agile, 스크럼)

    <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, 사용자 스토리: Active Activated Date Removed Resolved RemovedActivated By 상태=Resolved
    • 스크럼, 제품 백로그 항목: 다음으로 Committed 전환 추가 Removed
      사용자 지정한 WORKFLOW경우 ProcessConfiguration TestBacklog 섹션에서 필요한 상태-메타스테이트 매핑을 정의해야 합니다.

    FORM 섹션
    섹션에 다음 필드가 추가 FORM 되었는지 확인합니다.

    • Agile:
    <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" />    
    
    • 스크럼:
    <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. 추가하려는 WIT에 대한 섹션인 TaskBacklog ProcessConfiguration 정의를 업데이트하거나 확인합니다.
    특히 다음 조건이 충족되는지 확인합니다.

    • 각 워크플로 상태의 시작을 다음으로 매핑 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. ProcessConfiguration 섹션에 WIT 색 정의를 추가합니다 WorkItemColors . 예시:

    <WorkItemColor primary="FFF2CB1D" secondary="FFF6F5D2" name="Service Task" />
    
  6. 프로젝트를 업데이트합니다.

  7. 작업 보드에 WIT를 추가할 수 있는지 확인합니다. 작업 보드 페이지를 열거나 이미 열려 있는 경우 페이지를 새로 고칩니다.
    작업 또는 서비스 작업을 사용자 스토리에 연결된 작업 항목으로 선택할 수 있어야 합니다.
    서비스 작업 작업 항목 유형이 추가된 작업 보드

    작업 보드에서 작업 항목을 끌어 상태를 업데이트합니다. 상태가 유효하지 않은 열로 항목을 끌 수 없습니다. 예를 들어 작업을 차단된 상태로 끌거나 작업을 해결된 상태로 끌 수 없습니다. 이러한 상태를 사용하려면 해당 WIT 정의에 대한 워크플로 정의에 추가합니다.

버그 범주에 WIT 추가

버그 범주에 추가하는 WIT는 팀 설정따라 처리됩니다. 이러한 WIT는 요구 사항 또는 작업으로 처리될 수 있으므로 요구 사항과 작업 모두에 대한 Agile 계획 도구 요구 사항을 충족해야 합니다.

  1. 첫 번째 단계에 표시된 대로 프로세스(호스트된 XML) 또는 정의 파일(온-프레미스 XML)을 내보냅니다.

  2. WIT를 요구 사항으로 추적할 WIT 추가 및 작업으로 추적할 WIT 추가의 2단계에 나열된 조건을 충족하여 계획 도구를 지원하도록 WIT 정의를 편집합니다.

  3. 범주 정의를 편집합니다. 버그 범주에 WIT를 추가합니다. 여기서는 두 개의 WIT를 추가합니다.

    <CATEGORY name="Bug Category" refname="Microsoft.BugCategory">  
       <DEFAULTWORKITEMTYPE name="Bug" />  
       <WORKITEMTYPE name="Service Bug" />  
       <WORKITEMTYPE name="Feedback" />  
    </CATEGORY>
    
  4. 추가하려는 WIT에 대한 섹션인 BugWorkItems ProcessConfiguration 정의를 업데이트하거나 확인합니다.

    특히 다음 조건이 충족되는지 확인합니다.

    • 각 워크플로 상태의 시작을 다음으로 매핑 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. ProcessConfiguration 섹션에 WIT 색 정의를 추가합니다 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에서 프로세스 템플릿 편집기를 설치합니다.

  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를 추가하려면 포트폴리오 백로그 추가를 참조 하세요.

작업 추적 개체를 사용자 지정하는 데 사용할 수 있는 모든 옵션에 대한 개요는 작업 추적 환경 사용자 지정을 참조하세요.

백로그 또는 보드에 계층적 또는 중첩된 요소가 표시되는 방법을 알아보려면 백로그 및 보드가 계층적(중첩된) 항목을 표시하는 방법을 참조하세요.