I’m a Kanban fan. It brings clarity and focus of the effort to speed software delivery, overcome problems, and help build a team of effective, learning people.
Kanban is an approach to process improvement that is characterized by incremental, rather than revolutionary change. Teams start where they are, and use Kanban to help identify bottlenecks and guide continuous, incremental improvements. Thus, I’ve always been leery of the thought of a fixed Kanban process template for TFS. Kanban isn’t a prescription for how to do software development, it’s a prescription for how to change the software development process. And process templates tend to prescribe a process. That flies in the face of its incremental nature.
But the team at Microsoft (yes, Gregg Boer, I’m talking to you), gets it. Their Kanban implementation isn’t another process template, it’s an overlay on all of the existing templates on TfsPreview. This lets us start where we are. For instance, if you’re doing Scrum, as I am on one team I’m working on, this gives us the ability to start examining the flow of value through the system.
Here’s an example:
Note a couple things on this board.
- When you look at the Product Backlog, there’s a new tab, showing the Board. Unlike the Task Board used to track tasks, this one is used to track the status of Product Backlog Items (aka User Stories). Better yet, this view shows all of the PBIs, even those assigned to sprints, so you can get an end to end view of the entire effort.
- There are WIP limits in the Approved and Committed columns. As you can see, we are under our limit in the Approved column, and so the number of items is presented in Green. On the other hand, we have too many items in the Committed column, so we are presented with Red.
- In the upper right, there’s a new Cumulative Flow Diagram (CFD), so we can track our progress. Just a quick look immediately identifies that there was a fairly long period of no activity, followed
by regular progress in the past several weeks. Clicking on the CFD expands it for a closer look.
As I mentioned earlier, we’re doing Scrum in this effort, and thus we’re working in sprints. This has helped us identify and predict the work we can accomplish during a time period. And the Task Board provides a good day-to-day tracking of individual and team work effort. But what has been missing is the visualization at the business level – the flow of customer valued items (PBIs) through the system. This Kanban addition to TfsPreview.com adds that visualization. Without breaking Scrum, we’re now able to see the cadence of value delivered, expanding to view to include both technical and business views.
Overall, I’m very pleased to see this addition. I would be remiss, however, if I didn’t mention a few things I’m still looking for.
- Configurable columns. I realize that TfsPreview doesn’t allow work items modifications, so I can understand the limitations, however, as this feature moves to on-premise TFS, I’m hoping to see more configuration options for columns – possibly even columns that aren’t directly linked to work item states. This would allow for improvements over time, and the opportunity to merge columns to help reduce WIP.
- Visible metrics. I could really use average cycle time for items. This would be especially valuable if I could look at cycle times based on some configurable property. This would help answer some important questions. For instance, how fast do small PBIs flow through the system relative to large PBIs? Or what is the cycle time of an expedited work item, versus a standard one? Once this feature is available on-premise I’ll be able to yank that data out of the cube, but for now I’d like some rough data.
- Card ages. Maybe instead of cycle time metrics I could make do with start and end dates on the cards themselves, or just a count of how many days the card has been “Work in Process”. Once a card is approved, the clock should start ticking, and stop only once it’s been closed. That would give me, at a glance, information about which PBIs are particularly hard, are being ignored, or are otherwise blocking clean flow through the system.
- Classes of service. I’d like to be able to very rapidly identify which of the PBIs are the most critical, or are time sensitive. Possibly even allow me to identify my own fields or icons to appear on the cards. This would help me identify when something big, important or risky is flowing through the system, and may require extra attention.
- Mr. Yuck stickers and Smiley Faces. OK, maybe this one is a stretch, but I really like to be able to tag a card with a Mr. Yuk sticker or . This identifies cards that, for good or bad, should be brought up in the retrospective.
There are more improvements, but they get to be nit-picky as I go further down the list. And the reality is that Kanban isn’t about having every little convenience in your tool. It’s about guiding incremental change, and the team in the Microsoft Developer Division has just given us a really nice, incremental change to TFS that is clean, easy to adopt, and will help us make our own incremental improvements.