According to the in flight map, I am currently 36000 feet above Baffin Bay, traveling at 550 Mph with mild amusement towards Foxe Bain. The temperature outside is a balmy -53 degrees Celsius. However, having watched the latest Harry Potter thriller and with 2987 miles to go until I reach San Francisco, I thought I'd better actually work on the talk I'm supposed to be giving in a couple of days time.
I was just trying to figure out what I am trying to say (which is basically Team System is cool you should buy it, hey while you have the corporate card out why not take a look at our company). A couple of things struck me while I messing in PowerPoint so I though I would write them here - I'm very easily distracted when it comes to preparing for talks...
1) Team System is one of those products that seem really simple on the face of it. You integrate the IDE with a list of work items and a powerful version control system based on an proper RDBMS. Hey, while you are at it we might as well give you some reporting on that data and as you need a server running Windows 2003 to run this all one, why not use Windows Sharepoint Services to give yourself a team collaboration area. Sprinkle in all the other nice stuff that the best teams tend to use like a decent class modeling tool, a build server, static code analysis, code profiler, unit test framework etc. It is such as simple idea you wonder why the competing products (and I'm thinking about Rational and Borlands offerings) don't quite hit the mark. I guess Microsoft have done a classic Microsoft trick - look around and learn from what others have done before and also keep things so you can use as little or as much as you want. A sign of good software is that it looks simple on the outside - an almost transparent layer between you and the work you want to do. I think (with a few small exceptions) Team System hits the mark.
2) Sure, you can go out and assemble a collection of tools and technologies and integrate them yourself. Many of them would be open source and would cost you less to purchase. The problem is that you have to be certain type of person to go out and do all that work. If my experience has taught me anything, it is that inside companies many folk can't be bothered doing that - indeed you could argue that is not what their business are paying them to do. While not every component inside Team System is best of bread yet, the fact that they all come installed on the workstation if you deploy one of the Visual Studio Team System SKU's across your development teams you know that more people will pick up those tools and improved quality will be the result.
3) Microsoft realizes that they cannot do everything. Instead they have focussed on providing a core platform and set of features that bring benefit to the company and done the best they can to make the platform extensible. This mean partner copmanies like my own can add value to the product, but if a company wants the product to work a certain way then they can make it behave how they want. It also means other groups inside Microsoft can be nimble, adding to the platform, and Microsoft can release a series of add-ons and aftermarket solutions to improve the offering without having to wait for the next release cycle.
In my own experience with Team System, the company I used to work for were really interested because they needed a decent source control solution that worked across the WAN. Then, we noticed these things called "Work Items" and soon we were adding stuff into there from our various lists. Then people started focusing on quality. I've seen the same thing happen where-ever I've seen Team System installed. People start thinking about quality and traceability of requirements. They start doing all the stuff they have been feeling guilty about not doing for years. Why were they not doing it before? Because it was too hard.
Anyway, enough ranting. I'm 235 miles closer to my destination and I really should do some actual work on this journey. For those of you that are interested I predictably had chicken again. I really was going to go for beef this time, but it was a chicken curry (which I haven't had for weeks because my son won't eat it) and it actually tasted rather good. Maybe I'll be different on the way home, which (thankfully) is only a few days away.