Team Foundation Server 11 has added many features in the area of Application Lifecycle Management. Some of the highlights include improved support for iterations/sprints and resource allocation, support for third part testing frameworks, and a much more capable dependency graph.
Requirements Gathering
Under Microsoft’s vision requirements start with storyboards. To facilitate this Microsoft is offering “PowerPoint Storyboarding”. This is essentially PowerPoint with templates and shapes that are specific to the various device formats that Visual Studio can target.
PowerPoint was chosen because most people are already familiar with using it. Most of the features they needed knew they were going to need (e.g. themes, snippets, templates) are already provided by PowerPoint.
Feature Teams and Backlogs
TFS 11 will support feature teams and backlogs. A feature team is a subset of a larger team working from a common back log. The idea is developers can self-select items from the backlog instead waiting for work items to be assigned to them.
Prioritization, Iterations, and Capacity
In previous version of TFS the iterations were nothing more than a drop-down box. With TFS 11 they are a first class concept that drives much of the functionality. When iterations are created they are given date ranges so that TFS, and the developers, know when the sprint it represents starts and ends.
If developers add estimates to the work items the user interface will automatically calculate the work loads. If any developer is over-allocated he will be flagged so that his lead will know to reallocate his work to a later sprint.
Dependency Tracking
Visual Studio 10 had the ability to render simple dependency graphs, but as the solution got bigger it would grind to a halt. And the need to recalculate it each time the view is opened made it more of a novelty than a tool.
In Visual Studio 11 the graph starts in a simplified view that only shows assembly level dependencies. From there you have drill down through several levels:
1. Assembly
2. Namespace
3. Class
4. Method
Unlike VS 10, the data behind the graphs will be cached so that developers can quickly refer to them.
Note: This tool requires that developers make their dependencies visible in code. If they use dynamic typing or hide all their concrete classes behind interfaces then the tool will not be able to determine what the real dependencies are.
Work Interruptions
When work is interrupted developers are often left with partially complete code that cannot be checked in. Under TFS 11 the changes in progress can be saved into a shelf-set that is associated with a specific work item.
Code Review
Developers can now create code review requests directly within Visual Studio.
When a developer starts reviewing code they are presented with a list of changed files. Clicking on any file will display the code in “merge view”. This can show changes either inline or with side-by-side windows. The reviewer can add comments to the code by right-clicking on a line. They may also reply to questions that were attached directly to the code review request.
Code reviews are usually done with shelf-sets instead of change sets. That way the developer who requested the review can update his code accordingly before committing it to the branch for others to consume.
Defect Analysis
Bugs do not normally occurring singly, they are usually part of a larger pattern. Once a bug is fixed developers can use the “find matching clones” to see other code that follows the same pattern.
Unit Testing
As mentioned in our previous report, Visual Studio will be able to run any unit testing framework. Microsoft will provide the hooks needed for the most common frameworks such as NUnit and xUnit, though any framework could potentially implement the necessary contracts.
Manual Testing
When performing manual testing TFS can record what is occurring in the application. That information is then associated with any bug reports that are created during the testing session.
Web Access
The web interface for TFS will allow for the editing of files right in the browser.