59
 Hands-On Lab  Agile Planning and Portfolio Management with Team Foundation Server 2013 Lab version: 12.0.21005.1 Last updated: 12/2/2013

Agile Planning and Portfolio Management With Team Foundation Server 2013

Embed Size (px)

Citation preview

Hands-On LabAgile Planning and Portfolio Management with Team Foundation Server 2013

Lab version:12.0.21005.1Last updated:12/2/2013

ContentsOverview3Exercise 1: Agile Project Management4Exercise 2: Agile Portfolio Management23Exercise 3: Flexibility of Agile Tools36Exercise 4: Work Item Charting50

OverviewIn this lab, you will learn about the agile planning and portfolio management tools and processes provided by Team Foundation Server 2013 and how they can help you quickly plan, manage, and track work across your entire team. You will explore the product backlog, sprint backlog, and task boards which can be used to track the flow of work during the course of an iteration. We will also take a look at how the tools have been enhanced in this release to scale for larger teams and organizations.PrerequisitesIn order to complete this lab you will need the Visual Studio 2013 virtual machine provided by Microsoft. For more information on acquiring and using this virtual machine, please see this blog post.About the Fabrikam Fiber ScenarioThis set of hands-on-labs uses a fictional company, Fabrikam Fiber, as a backdrop to the scenarios you are learning about. Fabrikam Fiber provides cable television and related services to the United States. They are growing rapidly and have embraced Windows Azure to scale their customer-facing web site directly to end-users to allow them to self-service tickets and track technicians. They also use an on-premises ASP.NET MVC application for their customer service representatives to administer customer orders.In this set of hands-on labs, you will take part in a number of scenarios that involve the development and testing team at Fabrikam Fiber. The team, which consists of 8-10 people, has decided to use Visual Studio application lifecycle management tools to manage their source code, run their builds, test their web sites, and plan and track the project.

ExercisesThis hands-on lab includes the following exercises:Agile Project ManagementAgile Portfolio ManagementFlexibility of Agile ToolsWork Item Charting

Estimated time to complete this lab: 60 minutes.

Exercise 1: Agile Project ManagementIn this exercise, you will learn how to use Team Foundation Server 2013 to manage your product backlog, create work items, break work items into tasks, assign tasks to team members, and track progress using the task board. This overview will demonstrate the basic project management tools that small- to medium-sized development teams can utilize for product development. If you are already familiar with the agile planning and tracking tools which were introduced in Team Foundation Server 2012, you may want to skip this exercise.Note: The team project used in this lab uses a Scrum process template, but the core features demonstrated apply to all process templates.

Log in as Julia Ilyiana (VSALM\Julia). All user passwords are P2ssw0rd.Launch Internet Explorer from the taskbar and select the TFS FF Portal button from the favorites bar at the top.

Figure 1Launching the web portal

Note: There is also a Web Portal link in the Team Explorer window within Visual Studio.

Select the team drop-down box in the top-right corner of the portal and select the Browse All option.

Figure 2Browsing teams

This view shows that the Fabrikam Fiber collection has one project in it named FabrikamFiber. This project contains a few different teams, with the Fabrikam Fiber Leadership Team being set as the default team for the project. We will take a closer look at teams in a later exercise. Note: This lab refers to this default team as both the leadership team and the management team. They both refer to the same team.

Figure 3Browsing teams

Select the Fabrikam Fiber Web Team and then select the Navigate button.

Figure 4Navigating to a different team

The Home view for the Fabrikam Fiber Web team provides a high-level overview of the current iteration (Sprint 3) including team workload versus capacity, burndown of tasks over time, and team favorites, which can include a configurable assortment of work item queries, build definitions, and version control paths. In addition, there are links to quickly create new work items and bugs, load the backlog, task board, initiate requests for feedback, and so on.

Figure 5Fabrikam Fiber team home view

Note: Team favorites can be added or removed from within the web portal. For example, navigate to the Build tab to assign build definitions as a team favorite. In addition, team favorite work item queries can be modified from within Visual Studio.Each team can have different team favorites listed, different work capacity, and even different work items. The determining factor on where a work item will show up is governed by the Area field.

As you can see under the Members section, there are several members listed in this team. Teams are a concept that were originally introduced in Team Foundation Server 2012 to make it easier to manage, assign, and track work. Navigate to the backlog by selecting the View backlog link under the Activities section.

Figure 6Navigating to the backlog

The product backlog helps define the work that needs to be done. Once you have a backlog, you can use it to help manage when that work gets done, as well as associate items on the backlog with check-ins, acceptance tests, or other criteria.

Figure 7Product backlog view

Note: The Current iteration shown in the tree on the left side of this screen is Iteration 3. Team Foundation Server uses the current date and time to determine the current iteration. The virtual machine you are using has been hard-coded to use a date of July 9, 2013 for purposes of this lab. This date is set each time you boot up this virtual machine.If your virtual machine has been running for a while, the date may be different. If so, you should manually set the date on your virtual machine to the afternoon of July 9, 2013. However, if you have modified work items or source control in Team Foundation Server prior to starting this hands-on-lab, it is recommended that you restore this virtual machine to its original state prior to completing this lab.

Imagine that the VP of Fabrikam Fiber has requested that a new user story be implemented for the customer-facing service portal. This new user story will enabled customers to see weather-related service outages. This user story is being designated as high-priority because many customers requested it and customer service indicated that it would greatly reduce phone support during outages. Select the last row of the product backlog and then create a new Product Backlog Item with the title Customer should see weather-related outages on portal.

Figure 8Adding a new user story to the product backlog

Note: New work items are generally inserted above the selected location. The exception is that if you select the last work item, the insertion will be after the selected location.

Select the Add button to add the new user story to the backlog.

Figure 9Adding a new user story to the product backlog

Work items on the product backlog are ordered based on priority, with high priority items at the top. Our new work item has a high priority, so move it to the top of the list by dragging and dropping it into place.

Figure 10Increasing the priority of the new user story

Lets edit the new user story to assign it to the appropriate product owner and record an initial estimate of expected effort. Double-click on the new user story.

Figure 11Editing the new user story

Assign the new item to Brian Keller (the product owner for the Fabrikam Fiber Team), set the state to Approved, and set an initial effort of 8. Select the Save and Close button. Figure 12Assigning the new user story and estimating effort

Note: Each team may choose to define the Effort value as they see fit, using a unit of story points, hours, days, or number of sodas required. The point here is that this measure is a relative value with respect to other work items. Work will be broken down into hours later.Note: A popular planning approach that helps to eliminate groupthink and considers input from all team members is known as planning poker. You can read more about it at http://en.wikipedia.org/wiki/Planning_poker.

Assign the new user story to the current iteration, Iteration 3, by dragging and dropping it as shown below.

Figure 13Assigning the new user story to the current iteration

Note: If you are a Scrum purist, you are probably cringing at the fact that we just added new work to a mid-flight iteration. While this is something you might never do in the real world, this is a shortcut taken for purposes of this lab in order to simplify the workflow and still show you all of the aspects of the new project management interface. Well, that, and the VP told you to.

Look at the Iteration Path for the new user story to make sure that it is assigned to Iteration 3 as expected. This user story will remain on the product backlog until the work has been completed.

Figure 14Assigning the new user story to the current iteration

The product backlog view also provides a velocity chart that shows the amount of work that the team has undertaken in each sprint, with the current sprint breaking that down further to differentiate between work in progress and work completed. Click on the mini chart in the upper-right corner to load the larger view.

Figure 15Location of velocity chart

During Iteration 1, the team completed 35 story points worth of effort. Iteration 2 was more productive with 49 story points completed. The current iteration, represented by Iteration 3, shows that we do not currently have any work items in the Committed state. Remember that these story points are a relative measure of effort that was agreed upon by the team.

Figure 16Velocity chart showing progress towards completing user stories

Press the Escape key to close the velocity chart.The product backlog view also groups the past, current, and future iterations by their assigned dates. Select the Iteration 3 link so that we can break down work and assign it to the appropriate team members.

Figure 17Navigating to the current backlog

Before we break down the new user story, lets take a quick tour of this iteration backlog view. To start with, it shows all user stories and associated tasks that are assigned to the selected iteration, regardless of state.

Figure 18Current iteration backlog view

At a glance, you can see that the current iteration runs from July 1 to 12, with four work days remaining. Just to the right of the current iteration date range, there is a small graph showing the burn down of the remaining work.

Figure 19Burn down graph

Click on the burn down graph to view it. The graph shows remaining work over the course of the iteration.

Figure 20Enlarged burn down graph

Press the Escape key to close the burn down graph.Locate the overall Work bar that shows how close to capacity we are for the current iteration based on the total of the Remaining Work for the tasks in this iteration and based on the total capacity for the team. It looks like we are okay now, but we still havent broken the new user story into tasks for the team yet.

Figure 21Overall remaining work with respect to team capacity

Select the Capacity link to look at the team capacity details.

Figure 22Location of Capacity link

The capacity view allows us to specify the number of hours per day that each team member will be working on this project, days off per team member, and overall team days off. These capacity settings apply to the current iteration. You can optionally use the activity column to describe the disciplines that each team member specializes in. When tasks are broken down by activity as well, it can provide another view across your teams capacity to determine if, for example, you have enough people working on documentation to meet the demands for this iteration. For now, leave the capacity settings unmodified.

Figure 23Team capacity settings

Return to the Backlog view for the current iteration.

Figure 24Location of Contents tab

Lets say that the decision is made to proceed with committing to the new work item. Return to the Iteration 3 backlog view. Select the button with the + symbol in it to the left of the new user story to add a new task. This will become a child task of the user story and will be used to help describe the implementation details required to complete this user story.

Figure 25Location of the button used to create new tasks

For the new task, enter Consume OData feed for weather alerts for the Title, assign it to Brian Keller, and set the Remaining Work to 8 hours. Select the Save and Close button.

Figure 26Creating a new task

Note that the new task was added as a child of the user story and that the overall team work bar has turned red, indicating that we have too much work assigned based on capacity.

Figure 27Insert Caption

It looks like the bug has not been worked on yet, so this may be a good candidate to reschedule for a future iteration so that the team can get back on track given their additional workload. Drag and drop the bug onto Iteration 4 on the left-hand side of the window.

Figure 28Using drag and drop to re-assign work to different iterations

Take another look at the overall Work bar once again to make sure it is now green. This means that we are within the current team capacity. Just dont tell the VP, or he might find another high-priority request for us to work on!

Figure 29Remaining work for current iteration is within team capacity

Now that we have finished breaking down the work and assigning it to team members, lets take a look at the task board that will be used in the next stand-up team meeting to report and record progress. Select the Board link from Iteration 3.

Figure 30Task board link

Note: Team Foundation Server 2013 now has a task board for each iteration, whereas previously there was just one for the overall product backlog.

By default, the task board shows all tasks for the current iteration, grouped by product backlog item and by the current state. Drag and drop the Consume OData feed for weather alerts task to the In Progress column.

Figure 31Drag and drop tasks on the task board to move them between states

Note: The task board is touch enabled as well. This will not work within this virtual machine, but you might want to put in your request now for that nice wall-mounted touch-screen monitor youve been wanting for your team.

Single-click on the 8 value shown on the Consume OData feed for weather alerts task and change the Remaining Work to 5 to simulate Brian working on the task during the day.

Figure 32Updating remaining work for a task

The new high-priority task is now in progress with an estimated 5 hours of work left to go.

Figure 33Task board

Drag and drop the task titled Create database for branch office location lookup to the Done column to record that work as completed. Note that the remaining work is automatically reduced to 0.

Figure 34Completing a task with the task board

Notice that the burn down chart in the top-right corner is automatically updated after you made changes on the task board. Click on the burn down chart and note that there is about 15 hours of effort left in order to complete the work for the iteration.

Figure 35Burn down chart

Close the burn down chart.Note that each row representing a work item shows a rollup of hours remaining, which is a sum of remaining work for all child tasks. In addition to that, each column representing a status has a rollup of remaining work, giving you a good idea how much work the team is actively working on right now.

Figure 36Task board showing rollup of hours

The task board also group by team members. Select the People grouping option in the top-right of the task board view.

Figure 37Group tasks by people

This view makes it easy to see what team members are currently working on and how much effort remains for each for the remainder of the current iteration.

Figure 38Grouping tasks by people

Exercise 2: Agile Portfolio ManagementIn this exercise, you will learn about some of the new agile portfolio management capabilities which have been introduced with Team Foundation Server 2013. These capabilities allow larger organizations to understand the scope of work across several teams and see how that work rolls up into broader initiatives. In this exercise, you will explore how multiple teams at Fabrikam Fiber can collaborate together to work on features.Lets start out by taking a look at the Fabrikam Fiber project from the top-down, in a manner that would typically be associated with a management role. Select the gear icon in the top-right corner of the web portal. This opens the administration pages in a new tab.

Figure 39Loading administration site

Navigate to the FabrikamFiber project node.

Figure 40Navigate to project node

The FabrikamFiber project has five teams, with the Fabrikam Fiber Leadership Team assigned as the project default.

Figure 41Fabrikam Fiber teams

Select the Areas tab.

Figure 42Areas tab

The management team currently owns the Development area and all sub-areas. This gives them visibility into the backlog of all teams, even for work items that are not mapped to features. Optionally, the management team could also choose to not include sub-areas, thereby removing work items from their product backlog view as soon as they are assigned to one of the teams.

Figure 43Area configuration for management team

Select the Overview tab.

Figure 44Overview tab

Select the Fabrikam Fiber Database team link.

Figure 45Fabrikam Fiber Database Team link

Select the Areas tab.

Figure 46Areas tab

The Database team is currently configured to see work items from just the root Development area and the Database Team sub-area. This allows them to see backlog items created by the management team and ones specifically assigned to their team. With this kind of structure, each team can work independently on its own backlog, defined by its area path, unrelated to the other teams work.

Figure 47Area configuration for Database team

Close the administration tab in Internet Explorer to return to the web portal.Navigate to the Fabrikam Fiber Leadership Team.

Figure 48Navigating to management team

Select the Features link to view the feature backlog.

Figure 49Viewing features backlog

If the management team wants to drill up or down the backlog hierarchy, they can do so by changing the backlog view. While viewing the features backlog, select the second bar to drill down to the task level.

Figure 50Viewing Backlog Items to Tasks

This view shows the backlog items with all child tasks. Note that the different work items types are color-coded.

Figure 51Viewing Features to Tasks

The child work items are always shown, regardless of which team they are assigned to. To see this more clearly, lets add the Area Path column to the view. Select the Column Options button.

Figure 52Column Options button

Double-click on Area Path from the available columns and then select OK.

Figure 53Add Area Path column

Figure 54Add Area Path column

If you look at the area path column for different product backlog items, you can see that they are assigned to different teams. The ability to drill down into the various backlogs gives the management team the desired level of visibility into the breakdown and implementation of features.

Figure 55Area path column showing assigned teams

Select the Features link so that the panel for creating new features is visible once again.

Figure 56Features backlog link

Now lets take a look at how to create a new feature and then link it to a work item that will be assigned to one of the agile teams. Create a new feature titled Reporting for technicians and services and then select the Add button.

Figure 57Creating new feature

Select the Backlog Items link.

Figure 58Navigating to backlog

Create a new Product Backlog Item named Modify databases to support on-demand reporting for technician activity and then select the Add button.

Figure 59Adding new PBI

Double-click on the new work item to open it.

Figure 60Opening work item

Assign the work item to the database team lead, Adam Barr.

Figure 61Assign work item

Assign the Area to the Database team so that it shows up on their backlog.

Figure 62Assign to team area path

Select the Save and Close button.

Figure 63Save and Close work item

The web portal in Team Foundation Server 2013 has a new mapping feature that makes it easy to link backlog items to features. Select the Mapping link in the top-right corner to toggle the mapping feature on.

Figure 64Toggle mapping feature

Drag and drop the new PBI onto the Reporting for technicians and services feature.

Figure 65Mapping work items to features

Now lets load the web portal for the database team. Navigate to the Fabrikam Fiber Database Team.

Figure 66Navigate to database team

You should now be looking at the backlog for the database team.

Figure 67Backlog Items link

Select the bar just to the right of the Features link to drill up. This will help the team get an idea of the scope and context for the work that they have been assigned.

Figure 68Viewing features associated with PBIs (drilling up)

Figure 69Viewing features associated with PBIs (drilling up)

Exercise 3: Flexibility of Agile ToolsIn the previous exercise, you learned about how Team Foundation Server 2013 can scale to meet the needs of larger teams working towards common goals. This approach requires that everybody in the organization uses the same team project within Team Foundation Server and therefore the same process template (which defines the way work items and their workflows are defined). Understanding this, Microsoft has begun to allow individual teams to customize certain aspects of the ways in which they manage and track their work without requiring centralized changes to their process templates.In this exercise, you will learn more about Kanban and how it contributes to the flexibility of the agile toolset provided by Team Foundation Server 2013. You will also learn about work item tagging. Both of these features can be utilized and customized independently by different teams without making changes to the underlying process template. The Kanban board was first introduced with Team Foundation Server 2012 Update 1. Kanban is a process improvement tool that can be used in an incremental fashion regardless of the current software development methodology that you are using. It assists with the throttling and tracking of work and illustrates the delivery of value over time to the project stakeholders. Each backlog has its own Kanban board, and each team has its own view of that. Navigate to the Fabrikam Fiber Devices Team.

Figure 70Navigate to devices team

Select the Board link for the backlog items.

Figure 71Board link

The Kanban board shows the top backlog items across all states and iterations, allows you to move items between states, and allows you to set Work In Progress (WIP) limits for each state. One of the primary reasons for using Kanban and limiting work in progress is that it helps identify bottlenecks in your development process and minimize lead time for new features. Lets say that the devices team is not delivering finished work as quickly as desired, and that it is suspected that the underlying issue may have to do with taking on too many tasks at once at the beginning of each sprint (and the associated context-switching tax). If we are more careful about the number of tasks that we commit to, perhaps we can better focus our efforts.Lets lower the Work In Progress limit for the Committed state to see what the Kanban board looks like when too much work has been committed to at once. Right now, the limit is 5 work items.

Figure 72WIP limit

Select the Customize Columns button.

Figure 73Customize Columns button

Change the Work In Progress limit (WIP) to be 3 for the Committed column and then select the OK button.

Figure 74Setting WIP limit

On the Kanban board, column headers will provide an indication when a Work In Progress limit is exceeded. In this case, the Committed column shows us that we have exceeded the limit.

Figure 75WIP limit exceeded

Note: Work In Progress limits provide feedback when appropriate but they do not prevent a team from taking on additional work. You need to actively check the Kanban board in order to discover that you are exceeding set limits.

Lets say that the devices team has decided that they want to add in a column that represents work that has been tested on a physical device. This is the only team that would desire to keep track of such a state, and they can easily add this to their Kanban board.Select the Customize Columns button.

Figure 76Customize Columns button

Here you can add, remove, delete, and even rename columns to better suit your team workflow. However, you are still subject to restrictions put in place by the underlying process template, so you must map columns to valid work item states and respect the valid state transitions.

Figure 77Customizing Kanban columns

Select the green + button that is located between the Committed and Done columns.

Figure 78Adding a new column

In the new column, enter a name of Device Tested and then select the OK button. This Kanban customization is done per team, so the Device teams decisions are not automatically imposed on the other development teams.

Figure 79Adding a new column

Figure 80Kanban board showing customizations for team

Kanban support also adds a new graph to the backlog views called the Cumulative Flow Diagram. Click on the small diagram to open it.

Figure 81Cumulative Flow Diagram location

The Cumulative Flow Diagram (CFD) shows the amount of work is various states over time for the selected team. The horizontal axis shows lead time and the vertical axis shows work in progress.

Figure 82Cumulative Flow Diagram

Note: The CFD shown above does not necessarily represent an ideal scenario where a team is providing continuous output. More typically and ideally, you would see bands of color representing all states increase over time like the following diagram.

Press the Escape key to close the CFD.For additional information on using the Kanban board, please see Manage Your Backlog with the Kanban Board.Work item tagging, another relatively new feature introduced in Team Foundation Server 2012 Update 2, allows you to easily categorize and filter lists of work items in the web portal.Navigate to the Fabrikam Fiber Leadership Team.

Figure 83Navigating to management team

Navigate to the Backlog Items view.

Figure 84Backlog Items list

Lets say that a cross-team initiative is put in place to give customer facing work items higher priority. Also imagine that the product backlog is quite large, such that visually searching through all titles and assigning them to sprints and teams is quite time consuming. One way to help with this is to create work item tags and then filter the list of work items.Select the Column Options button.

Figure 85Column Options button

Add the Tags column to the Selected Columns column, and position it just after the Title. Select the OK button.

Figure 86Adding Tags column

Note that a number of work item tags are already in place.

Figure 87Backlog showing work item tags

Double-click on the work item titled Customer should see weather-related outages on portal.

Figure 88Opening work item

Select the Add button to add a tag.

Figure 89Add button

Enter the text Customer and then select Save and Close.

Figure 90Adding Customer tag

Repeat the process of tagging any work items that appear to be customer facing. You should end up with something like the following screenshot, but there is no need to match it exactly.

Figure 91New work item tags

With the desired tagging in place, select the Filter button in the top-right corner of the backlog list.

Figure 92Filter button

Select the Customer tag to filter by just that tag.

Figure 93Filtering by work item tag

With this filtered view, the teams will have a much easier time finding the work items that they should focus on first. Note that this filtering also disables the ability to add new backlog items, disables stack ranking and forecasting.

Figure 94Filtered backlog view

Note: Sub-filtering can be done by selecting another tag (if there are any in this filtered subset). To remove the filter, simply select the Filter button once again.

Exercise 4: Work Item ChartingIn this exercise, we will demonstrate the work item charting capability introduced with Team Foundation Server 2013. Work item charting allows you to create visual chart representations of the data returned from TFS work item queries. This can be used to help better understand the state of projects.Navigate to the Fabrikam Fiber Leadership Team (if necessary).

Figure 95Navigating to management team

Lets say that the Fabrikam Fiber management team would like to better understand how tasks are broken down by user. Navigate to the work item queries section of the web portal.

Figure 96Work item queries view

Since these charts are based on work items, we first need to define a query that will return the data that we are interested in. Select the New drop-down button followed by the New Query option.

Figure 97Creating a new work item query

The default query will select all work items in any state for the current project. We want to select just Tasks, so go ahead and modify the value of clause for Work Item Type to be Task.

Figure 98Querying for all tasks

Select the Save Query As button.

Figure 99Saving new query

Note: Work item charts require the associated query to return a flat list of work items.

Name the query All Tasks and then select the OK button.

Figure 100Naming new query

Select the Charts link.

Figure 101Charts link

First we will create a pie chart showing tasks by assigned user. Select the New Chart button.

Figure 102New Chart button

Title the chart Tasks by User, group by the Assigned To field, and then select the OK button.

Figure 103Creating new pie chart

Lets create one more chart to help visualize the task progress for each team member. Select the New Chart button once again.Select the Stacked Bar chart type. Note that this chart type requires you to specify two different fields for the rows and columns.

Figure 104Creating a new stacked bar chart

Title the chart Task State by User, select the Assigned To field for the Rows, select the State field for the Columns, and finally select the OK button to create the chart.

Figure 105Creating a new stacked bar chart

Figure 106New task charts

You can add to the available grouping options by modifying the work item query and adding in additional display columns. Select the Editor link for the query.

Figure 107Editor link

Select the Column Options button.

Figure 108Column Options button

Select the Task item for the Work Item Type.

Figure 109Filtering for Task fields

Double-click the Area Path option from the Available Columns list.

Figure 110Selecting the Area Path field

Select the OK button.

Figure 111Selecting the Area Path field

Select the Save button.

Figure 112Saving modified query

Select the Charts link to return to the charts view and use your charting skills to create a pie chart showing tasks grouped by the Area Path field. This gives the management team an idea of how the work is distributed amongst the teams.

Figure 113Task breakdown by team

To give feedback please write to [email protected] 2013 by Microsoft Corporation. All rights reserved.