Agile 포트폴리오 관리: TFS를 사용하여 여러 팀에서 백로그 지원
Team Foundation Server(TFS) 2012에서는 백로그에 있는 팀의 작업을 관리했습니다. Team Foundation Server 2013에서는 여러 Agile 팀의 작업에 대해 관리 팀 통찰력을 제공하는 포트폴리오 백로그에서 작업을 관리할 수 있습니다. 관리 팀은 상위 수준의 목표를 정의하고 여러 Agile 팀에서 작업을 추적합니다. Agile 팀은 작업을 수행하고 항목을 작업으로 나누고 버그를 해결하며 전체적인 상황에 기여하는 팀입니다. 모든 팀은 자체 백로그와 보드를 가지며 작업에서 지원되는 고객 경험의 롤업 보기도 갖게 됩니다. 완료되면 백로그 수준에 따라 작업을 그룹 지정해서 프로젝트 포트폴리오를 관리하고 여러 팀에서 작업이 어떻게 수행되는지 확인할 수 있습니다.
각 팀은 자체 백로그에서 작업하지만 백로그 작업 항목 형식의 계층은 관리자가 더 높은 수준에서 진행 사항에 대한 롤업을 볼 수 있도록 합니다. 이 백서에서는 특정 영역의 전체 프로젝트에서 작업 중인 Phone Saver 관리 팀과 Agile 팀에 대한 가상의 예를 통해 이런 구조를 설정하는 방법을 연습할 것입니다.
전화 보호기 관리 팀은 작업을 고급 이니셔티브로 정의하고 고객에게 중요한 기능으로 나눕니다. 이 시점에서 작업을 추가로 분해하고 수행할 작업을 정의하는 Agile 팀에 작업이 할당됩니다. 프로젝트가 진행되면서 관리 팀은 드릴다운하여 원하는 모든 세부 수준에서 진행 과정을 보게 됩니다. 예를 들어, 스크럼 프로젝트에서 각 기능 항목과 관련된 백로그 항목을 확인할 수 있습니다.
이 스크린 샷에서 이러한 항목의 표시를 지원하는 제품 백로그 항목을 사용하여 해당 기능 백로그의 관리 팀 보기를 볼 수 있습니다. 관리 팀은 제품 백로그 항목을 소유하지 않으며 Agile 팀 중 하나에 할당됩니다. 그러나 해당 항목의 자식 항목이 있기 때문에 필터에 표시합니다. 이러한 방식으로 관리 팀에서 진행률을 추적할 수 있습니다.
정보 그래픽은 위의 스크린 샷에 표시된 정보의 개념적 수준을 표시합니다.
고객 팀과 같은 각 Agile 팀은 자체 팀 홈 페이지, 백로그, Kanban 보드 및 작업 보드를 갖고 있습니다. 이 페이지는 해당 팀과 관련된 정보만을 보여줍니다.
이 스크린 샷에서는 Agile 팀의 스프린트 백로그 보기를 보고 작업을 분석하고 추적하기 위해 만든 스프린트 및 관련 작업에서 작업하는 제품 백로그 항목을 보여줍니다. 이 뷰에서 지원하면 작업 중인 기능이나 이니셔티브는 볼 수 없습니다. 이전과 마찬가지로 정보 그래픽에는 이 스크린 샷에 표시된 정보의 개념적 수준이 표시됩니다.
팀 및 백로그 수준 설정
TFS에서 팀 프로젝트를 만들면 해당 프로젝트에 대해 기본 팀이 자동으로 생성됩니다. Agile 팀의 추가 팀이 일일 작업을 관리하는 데 사용하도록 구성하고 관리 팀이 해당 수준에서 작업을 관리하는 데 사용할 기본 팀을 다시 정의함으로써 Agile 팀은 자신의 워크로드와 우선 순위를 관리할 수 있습니다. 관리 팀 보기는 Agile 팀을 포함하여 모든 작업의 진행 상황을 표시합니다. 팀을 설정하고 시작하기 위해서 매우 적은 구성만 필요합니다.
Agile 팀을 사용하여 진행 과정을 롤업하는 것 외에 백로그 수준을 사용하여 작업의 계층 보기를 만들 수 있습니다. TFS 2013에서는 두 가지 수준의 백로그에 즉시 액세스할 수 있습니다. 하지만 포트폴리오 관리를 지원하기 위해 다른 수준을 추가해야 한다면 또한 그렇게 할 수 있습니다. Agile 팀을 만드는 것 보다 좀 더 많은 구성이 필요 하지만 매우 직관적입니다. 여기에서는 Agile 팀을 설정하고 추가 백로그 수준을 만듭니다.
먼저, 예제에서는 조직에서 볼 수 있듯이 Agile 관리 팀 구조를 만들어 보겠습니다.
Agile 팀을 만들고 관리 팀을 구성합니다.
기본 팀의 홈 페이지에서 기어 아이콘 을 사용하여 관리 페이지를 열고 새 팀을 선택하여 Agile 팀을 만듭니다.
팀에 이름을 지정하고 팀 이름으로 영역 경로 만들기가 선택되어 있는지 확인합니다.
관리 팀을 위한 영역 경로의 하위 영역이지만 중요한 것은 Agile 팀의 작업을 분리하며 진행 상황 중 많은 부분의 자동화된 롤업을 관리 팀에 제공한다는 점입니다.
Agile 팀의 스프린트를 구성합니다.
새 Agile 팀에 멤버를 추가하고 관리 팀에서 불필요한 멤버를 제거합니다.
가장 좋은 방법은 관리 팀의 멤버 자격을 이니셔티브 및 기능을 소유한 팀 멤버와 관리자로 제한하는 것입니다. 관리 팀이 Agile 팀의 홈 페이지 및 백로그를 볼 수 있는 것처럼 Agile 팀의 멤버가 팀의 홈 페이지 및 백로그를 계속 볼 수 있습니다.
하위 영역이 포함되지 않도록 관리 팀 영역을 변경합니다.
필요한 만큼의 Agile 팀을 만듭니다. 작업 항목을 Agile 팀에 할당하면 각 팀의 백로그에 해당 항목이 표시되고 전과 마찬가지로 Kanban 보드 및/또는 작업 보드에서 작업 항목을 관리합니다.
백로그 항목 및 작업을 표시하는 Agile 팀의 백로그입니다.
관리 팀은 진행 중인 작업 및 아직 시작되지 않은 작업에 대한 마스터 뷰를 제공하는 백로그, Kanban 보드 및 작업 보드 뷰에서 모든 Agile 팀에 할당된 모든 작업 항목을 확인합니다.
기능 및 Agile 팀 백로그 항목을 표시하는 관리 팀의 백로그
팀 구조를 설정했으므로 계속해서 백로그의 다른 수준을 추가해 보겠습니다.
다른 백로그 수준 추가
다른 백로그 수준을 추가하는 작업은 약간의 시간은 걸리지만 매우 쉽습니다. 프로세스를 살펴보겠습니다. 이러한 단계를 수행하려면 팀 프로젝트 관리자 그룹의 멤버여야 합니다. 먼저 기존 작업 항목 형식을 내보내고 편집하여 이니셔티브라고 하는 새로운 작업 항목 형식을 만들려고 합니다. 그런 다음 이니셔티브에 대한 범주를 추가합니다. 마지막으로 포트폴리오 백로그에 이니셔티브를 추가합니다.
이니셔티브 백로그 수준을 추가한 후 작업이 어떻게 진행될지에 대해 알아보려면 여기를 클릭하여 앞으로 이동합니다.
이니셔티브 작업 항목 형식 만들기
작업 항목 형식을 만드는 가장 쉬운 방법은 기존 항목을 복사해서 이름을 바꾼 후 편집하는 것입니다. 아래 절차에서 Feature 작업 항목 형식을 내보내고 이니셔티브 작업 항목 형식의 기본으로 사용합니다. 전체 예제에서 프로젝트 이름은 Phone Saver이고 서버 이름은 Fabrikam입니다. 팀 프로젝트 컬렉션 이름은 기본값 DefaultCollection입니다.
관리자 모드에서 명령 프롬프트 창을 열고 Visual Studio(또는 팀 탐색기)가 설치된 곳으로 디렉터리를 변경합니다.
cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
Windows의 64 비트 버전에서는 %programfiles(x86)%를 사용합니다.
witadmin 도구를 사용해서 Feature 작업 항목 형식 정의를 다운로드하고 이를 Initiative.xml로 저장합니다.
witadmin exportwitd /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /n:Feature /f:%userprofile%\documents\Initiative.xml
Initiative.xml 파일을 열고, **<WORKITEMTYPE name="Feature">**을 **<WORKITEMTYPE name="Initiative">**로 대체하고, 설명을 업데이트합니다.
<witd:WITD application="Work item type editor" version="1.0" xmlns:witd="https://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef"> <WORKITEMTYPE name="Initiative"> <DESCRIPTION>Tracks an initiative that will be released with the product. </DESCRIPTION>
구현이라는 레이블이 지정된 탭 요소를 편집합니다. **<Filter WorkItemType="Product Backlog Item" />**을 **<Filter WorkItemType="Feature" />**로 대체합니다. 기능을 이니셔티브의 자식 작업 항목으로 표시합니다.
<Tab Label="Implementation"> <Control Type="LinksControl" Name="Hierarchy" Label="" LabelPosition="Top"> <LinksControlOptions> <LinkColumns> <LinkColumn RefName="System.Id" /> <LinkColumn RefName="System.Title" /> <LinkColumn RefName="System.AssignedTo" /> <LinkColumn RefName="System.State" /> </LinkColumns> <WorkItemLinkFilters FilterType="include"> <Filter LinkType="System.LinkTypes.Hierarchy" FilterOn="forwardname" /> </WorkItemLinkFilters> <ExternalLinkFilters FilterType="excludeAll" /> <WorkItemTypeFilters FilterType="include"> <Filter WorkItemType="Feature" /> </WorkItemTypeFilters> </LinksControlOptions> </Control> </Tab>
파일을 가져옵니다.
witadmin importwitd /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\Initiative.xml
이니셔티브 범주 만들기
이니셔티브 작업 항목 형식이 있으므로 팀 프로젝트에 표시되는 범주 항목에 이니셔티브의 범주를 추가할 것입니다.
범주 정의를 xml 파일로 내보냅니다.
witadmin exportcategories /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\categories.xml
파일을 열고 이니셔티브 범주를 추가합니다. 다음 예는 이니셔티브 범주에서 사용자 지정으로 식별하기 위해 회사 이름을 사용하는 경우입니다.
<CATEGORY refname="Fabrikam.InitiativeCategory" name="InitiativeCategory"> <DEFAULTWORKITEMTYPE name="Initiative" />
이전과 동일한 방식으로 파일을 가져옵니다.
witadmin importcategories /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\categories.xml
포트폴리오 계층 구조에 이니셔티브 범주 추가
이제 남은 일은 포트폴리오 백로그를 구성하는 작업 항목의 계층에 이니셔티브를 추가하는 것입니다.
프로세스 구성 정의를 xml 파일로 내보냅니다.
witadmin exportprocessconfig /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\MyProcessConfiguration.xml
파일을 열고, 포트폴리오 백로그 섹션 안의 이니셔티브 포트폴리오 백로그 섹션을 추가합니다. 동시에 이니셔티브가 기능의 부모 작업 항목이 되도록 FeatureCategory에 대한 PortfolioBacklog 요소를 수정합니다.
<PortfolioBacklogs> <PortfolioBacklog category="Fabrikam.InitiativeCategory" pluralName="Initiatives" singularName="Initiative"> <AddPanel> <Fields> <Field refname="System.Title" /> </Fields> </AddPanel> <Columns> <Column width="100" refname="System.WorkItemType" /> <Column width="400" refname="System.Title" /> <Column width="100" refname="System.State" /> <Column width="50" refname="Microsoft.VSTS.Common.BusinessValue" /> <Column width="100" refname="Microsoft.VSTS.Scheduling.TargetDate" /> <Column width="200" refname="System.Tags" /> </Columns> <States> <State type="Proposed" value="New" /> <State type="InProgress" value="In Progress" /> <State type="Complete" value="Done" /> </States> </PortfolioBacklog> <PortfolioBacklog category="Microsoft.FeatureCategory" parent="Fabrikam.InitiativeCategory" pluralName="Features" singularName="Feature">
WorkItemColors 섹션의 이니셔티브에 사용할 색을 추가합니다.
<WorkItemColor primary="FFFF6600" secondary="FFFEB380" name="Initiative" />
밝은 주황색을 목록 표시에 사용할 기본 색으로 할당하고, 연한 주황색을 작업 보드 및 Kanban 보드에서 사용하도록 지정합니다.
파일을 가져옵니다.
witadmin importprocessconfig /collection:"http://fabrikam:8080/tfs/DefaultCollection" /p:"Phone Saver" /f:%userprofile%\documents\MyProcessConfiguration.xml
완료했습니다. 이니셔티브라고 부르는 세 번째 백로그 수준을 추가했습니다.
이니셔티브 정의
이제 정의된 이니셔티브가 있으므로 항목을 만들 차례입니다. 이니셔티브 백로그 보기에서 관리 팀 멤버를 빠르게 추가할 수 있습니다. 이것은 백로그에 백로그 항목을 추가 하는 것과 같은 것입니다.
구현 탭 또는 링크 탭에서 새 작업 항목을 만들어 이니셔티브 작업 항목에서 새 기능을 직접 만들 수 있습니다. 또한 기능을 만들면서 부모-자식 관계를 만들 수 있다는 장점이 있습니다.
이미 있는 경우 이니셔티브를 기존 기능 작업 항목의 부모로 추가할 수도 있습니다. 기능에서 지원하는 이니셔티브와 해당 기능을 자동으로 연결할 수 있습니다. 기능에서 백로그 항목을 만들고 개별 Agile 팀에게 할당할 수 있습니다.
기존 백로그에 있는 경우 여러 항목 매핑
기존의 백로그가 있는 경우 항목 간 부모-자식 관계를 만들어 자동 진행률 보고를 지원할 수 있습니다. 백로그 항목을 기능에 매핑하고 기능을 이니셔티브에 매핑해야 합니다. 다행히 매핑 창을 사용하면 이 작업을 쉽게 수행할 수 있습니다. 먼저 매핑 창을 켭니다.
이제 백로그의 항목을 부모로 연결하려는 매핑 창 기능에 놓습니다.
계층을 만들 때까지 각 백로그 수준에서 이 프로세스를 반복합니다.
또한 Microsoft Excel에서 작업 항목을 대량으로 편집하고 해당 계층을 관리할 수도 있습니다.
진행률 보기
작업 항목을 해당 부모-자식 링크에 연결했으므로 진행 과정 보기가 다양한 수준에 적용되는지 확인할 때입니다.
진행 상황 관리 보기
관리할 때 전화 보호기 팀의 이니셔티브 백로그는 전화 보호기 프로젝트에 있는 모든 팀에 대한 이니셔티브 작업 항목을 보여줍니다.
보기를 전환하여 연결된 기능을 표시할 수 있습니다.
또는 백로그 항목이나 작업 수준까지 더 드릴다운합니다.
팁: 어떤 팀에서 어떤 항목을 작업 중인지 보려면 영역 경로 열을 추가합니다.
또한 Kanban 보드에서의 진행률을 볼 수 있습니다. 관리 팀은 진행되고 있는 이니셔티브 및 기능을 볼 수 있습니다.
진행률의 팀 뷰
각 Agile 팀의 경우 보기가 매우 다릅니다. 팀의 멤버로서 이니셔티브 또는 기능 백로그를 탐색하는 경우 아무 것도 표시되지 않습니다. Agile 팀이 생성하거나 해당 수준의 항목을 직접 작업하지 않기 때문입니다. Agile 팀에는 이니셔티브 또는 기능의 전체 목록은 표시되지 않습니다. 그러나 팀이 지원하는 이니셔티브와 기능이 무엇인지 알고 싶은 경우 백로그 항목 백로그에서 이러한 보기를 켤 수 있으며 작업 중인 항목에서 지원하는 기능과 이니셔티브가 무엇인지 알 수 있습니다.
그 밖의 모든 경우에는 각 팀에게 평소와 다름 없는 비즈니스입니다. Kanban 보드, 작업 보드 및 기타 기능을 항상 사용하던 것처럼 사용할 수 있습니다. 하지만 어떤 항목에 대해 직접 보고하지 않아도 관리에 진행 상황이 표시됩니다. 수행하는 작업은 관리 보기에 반영됩니다.
저자 정보
Gregg Boer는 Microsoft의 주요 프로그램 관리자입니다. Gregg는 TFS의 Agile Management 환경에 대한 제품 소유자입니다.
Susan Ferrell은 Microsoft 선임 기술 문서 작성자입니다.
Kathryn Elliott은 Microsoft 선임 기술 문서 작성자입니다.