Inside VSTS

Rosario: The Future of Work Items

Work item hierarchies have finally come into their own in the latest Rosario CTP.

We've talked about the Visual Studio Team System's work item tracking system in past columns. It's a powerful yet easy-to-use and extensible way to keep track of all the "stuff" that needs to be done for a project. However, one feature missing from Team System was the ability to create hierarchical work items.

What exactly do we mean when we say hierarchical work items? Here's a simple example: Let's assume you have a work item type called Requirement. A Requirement can be broken down into several different Task work items. In Team Foundation Server, showing an association between your Requirement work item and its associated Task work items requires you to create a link between the Requirement and each Task.

This functionality was available in both the 2005 and 2008 versions of TFS. However, there was no good way out-of-the-box to show that the Task work items were children of the parent Requirement work item. You couldn't create a report or a work item query that would show you this information, because it wasn't captured.

The ability to capture hierarchical work items was one of the most requested new features for TFS -- and Microsoft has listened. In the next version of Team System, codenamed "Rosario," you'll have hierarchical work items out of the box.

Rosario isn't out yet, but you can download a Community Technology Preview (CTP) of it to see the new features that are coming. Remember that since this is just a CTP, most everything is subject to change. Rest assured, though, while the look or feel of working with hierarchical work items may change with the final product, they'll be available when Rosario does get released.

For the rest of this article, I'll give you a brief preview of what's available in the current CTP (April 2008 as of the writing of this article) regarding hierarchical work items. Let's start with a work item query that will display all the Requirement work items currently in the work item tracking system, as shown in Figure 1.

This doesn't look much different from what's currently available in Team System. But with hierarchical work items in Rosario, we can now show all the child tasks that make up each requirement. Clicking the Query on links checkbox will allow you to specify a query against any work items that are linked to these requirement work items. For this example, in the Type of query drop-down box, we'll select Must have. With this option selected, we must now create a clause that determines which items to return. Select Link Type = Child and Work Item Type = Task. The query and its results should appear as in Figure 2.

Take at look at the Query Results in the bottom of Figure 2. Notice how the parent requirements are shown in a tree view with their child tasks. In Rosario, you now have a nice graphical view of this information, making it easy to understand.

Want to see how these work item relationships are represented on a work item form itself? Take a look at Figure 3. Notice that there's a Parents and Children view on the Description tab. This gives you a view of any parent or child work items related to this work item. Also notice that this work item has one parent (work item 104) and four children (work items 108, 109, 110 and 111).

You can also view the same information and more on the Links tab, as shown in Figure 4. As before, you can see the child and parent links in this tab. But you can also see any other links related to this work item. In Figure 4, there's a new type of link called Tested By that shows this requirement is tested by a certain Test Case work item.

We're really at just the tip of the iceberg when it comes to hierarchical work items in Rosario. Remember how you could use Microsoft Excel or Microsoft Project to work with work items in TFS? You still have that ability with Rosario. In fact, Excel makes creating hierarchical work item relationships as easy as moving a value from one column to another.

We could go on and on, but I think the message is clear: Users want hierarchical work items and, with Rosario, they're going to get them in a way that makes them easy to use.

About the Author

Mickey Gousset spends his days as a principal consultant for Infront Consulting Group. Gousset is lead author of "Professional Application Lifecycle Management with Visual Studio 2012" (Wrox, 2012) and frequents the speaker circuit singing the praises of ALM and DevOps. He also blogs at ALM Rocks!. Gousset is one of the original Team System/ALM MVPs and has held the award since 2005.

comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube