Friday, September 29, 2006

Team Development using MS TFS - Part 1


This is the first part of a 3-part series about MS TFS (Microsoft® Team Foundation Server). Part 2 and Part 3 will follow.
 
To me, the biggest challenges of enterprise wide projects are managing the artifacts and deliverables in one single place, directing all development efforts toward one target, lack of project’s predictability, and last but not least distributed developments.


I’m mostly talking about development in Microsoft platform. Those who have worked with Rational Suite know how integrated and distributed it is. It allows you to manage all the retirements and their traceability, defects, and all the configurations in one single place. I’ve worked with Rational ClearCase and I must admit, although difficult, it's purely distributed.

That’s why I call the Team System the first grate step from Microsoft toward a real team development.

Now with that, a project manager can monitor everything in one single place and assign tasks and control the progress.
Architects, Testers, and DBAs can now be part of the game.
The initiative I like most in this product is its extensibility and customizability which I’m going to talk about it in one of the future posts of this series. 
A real team development using Microsoft .NET needs three things in term of tools: Visual Studio Team System, Team Foundation Server, and Methodology guideline.

Visual Studio Team System is series of role-based editions of Visual Studio. It offers different versions for three different roles; Architects, Developers, and Testers. Also there is a version called Team Suite that contains the functionalities of all those three versions that is suitable for those individuals that play all those roles in a project. Microsoft has recently released a new version named Team Edition for Database Professionals which is not included in above mentioned versions; even Team Suite.

Team Foundation Server is the backend engine for Team System that enables team to collaborate. Without TFS there is no team development. It’s this engine that keeps all the team members connected.
You are probably wondering what the Team Explorer in the picture is.
Well, it’s a member component of TFS through which you can explore a team project inside TFS. It can be used as a standalone client or can be integrated with Visual Studio. I should say it’s the client tier of TFS.

About the third piece, a methodology guideline, TFS carries MSF (Microsoft’s process framework) in two forms, Agile MSF and CMMI MSF.
If you need to embed other process guidelines in TFS, RUP for example, you need to use third party tools.
In future parts, I intend to write more about TFS's architecture, how it works, installation and configuration, how to embed RUP’s guideline, and how to manage it.

3 comments:

Anonymous said...

Hi amir
as i promised, i'm Seeing your blog again,That Sound Valuable,As Soon As Posible i will be here .

Anonymous said...

Finally Microsoft found other things in software projects (Methodology, Test, Configuration management, ...) are as important as just coding and there should be some tools for them.

Unknown said...

Absolutely.
Not only that, but also supporting distributed development.
Of course like other Microsoft's products there will be lots of difficulties and bugs, but it is better than nothing.