While Tarun couldn’t attend the MVP Summit in person (having just gotten married it didn’t seem the most prudent use of his vacation time
******TFS Kanban Board Swim lane Customization To Better Manage The Product Backlog by Tarun Arora**************
Brian Harry announced the customize columns feature on the TFS Kanban board that enables you to define new swim lanes based on the work item state right from Team Web Access. This feature has officially been released on the TFS Service today. A shout out to Gregg Boer and his team for delivering this great feature! I was lucky to get early access to this feature…
In this blog post I’ll show you,
- Walkthrough of customizing columns on the Kanban board
- How customize column feature has transformed the way my customer* has been doing IT demand management using excel files
* In this blog post, I’ll refer to my customer as Fabrikam Fiber.
Current State
Demand Management @ Fabrikam Fiber is currently done using MS Excel. The demand management excel sheet is used to track the delivery state of the IT projects in flight and various other requests in the backlog that have the potential to become independent IT projects.
Figure 1 - The Demand Management excel sheet is currently used to track 170 items
Fabrikam Fiber uses the below shown workflow to access the scope, time, money and value for any item added to the demand management sheet.
Figure 2 - The workflow to manage any item added to the demand management excel sheet
Drawbacks with the current approach,
- No visual representation of demand
- No audit trail of changes
- Hard to track actions
- Too much of manual work to manage the excel sheet
The Transformation
Step 1 - Load Product Backlog into Team Project
Create a new team project on the companies team project collection and call is ‘Fabrikam Demand Management’.
Figure 3 - Create a new team project and call it Fabrikam Demand Management
Upload the contents of the demand management excel sheet to the brand new team project. This can easily be done using the excel integration that TFS provides.
Figure 4 - Migrate the demand items from MS excel to the new team project Demand Management
Step 2 - Customize the Swim lanes in the Kanban board
While in the backlog view, click on the board tab to navigate to the Kanban board view. By default you will see all the newly entered product backlog items or bugs in this view. Refer to the screen shot below.
Figure 5 - A first look at the Kanban board after the product backlog has been loaded into Fiberkam Demand Management Project
Now click on the Customize Column link on the left side corner in the Kanban board. You will see the Customize Column window. This window will show you the current swim lane configuration for Bug and Product Backlog Type work items. As you can see any bug or product backlog item in the new state will be assigned to the new swim lane because of this configuration. similarly for approved, committed and done states. You also have the ability to customize the work in progress limit on each of these swim lanes. If the swim lane has more work items assigned than the prescribed limit, the swim lane header turns red to show this violation. This gives you the ability to control the amount of work assigned to a state. By clicking on the ‘+’ icon you can introduce one or more swim lanes.
Figure 6 - First look at the customize column window
Why would I want to add more swim lanes?
In Fabrikam Fiber a work item stays in the approved state during its journey in the workflow from Discovery => Investment Return Investigation and only gets committed to once it has successfully passed through these states. By only having one approved swim lane, it is very difficult to track the progress of the work item from Discovery => Investment Return Investigation.
Figure 7 - Translating the Fabrikam Demand Workflow into swim lane configuration
- An approved work item goes through the discovery phase and investment return investigation phase, the company does not encourage more than 5 items in discovery and 10 items in investment return investigation phase. It is possible that an approved work item may be put on hold, the company does not encourage more than 1 item on hold.
- A work item in the committed state goes through the to be scheduled phase and in delivery phase, the company does not encourage more than 5 items in the to be scheduled phase and 15 items in the delivery phase.
Figure 8 - Configure swim lanes as per Fabriams workflow specification
Click OK to be route back to the Kanban board with the newly configured swim lanes.
Figure 9 - Newly configured swim lanes on the Kanban board
Figure 10 - Product backlog items assigned to the customized swim lanes
Notice that the Hold swim lane has a red header because the number of items assigned to this swim lane are more than the prescribed wip limit configured by you in the customize configuration window.
As you drag and drop items from a swim lane, the work item gets updated in the background. For example in the screen shot below, when I move the first work item from the ‘Investment Return Investigation’ swim lane to the ‘To Be Scheduled’ swim lane, the work item state gets updated from Approved to Committed.
Figure 11 - Dragging the work item between swim lanes updates the fields and if applicable the work item state
Figure 12 - Work Item History showing the change in state from Approved to Committed and Audit trail of changes to the Kanban Swim lane
If a work item in the Committed state is assigned back to the Approved state, it is by default assigned to the first field in that state. In our case this would be Discovery.
Figure 13 - Change the State of work item from Committed to Approved
Visualize the work item swim lane flow using the cumulative flow graph
Figure 14 - Visualize the work item swim lane flow on the cumulative flow graph
Advantages of the new approach,
- Effortless configuration of the swim lanes on the Kanban board
- Visual representation of backlog, easy to spot the bottle necks in the workflow
- Audit trail of changes to backlog, records change at state and fields
- Very easy to track actions, using the notification module in TFS, it is easy to set up alerts to be notified upon changes to work items
- Easy to customize swim lanes, no manual work required to administer the board
Frequently Asked Questions
1. How does the work item remember which swim lane it belongs to?
- This information is stored in fields in a work item. These fields are not visible on the work item form.
2. Can I use a WIQ to query a work item by field?
- No, the work item cannot be queried by its field. The field information is not stored in the TFS warehouse. You can however query this information using the TFS API.
3. What would happen to the work items in the swim lane, if I re-customize that swim lane in the customize column window in the Kanban board
- The work item gets re-assigned to the first field in the state the work item currently belongs to. So for example, in case of Fabrikam Fiber, if you removed the Investment Return Investigation swim lane, all work items currently in this swim lane would be reassigned to the swim lane Discovery which is the first swim lane in the Approved state.
4. Can I have multiple columns with the same name in different work item states
- No, the names need to be unique.
5. What is the default limit of the new swim lane?
- Only 20 items show up in the new swim lane at any given time. You will have to change the priority of a work item in the product backlog for it to show up in the swim lane if it is placed > 20 in the product backlog.
6. Can I change the priority of an item by dragging it over the other in the Kanban board?
- No, this can be done from the product backlog view.
About Tarun Arora:
Tarun Arora is a Microsoft Certified professional developer for Enterprise Applications. He has extensively traveled around the world gaining experience learning and working in culturally diverse teams. Tarun has over 6 years of experience developing 'Energy Trading & Risk Management' solutions for leading Trading & Banking Enterprises. His passion for technology has earned him the Microsoft Community Contributor and Microsoft MVP Award.