Share via


Agile 팀 프로젝트의 워크플로 업데이트

MSF(Microsoft Solutions Framework) for Agile Software Development v5.0을 기반으로 하는 프로세스 템플릿을 사용하여 만든 업그레이드된 팀 프로젝트용 기능을 구성한 후에는 사용자 스토리와 작업 워크플로 할당을 수동으로 업데이트해야 합니다. 워크플로를 업데이트하지 않으면 다음 그림과 같이 작업 보드에 활성닫힘의 두 상태만 표시됩니다. 이 경우 진행 중인 작업과 아직 시작되지 않은 작업을 구분할 수 없습니다.

권장되는 수동 업데이트를 수행하지 않은 Agile 팀 프로젝트의 작업 보드

업데이트하지 않은 Agile 팀 프로젝트의 작업 보드

기능 구성 마법사를 통한 업데이트는 팀 프로젝트에 대해 정의된 기존 워크플로와 일치하도록 수행됩니다. 따라서 MSF Agile 프로세스 템플릿 버전 5.0의 경우에는 최신 버전에 도입된 신규 및 제거됨 상태가 표시되지 않습니다. 이러한 상태에서는 사용자 스토리를 신규 상태에서 활성 상태로 전환할 수 있습니다. 신규 상태가 정의되지 않으면 반복에 할당된 사용자 스토리는 해결될 때까지 제품 백로그에 유지되는데, 이는 적절하거나 필요한 동작이 아닙니다.

마찬가지로 작업 워크플로에 신규 상태가 추가되면 사용자가 작업 보드를 사용하여 작업을 신규, 활성, 닫힘 상태 간에 이동할 수 있습니다. 그리고 사용자 스토리 및 작업 형식 정의에 모두 제거됨 상태가 추가되면 사용자가 계획 도구를 통해 스토리 및 작업을 잘라낼 수 있습니다.

적절한 동작을 지원하려면 작업 및 사용자 스토리 작업 항목 형식에 신규 및 제거됨 상태를 추가하고 프로세스 구성에서 할당된 메타 상태 매핑을 업데이트해야 합니다.

참고

Visual Studio의 유용한 도구 추가 기능인 프로세스 편집기를 다운로드 및 설치하여 아래에서 설명하는 일부 절차를 수행할 수 있습니다.프로세스 편집기의 도구 메뉴 아래에는 Team Foundation Server 프로세스 템플릿 사용자 지정을 위한 그래픽 사용자 인터페이스가 제공됩니다.이 도구를 사용하여 작업 항목 형식을 가져오거나 내보내고 프로세스 템플릿의 내용을 수정할 수 있습니다.자세한 내용은 Microsoft 웹 사이트의 Team Foundation Server Power Tools 페이지를 참조하십시오.

요구 사항

  • witadmin 명령줄 도구를 실행하려면 팀 프로젝트에 대해 Team Foundation Administrators, Project Collection Administrators 또는 Project Administrators 그룹 중 하나의 멤버여야 합니다. Team Foundation Server에 대한 사용 권한 참조을 참조하세요.

Agile 팀 프로젝트의 워크플로 및 메타 상태 업데이트

중요

이 항목의 절차는 MSF for Agile Software Development 6.0을 기준으로 작성되었습니다.MSF for Agile Software Development 6.1용으로 정의된 최신 워크플로를 지원하도록 팀 프로젝트를 업데이트하려는 경우 이 절차를 조정하여 최신 Agile 프로세스 템플릿의 WORKFLOW 섹션을 대신 복사하면 됩니다.최신 분기별 업데이트 시 여러 작업 항목 형식에 대한 워크플로에 중요 업데이트가 적용되었습니다.실수로 작업 항목을 Kanban 보드 또는 작업 보드의 해결됨 또는 닫힘 상태로 끌어 놓은 경우 이전 워크플로 상태로 다시 끌 수 있도록 이러한 변경 내용은 뒤로 되돌리기 전환을 지원합니다.

업데이트에 대한 자세한 내용은 계획 및 추적의 새로운 기능을 참조하세요.

다음 단계를 수행해야 합니다.

  • 사용자 스토리 및 작업 형식과 프로세스 구성의 정의를 내보냅니다.

  • 사용자 스토리와 작업 둘 다의 워크플로 섹션에 코드 조각을 삽입합니다.

  • 프로세스 구성에 대한 메타 상태 매핑을 업데이트합니다.

  • 작업 항목 형식과 프로세스 구성에 대해 업데이트된 정의를 가져옵니다.

  • 변경 내용이 작업 보드에 표시되는지 확인합니다.

중요

다음 절차를 수행하려면 작업 항목의 작업 형식 및 사용자 스토리에 대해 정의된 워크플로에서 활성 상태를 지정해야 합니다.

사용자 스토리에 대해 워크플로 상태 및 전환을 업데이트하려면

  1. witadmin 명령줄 도구를 실행하려면 Visual Studio 또는 팀 탐색기가 설치된 명령 프롬프트 창을 열고 다음을 입력합니다.

    cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
    

    64비트 버전의 Windows에서는 **%programfiles%**를 **%programfiles(x86)%**로 바꿉니다.

  2. 사용자 스토리의 형식 정의를 내보내려면 다음 명령을 입력합니다. 이때 아래에 나와 있는 인수를 실제 데이터로 바꿉니다. 여기서 CollectionURL은 팀 프로젝트 컬렉션 URL을, ProjectName은 컬렉션 내에 정의된 팀 프로젝트의 이름을 그리고 "DirectoryPath\FileName.xml"은 내보낼 파일의 이름과 위치를 지정합니다. 그런 다음 Enter 키를 누릅니다.

    witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:"User Story" /f:"DirectoryPath\FileName.xml"
    

    URL에는 **http://**ServerName:Port/VirtualDirectoryName/CollectionName 형식을 사용합니다. 예를 들면 http://srvalm:8080/tfs/DefaultCollection과 같습니다.

  3. 텍스트 편집기 또는 Visual Studio에서 내보낸 파일을 엽니다.

  4. <STATES> 및 <STATE value="Active"> 줄 사이에 다음 코드 조각을 추가합니다.

    <STATE value="New">
       <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
             <EMPTY />
          </FIELD>
       </FIELDS>
    </STATE>
    <STATE value="Removed" />
    
  5. <TRANSITION from=" " to="Active">로 시작하고 <TRANSITION>으로 끝나는 섹션을 다음 코드 조각으로 바꿉니다.

    <TRANSITION from="" to="New">
       <REASONS>
          <DEFAULTREASON value="New" />
       </REASONS>
       <FIELDS>
          <FIELD refname="System.Description">
             <DEFAULT from="value" value="As a &amp;lt;type of user&amp;gt; I want &amp;lt;some goal&amp;gt; so that &amp;lt;some reason&amp;gt;" />
          </FIELD>
       </FIELDS>
    </TRANSITION>
    <TRANSITION from="New" to="Active">
       <REASONS>
          <DEFAULTREASON value="Implementation started" />
       </REASONS>
       <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
             <COPY from="currentuser" />
             <VALIDUSER />
             <REQUIRED />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
             <SERVERDEFAULT from="clock" />
          </FIELD>
          <FIELD refname="System.AssignedTo">
             <DEFAULT from="currentuser" />
          </FIELD>
       </FIELDS>
    </TRANSITION>
    <TRANSITION from="New" to="Removed">
       <REASONS>
          <DEFAULTREASON value="Removed from the backlog" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="New">
       <REASONS>
          <DEFAULTREASON value="Implementation halted" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="Removed" to="New">
       <REASONS>
          <DEFAULTREASON value="Reconsidering the User Story" />
       </REASONS>
    </TRANSITION>
    
  6. 파일을 저장한 후 닫습니다.

  7. 표시된 인수를 실제 데이터로 바꿔 파일을 가져옵니다.

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

작업에 대해 워크플로 상태 및 전환을 업데이트하려면

  1. 표시된 인수를 실제 데이터로 바꿔 형식 정의를 내보냅니다.

    witadmin exportwitd /collection:CollectionURL /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
    
  2. 텍스트 편집기 또는 Visual Studio에서 내보낸 파일을 엽니다.

  3. <STATES> 및 <STATE value="Active"> 줄 사이에 다음 코드 조각을 추가합니다.

    <STATE value="New">
       <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
             <EMPTY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
             <EMPTY />
          </FIELD>
       </FIELDS>
    </STATE>
    <STATE value="Removed" />
    
  4. <TRANSITION from="" to="Active">와 닫는 태그인 </TRANSITION> 사이의 줄에 해당하는 첫 번째 전환 블록을 아래 코드 조각으로 바꿉니다.

    <TRANSITION from="" to="New">
       <REASONS>
          <DEFAULTREASON value="New" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="New" to="Active">
       <ACTIONS>
          <ACTION value="Microsoft.VSTS.Actions.StartWork" />
       </ACTIONS>
       <REASONS>
          <DEFAULTREASON value="Work started" />
       </REASONS>
       <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
             <COPY from="currentuser" />
             <VALIDUSER />
             <REQUIRED />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
             <SERVERDEFAULT from="clock" />
          </FIELD>
          <FIELD refname="System.AssignedTo">
             <DEFAULT from="currentuser" />
          </FIELD>
       </FIELDS>
    </TRANSITION>
    <TRANSITION from="Active" to="New">
       <ACTIONS>
          <ACTION value="Microsoft.VSTS.Actions.StopWork" />
       </ACTIONS>
       <REASONS>
          <DEFAULTREASON value="Work halted" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="New" to="Closed">
       <ACTIONS>
          <ACTION value="Microsoft.VSTS.Actions.Checkin" />
       </ACTIONS>
       <REASONS>
          <DEFAULTREASON value="Completed" />
          <REASON value="Cut" />
          <REASON value="Deferred" />
       <REASON value="Obsolete" />
       </REASONS>
       <FIELDS>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
             <READONLY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
             <READONLY />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
             <SERVERDEFAULT from="clock" />
          </FIELD>
          <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
          <COPY from="currentuser" />
             <VALIDUSER />
             <REQUIRED />
          </FIELD>
       </FIELDS>
    </TRANSITION>
    <TRANSITION from="Closed" to="New">
       <REASONS>
          <DEFAULTREASON value="Reactivated" />
       </REASONS>
       <FIELDS>
          <FIELD refname="System.AssignedTo">
             <COPY from="field" field="Microsoft.VSTS.Common.ClosedBy" />
          </FIELD>
       </FIELDS>
    </TRANSITION>
    <TRANSITION from="New" to="Removed">
       <REASONS>
          <DEFAULTREASON value="Removed from the backlog" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="Active" to="Removed">
       <REASONS>
          <DEFAULTREASON value="Removed from the backlog" />
       </REASONS>
    </TRANSITION>
    <TRANSITION from="Removed" to="New">
       <REASONS>
          <DEFAULTREASON value="Reconsidering the Task" />
       </REASONS>
    </TRANSITION>
    
  5. 파일을 저장한 후 닫습니다.

  6. 표시된 인수를 실제 데이터로 바꿔 파일을 가져옵니다.

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

프로세스 구성에 대한 메타 상태 매핑을 업데이트하려면

  1. 다음 명령을 입력하여 ProcessConfiguration 파일을 내보냅니다. 이때 표시된 인수는 실제 데이터로 바꿉니다.

    witadmin exportprocessconfig /collection:CollectionURL /p:"ProjectName" /f:"DirectoryPath\ ProcessConfiguration.xml"
    

    여기서 CollectionURL은 팀 프로젝트 컬렉션 URL을 지정하고 ProjectName은 팀 프로젝트 이름을 지정합니다. URL에는 **http://**ServerName:Port/VirtualDirectoryName/CollectionName 형식을 사용합니다. 예를 들면 http://srvalm:8080/tfs/DefaultCollection과 같습니다.

  2. 메모장이나 다른 텍스트 편집기에서 ProcessConfiguration.xml 파일을 엽니다.

  3. <RequirementWorkItems category="Microsoft.RequirementCategory" plural="Stories"> 태그를 찾습니다.

  4. <State type="Proposed" value="Active" /> 줄을 다음 줄로 바꿉니다.

    <State type="Proposed" value="New" /> 
    <State type="InProgress" value="Active" /> 
    
  5. <TaskWorkItems category="Microsoft.TaskCategory"> 태그를 찾아서 <State type="Proposed" value="Active" /> 줄을 다음 줄로 바꿉니다.

    <State type="Proposed" value="New" />
    <State type="InProgress" value="Active" />
    
  6. 다음 매핑이 있는지 확인합니다.

    <RequirementWorkItems category="Microsoft.RequirementCategory" plural="Stories">
       <States>
          <State type="Proposed" value="New"/>
          <State type="InProgress value="Active" />
          <State type="InProgress value="Resolved" />
          <State type="Complete" value="Closed" />
       </States>
    </RequirementWorkItems>
    <TaskWorkItems category="Microsoft.TaskCategory">
       <States>
          <State type="Proposed" value="New" />
          <State type="InProgress" value="Active" />
          <State type="Complete" value="Closed" />
       </States>
    </TaskWorkItems>
    
  7. 파일을 저장한 후 닫습니다.

  8. 구성 파일을 가져옵니다.

    witadmin importprocessconfig /collection:CollectionURL /p:ProjectName /f:"DirectoryPath\ProcessConfiguration.xml" 
    

변경 내용이 작업 보드에 표시되는지 확인하려면

  1. Team Web Access를 열고 다음 형식의 URL을 사용하여 팀 프로젝트에 연결합니다.

    http://MyServer:8080/tfs/TeamProjectCollectionName/MyProject
    

    TWA가 이미 열려 있으면 브라우저를 새로 고쳐 캐시를 새로 고칩니다.

  2. 이제 작업 보드 열에 신규, 활성닫힘이 표시되는지 확인합니다.

    워크플로 상태가 업데이트된 Agile 팀 프로젝트의 작업 보드

    업데이트한 작업 흐름이 있는 Agile 작업 보드

    작업 보드를 사용하는 방법에 대한 자세한 내용은 스프린트 작업을 참조하세요.

참고 항목

개념

Visual Studio ALM 및 TFS로 작업 추적

TFS 업그레이드 후 기능 구성