A Positive Team System Rant

I am bemused by the recent holy wars around Team System I am reading in the blogosphere.  I simply must weigh in on this.

To be candid and transparent, my company implemented Team System about 9 months ago under my leadership.  I brought this system to our enterprise and I have been an outspoken proponent of its usage.  Additionally, I continue to support the original vision of a ubiquitous and integrated development system with which creative and high quality software can be delivered.

To this day there remain outspoken detractors of this product within my very team.  Despite being unable to provide everything to everyone, Team System has given us transparency, ease of process, and quality evidence that we struggled to implement using other systems.

Integration

The most common way to argue against Team System seems to be to take on a particular feature or major area of functionality and contrast it with a preferred product that is somehow better.  This misses the entire point of a common development platform, which is a far more important value proposition than a feature set within a subsystem.  The ability to repeatedly drive software through to delivery using common standards of quality, completeness, performance, trace-ability, and transparency is invaluable to any organization.

Do you really think you can get all of that from cobbling together loosely coupled open source components?  Having been there and done that, I say, “No way.”

I haven’t even addressed integration of the tools into the IDE, the integration of different business units into the platform (like BA’s writing requirements, UE doing mockups, etc), the integration of the build environment, the integration of the testing tools (performance, unit, and other), the integrated source control, the integration of defect management, and the integration of the base process workflow. Nor will I :).

Open source vs. Microsoft is a pointless debate not worthy of my time to explore.  The valuable discussion is a simple, age-old one in technology debates.  What has more benefit, a tightly coupled system with high integration or a loosely coupled system with high flexibility?

It Is Loose Coupled.  No, Seriously.

The one thing about Team System that is met with the most doubt is the idea that the system is genuinely open.  It seems hard to believe that the Microsoft we knew in the 80s and 90s would build a flexible, pluggable, and fairly open system for managing software development and then expose it using W3C standards.  Frankly, that would have been hard to believe, but this is the Microsoft of today, and they did just that.

Team System is built to be extended by accessing the web services that the tools themselves use to access the underlying data.  Indeed, it is not at all unreasonable to use non-Microsoft solutions for pieces of the overall systems.  For example, we already know that we can use CruiseControl.Net to run the builds instead of TFS build types.  We can use NUnit as the unit test framework instead of MSUnit.  We can use work item and process management or not.  We can use different IDEs and languages for goodness sakes, reference the Team System plugin for Eclipse.  Because of this openness in the platform, Microsoft expects and encourages a thriving community of ISVs selling value-add additions to Team System.

It Isn’t a Methodology

If anyone thinks Microsoft is trying to preach a methodology, think again.  The methodology is driven via a customizable template which companies are free to modify or even create from scratch.  We are using Conchango’s Scrum for Team System ourselves.

‘Nuf said.

It’s Cheaper Than a Puppy

So, it isn’t free like beer, but it is cheap like a purebred puppy.  Competing products sell upwards into the six figures and they usually come tightly wrapped around a methodology.  Read Rational here.  TFS runs under $5000 and the MSDN licenses (while confusing as all hell) are money well spent even without Team System versions.

Yes, TFS will require maintenance.  It is a puppy, not beer.  But it is a bargain in the software lifecycle market.

Go Write Software

Aren’t we tired of arguing about source control systems and defect tracking?  If the developers I know and respect spent half as much energy innovating IT applications to areas of business that are not development, maybe IT could finally be seen as a value center.  It’s really great that I can write unit tests for C# in at least 5 different unit testing frameworks, but can someone come up with a standard Electronic Medical Record, please?  How about a search engine that my mom can actually use?  Or (gasp) an operating system that my father-in-law won’t yell at and blame me for just because I write code (he has a Mac and a PC).

The point is simple.  Yes, Team System is a big deal.  It might be the tool you are spending most of your day with.  On the other hand, innovating in your particular area of development expertise is possible regardless of the platform within which you choose to operate.  Let’s focus on that while Microsoft makes Team System better for us in their next rev.

4 thoughts on “A Positive Team System Rant

  1. Pingback: Ayende @ Rahien

Comments are closed.

Proudly powered by WordPress | Theme: Code Blog by Crimson Themes.