Software teams store and manage many kinds of project data in various places. This data ranges from workflow documentation, functional and nonfunctional requirements, project specifications, guidance documentation, checklists, and policies, to the generation of day-to-day project artifacts that often include source code changes, test data, work assignments, reports, and, of course, defects.
Consolidating this information in a single accessible location in preparation for a software project can be a challenge. Managing project artifacts during the life cycle of the project and maintaining meaningful relationships between them can be painful and time consuming. Ensuring that all team members are communicating and collaborating effectively on the project data, within a growing distributed and stove-piped role environment, is increasingly difficult. Moreover, easily extracting accurate and timely project information to assess progress and mitigate risks is likely near impossible.
Nonetheless, the consequence of failing to adequately manage software data and team members is significant. According to the Standish Group's tenth edition of their annual CHAOS report, project success rates are only 34 percent of 40,000 projects tracked. An impressive 51 percent of all projects in the survey are "challenged" — that is, they are over budget, over time, and/or lacking critical requirements or features. Fifteen percent of projects fail outright.
What if these problems could be solved? Enter Microsoft Team Foundation, which enables you to consolidate all your data, configure and track your relationships under version control, quickly and accurately report the status and health of the project at any time, and provide all members of the team with near friction-free collaboration because they have visibility into the right data at the right time.
In this chapter, we'll give you a quick look at some of its tools and introduce you to the Team Foundation architecture, including the Reporting Warehouse.