Monday, December 01, 2008

Comfortably Scrum: Will VSTS 2010 be More Agile Friendly?

I was very excited about all the new features I kept hearing were coming to VSTS/TFS 2010 (formerly Rosario). I was especially interested in some talk about adding more Agile friendly functionality into both VSTS and TFS. I've downloaded the 2010 CTP and been reviewing the Channel 9 2010 videos and here are my initial impressions:

  • Iteration Planning/Backlog Maintenance (-1): This is probably my most disappointing set of features. I never found the work item queries view in Team Explorer or Excel a decent interface for organizing the Product Backlog and Release/Sprint Planning. Products like RallyDev and VersionOne (which both have connectors to TFS) had easy to use, drag and drop user interfaces that made these features more tactile. Stephanie Saad shows the new Agile planning templates in this Channel 9 video. All that was really added were some Excel sections for capacity and release number crunching that we had implemented ourselves in Excel about a year ago. Microsoft may be simply relying on ISVs like Rally and VersionOne to fill in this space but I hate to buy another product (on top of VSTS/TFS's substantial cost) to get this functionality.

  • Unit Testing/TDD Support (+1): While I am not a TDD zealot I do believe in test early and test often when it comes to unit testing. For those who really wanted to write their tests first in true TDD fashion it was a little kludgy to get a unit test class written without any of the references of target classes already defined. There are some new options while creating your unit tests to automatically create your target classes and namespaces as you go. Karen Lui demonstrates this in this Channel 9 video. These features are definitely going to make writing unit tests first easier.

  • QA/Functional Testing (+1): This functionality I have not gotten to play around with as much so I have really only gotten an idea of how it works from this video. The new testing application, Camano, is a stand alone application that QA/functional testers can use to execute manual test and record them for automation afterwards. There are also the other cool features for recording video while testing and saving metadata about the path the tester took to get to the bug. All this info can be bundled up in a bug report that can be sent and tracked through TFS.

  • Self Documenting Code (+1): Since there is less concentration on documenting architecture and design information up front in most Agile processes, techniques for making your code/application self documenting are highly recommended. But even these practices never gave you those great UML diagrams that really showed the "big picture" of how the solution as a whole was built. But now with some of the "bottom up" design features (demonstrated here), you can generate not only the standard class diagrams, but sequence diagrams also. The Architecture Explorer is also a very cool way to browse the basic structure of any .NET solution.

  • Code Quality [Adherence to Architecture/Design] (+1): Enforcing code quality in a self managing Agile team is sometimes a difficult task. Pair programming and good code reviews are good ways to ensure the developers are following the basic architecture/design of the solution. The Layer Diagram (same video as above at the 30 minute mark) is a great way to layout the basic boundaries of your application that can actually enforce that the underlying code does not cross boundaries.

So far the Release/Sprint Planning and Backlog management is the only area I found wanting. Otherwise I am very eager to start using 2010!


Anonymous said...

For "Iteration Planning/Backlog Maintenance" does the Conchango Scrum template suffice / hit the mark?

Anonymous said...

It is not the template that is the problem. I use the Conchango template, but the mechanisms in TFS for managing work items (no matter what template) are kludgy. If you think about how you would do it without any software tool, you would be moving User Story cards around a table to prioritize them and organize them into "release" piles. Tools like RallyDev and VersionOne have an interface that simulates this real world activity. Work Items queries in Team Explorer and Excel just do not give you a rich a user experience.

Anonymous said...

I really like the Task Board, but it is best used for the Daily Scrum as it simulates managing Sprint Backlog items for Product Backlog items already assigned to a Sprint. It is not a great tool for Product Planning or Release Planning. This demo from VersionOne shows their interface for Release Planning that is pretty slick. The Scrum Works interface for this is also user friendly (see this demo).

I think you are right that Microsoft is going to leave this to the ISVs it seems, but with the hype I had heard about their new "Agile" features I was hoping they would beef up this area. The stuff they added to Excel is mediocre at best.

Agile in TFS is a niche right now, but I have booked consulting engagements the entire last half of this year helping clients adopt Scrum and implement TFS. Larger shops that cannot (or will not) adopt the more low tech (note cards, etc.) or free/cheap (and less integrated like nAnt, CruiseControl, SubVersion, etc.) Agile management products see a lot of value in the VSTS/TFS combo. And I think 2010 will increase that adoption. Time will tell!