Welcome to EMC Consulting Blogs Sign in | Join | Help

Crispin Parker's Blog

About Scrum for Team System and .Net development

Task Board for Team system and the great WPF challenge

I'm special... Well that's what I like to think! My consulting role within Conchango (as an IP only person) is quite unique*. I'm shielded from the competitive aspects of the normal client based projects and the constant pull of project managers trying to hunt (poach?) development resources.

* There can be only one?

All sounds wonderful doesn't it? Well, of course it's not all tea parties and cake...

Upon joining Conchango, I was tasked with owning the development of the Scrum for Team System Team Foundation Server (SfTS) process template. This was especially challenging as I had never used Team System before and had only ever been involved in projects that brandished the word "agile" as a baton of management buzz word bingo. Also, Visual Studio 2008 (Orcas) was about to be launched and the version 1.2 of the SfTS didn't work in TFS 2008.

The trials and tribulations were met head on and I succeeded in meeting the 2008 challenge. This was accomplished along with the aid of David Wright (SharePoint guru and prized Conchango Architect), Steve Wright (SQL Reporting ninja and Doctor Who's biggest fan), Paul Langan (bohemian contractor of Irish descent), Colin Bird CTO (Master of Agility and the art of tangent) and Stuart Preston (Hardest working man in the company). The SfTS 2.0 template was released and all was well.

Having tasted success, I was thirsty for more... Well that must have been Colin's impression as he suggested that the SfTS team project needed a better UI than the Visual Studio Team Explorer offering. So the concept of the Task Board for Team System was born... I had heard good things about Windows Presentation Foundation (WPF) and created a proof of concept prototype in about a week. This simple concept of dragging objects along swim lanes of statuses proved to be a winning formula.

The Task Board Prototype

Task Board Prototype

Little did I know at the time, but that was the easy bit. Learning WPF (after 8 years if "Windows Forms" development) has been an uphill struggle. It's only now as I look back over the battle field littered with the corpses of my struggles, that I can really appreciate the true strength of the WPF as a UI delivery platform. WPF's ability to create graphical representations of data objects is so powerful and offers so much flexibility; I don't think I'll be able to go back to windows forms any time soon.

WPF has thrown up some interesting challenges along the way. For example: SfTS uses the TFS Iteration Path as the work item sprint indicator. The Iteration Path is a tree structured data object, so in order to represent this in a UI you would use a tree view control. Creating and populating a tree view within WPF is pretty straight forward (once you have mastered content templates!). But once my tree view was populated with all the possible iteration path nodes, I wanted to programmatically select the current node path. This sounds trivial doesn't it? Unfortunately, the truth is that, out of the box, the WPF tree view control doesn't allow you to select a tree view node from with code!!! The selected node property is read only and cannot be set. The MSDN library glosses over this slight problem without mention. At least it did last time I looked.

The reason that tree node selection doesn't /can't work, is that the tree nodes don't exist (have not been rendered) until the parent node has been expanded. So, you have to programmatically expand all the nodes within the tree and capture the "ItemContainerGenerator.StatusChanged" event. Once in that event, you can traverse the nodes looking for your default value, setting it as selected when found. My solution code for this was not pretty and I will have to refactor it before I'm happy. But this is just a single example of how WPF can throw spanners at you while you develop! If you're interested in how I've accomplished this, let me know and I will write a blog about it with some example code.

Work Item State Icons

Work Item State Icons

So, from the WPF fire, the Task Board for Team System was born. The first release (Beta 1) was opened to the public in June 2008 via the Scrum for Team System community forum. This first version of the task board was mainly derived from my understanding of the SfTS process template. It allowed you to perform actions that worked well for the process template and was structure to work with the templates dependence on the TFS infrastructure. However, it didn't guide you in Scrum techniques as well as it could. So, for the next release, we decided to make Scrum process the main focus.

Task Board for Team System - Beta 1

Task Board for Team System - Beta 1

The Task Board for Team System Beta 2 was released Yesterday (14th August 2008). And, thanks to Simon Bennett, the task board now features a layout that better represents the scrum aspects of the process template. It also includes many other improvements over the original release (a full change log is listed below for those who are interested). In addition to our improvement ideas, we have also been encouraging our beta testers to make their own feature suggestions in the community forum. The response to this has been awesome and the majority of the feature suggestions have been excellent.

Task Board for Team System Beta 2

Task Board for Team System beta 2 - Bug Tooltip   Task Board for Team System beta 2 - Dragging Multiple items

So, where to now? Obviously, we need to work on the RTM version of the task board. This will involve licensing, new features (many suggested by our beta forum members) and a new UI skin (more details on this soon!). It is not yet decided if we are going to have a Beta 3. Time constraints will no doubt be the deciding factor in this. At the current time, a Beta 3 looks likely.

The story of rich UI control for the SfTS process template doesn't end with the Task Board for Team System. The task board only covers the in-sprint activity of the Scrum process. Our next offering (code named Product Backlog Control Utility) will cover some of the out of sprint activities, such as backlog grooming and sprint planning. It is also our intention to make this utility Product Owner friendly, which is something the current SfTS Team Explorer UI isn't!

Becoming a Task Board for Team System beta tester is free and painless. You need to sign up to the forum, and then enter your forum user name into a registration page. Once this is accomplished, you can then access the beta testers forum and download the Task Board for Team System installer.

Task Board for Team System Beta 2 Change Log:

  • Ability to filter PBIs by status.
  • Iteration Path removed from Bug and PBI edit panels
  • Invalid entries into numeric fields highlighted in red
  • Deferred Column hidden when in "Sprinting Mode"
  • SBIs ordered by task priority (flow direction - Left then down)
  • Project details included in refresh function (refreshes project user names)
  • Data entries committed on key press (had to change focus before)
  • Columns maintain percentage fill when TB resized.
  • Planning Mode and Sprinting mode have independent column sizes.
  • Polling function extended to include newly created work items (Previous version only refreshed loaded work items).
  • Polling duration is now selectable (range 10 to 360 seconds).
  • PBI list resorted when new bug or PBI added.
  • List now auto scrolls to last edited work item. Ensures last item is scrolled into view.
  • Installer now offers choice of desktop shortcut creation and app launch after install.
  • Duplicate team member names filtered from the list.
  • Team member names sorted.
  • Deleted Column removed.
  • Deleted area added to top level expander (reduced Orphans area to accommodate).
  • Deleted SBIs have limited context menu options.
  • Work Item Tooltip improved.
  • New font size scale control added.
  • Toolbar split into smaller tool bars.
  • Toolbars can now be resized and arranged.
  • SBI object size increased to accommodate more text.
  • State Icon added to SBI object.
  • State Icon added to state containers.
  • Bug title reconfigured. New title is ([ID] - (Bug) [State])
  • Bug Icon added to bug row header and tooltip.
  • Current assignment now indicated in context menu.
  • Current work remaining now indicated in context menu.
  • Visual makeover. Added drop shadows and improved dialogs.
  • Yes/No dialogs now have a default button.
  • Story Points (estimated effort) now included in PBI row header.
  • Polling functionality improved. Polling is now paused while saving and dragging to stop syncronisation errors.
  • Work Item Search Dialog. You can now search for work items byt Title, Description, ID and Assigned To.

 

Links:

 

For more information on the Scrum for Team System process template and the Task Board for Team System WPF user interface, check out the SfTS Home Page home and page and the SfTS Community Forum.

Published 15 August 2008 11:00 by crispin.parker

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit

This Blog

Syndication

News

Powered by Community Server (Personal Edition), by Telligent Systems