The processes of software development and delivery are always a constantly evolving challenge. Delivering this years technology correctly regardless of development and deployment methodology or process, is never going to be an exact science. Every environment or implementation is different and so processes require continual adjustment and extension.
My new wider role at Charteris, means that I now have a much wider focus across the range of development tools and methodologies we encounter and employ. It is now as much about how we do things as what we do. As a result as part of this at this years TechEd conference, I have decided to attempt to get a better understanding of what the Visual Studio Team System offers.
For those that aren't already aware, the Visual Studio Team System and its associated Team Foundation Server product, add collaborative toolset functionality to the existing more development focused tools. Visual Studio Team System is aimed squarely at software development teams and covers the whole development life cycle. Specific versions of Visual Studio for are required and these allow the developer to participate in many areas of the software development lifecycle from within the confines of Visual Studio itself.
Partly because of the perceived high entry cost of Team System and because consultancy usually involves fitting with the in situ customer development process owned by the customer, Visual Studio Team System has always been an area that I've never fully explored, other than for the purely development capabilities. From the various sessions attended here at TechEd I've understood more fully what it can do and am generally I'm impressed by the depth and capabilities on offer.
The ability to define custom tasks, record and track effort against them, manage defects, perform source control tasks and control associated workflows, all originate and integrate seamlessly into the Visual Studio IDE. Activities and source code are in turn stored and tracked in the underlying SQL Server backed Team Foundation Server.
However one of the real strengths of Team System is that Visual Studio isn't the only UI available. Its key strength lies in its integration to other products used by other people. You can interchange data to and from Excel, to and from MS Project (although this is a bit stilted).
The other main area of flexibility however is the option of using web based interfaces (the so-call Team System Web Access and Work Item Web Access UI's) to read and interact with Team System data. The potential for intranet applications with clients accessing read only views of defects and progress or assigning tasks to subcontractors or third parties, is significant.
Overall a great system. Its just a shame therefore that its CAL based licensing mechanism and enterprise pricing strategy will exclude a whole layer of SME organisations who can't afford its price point yet value its self-contained approach. Its many of these same SME organisations that bred the whole generations of Visual Basic and then .Net programmers we know today.
Its worth noting that many of the Visual Studio 2010 features announced this week, will place an increasing reliance on Team Foundation Server in areas such as historical debugging etc in the future. This gap between SME and enterprise development toolsets can therefore only widen as it stands currently.