What is Team Foundation Server?
Developing software is difficult—a fact repeatedly proven by how many projects run overtime or over budget, or fail completely. An essential factor in the success of any software development team is how well the members of the team communicate with one another, as well as with the people who wanted the software developed in the first place.
Team Foundation Server provides the core collaboration functionality for your software development teams in a very tightly integrated product. The functionality provided by Team Foundation Server includes the following:
Work item tracking (WIT)
Test case management
Lab and environment management
Chat and team communication tools
Each of these topics is explored extensively in this book
Team Foundation Server is a separate server product designed specifically for software engineering teams with developers, testers, architects, project managers, business analysts, and anyone else contributing to software development releases and projects. Logically, Team Foundation Server is made up of the following two tiers, which can be physically deployed across one or many machines:
Application tier—The application tier primarily consists of a set of web services with which the client machines communicate by using a highly optimized, web service-based protocol. It also includes a rich web access site to interact with a server without having to install a client such as Visual Studio.
Data tier—The data tier utilizes SQL Server to house the databases that contain the database logic for the Team Foundation Server application, the data for your Team Foundation Server instance, as well as the data for your Team Project Collection. The data stored in the data warehouse database and Analysis Services cube are used by Team Foundation Server’s reporting functionality. All the data stored in Team Foundation Server is stored in the SQL Server databases, thus making the system easy to back up.
Team Foundation Server was designed with extensibility in mind. It can integrate with a comprehensive .NET Application Programming Interface (API). It also has a set of events that allow it to integrate with outside tools as first-class citizens. The same .NET programming model and event system are used by Microsoft to construct Team Foundation Server, as well as the client integrations into Visual Studio.
Team Foundation Server has plenty of competitors, including other enterprise Application Lifecycle Management (ALM) systems and purpose-specific products (such as source control systems). The main benefit of having all the different systems available in one product is that Team Foundation Server fully integrates the different systems. This allows for true innovation in the development tools space, as you will notice with several of the new tools available in this latest release. Instead of worrying about integrating the separate systems yourself, you can take advantage of the work that Microsoft has done for you. Jason Zander, currently Corporate Vice President of development for Windows Azure, makes this particular point well in a blog post originally about Team Foundation Server 2010. You can find the blog post at http://aka.ms/IntegratedALMSolution.
When you compare enterprise ALM products currently on the market, you will discover that Team Foundation Server was designed to be easily customized and extended. Team Foundation Server ensures that developers using any development platform can participate and easily use Team Foundation Server, including Visual Studio, Eclipse-based development, Xcode, and many more.