Implementing Visual Studio Team System in the Microsoft OEM Division's IT Center of Excellence
Published: August 2006
The Microsoft OEM Division's IT Center of Excellence (OEM IT), a global IT engineering organization within Microsoft, deployed Microsoft® VisualStudio®2005 Team System. OEM IT now enjoys a fully integrated software development platform, realizes substantial and measurable savings, and is able to focus more on development and delivery of high-quality software and less on project administrative tasks.
To deliver high-quality software products on time, on schedule, and within budget, all large software development organizations must meet the same management and administrative challenges. They must plan, schedule, and manage the activities of the software development team, and they must do so efficiently, allowing the members of the development team to focus their efforts on developing software without becoming sidetracked on administrative tasks.
Until recently, project management, software and database design, software coding, testing, and packaging have usually been handled separately. Most development organizations accomplished these management and administrative tasks by using repetitious data entry into isolated documents and spreadsheets. These documents and spreadsheets were then distributed as e-mail attachments. Where automation was introduced into these tasks, the systems were narrowly focused on one activity. Integrating and coordinating these systems required ad hoc, manual programming, which then required customized maintenance and support.
Microsoft Visual Studio2005 Team System was designed and constructed to address the beginning-to-end needs of large software development teams. Its components work together to form an integrated software development environment, from requirements gathering through design, coding, testing, packaging, and delivery of the software product.
This technical case study describes how Microsoft OEM IT implemented Visual Studio2005 Team System. This paper can serve as a model for an organization that intends to implement Visual Studio2005 Team System. It is intended for chief information officers, IT directors, software development executives and managers, solution architects, and technical decision makers.
Situation
The Microsoft OEM Division is part of the Microsoft worldwide sales and marketing group. It manages relationships between Microsoft and manufacturers of computers and other devices, including manufacturers of embedded systems. It handles all products that Microsoft can license directly to the OEM community, including all versions of the Microsoft Windows® and WindowsServer® operating systems, Microsoft Office, Windows Mobile®, WindowsCE, Microsoft Works, Microsoft Exchange, and Microsoft SQLServer™2005.
OEM IT is a global IT engineering organization that delivers enterprise business solutions to the Microsoft OEM Division and several other businesses within Microsoft; specifically, OEM operations, OEM sales, Microsoft Xbox® operations, System Builder channel operations, and Microsoft MapPoint® operations. OEM IT consists of approximately 200 people, including Microsoft employees and personnel from global vendor partners. It has offices in Redmond, Washington; Reno, Nevada; Dublin, Ireland; Beijing, China; and Hyderabad, India. It serves internal Microsoft business customers at their locations around the world.
The OEM IT development team maintains about 2.2 million lines of code, which consists of about half SQL code and half Web code. It delivers 40 line-of-business applications to its customers. OEM IT plans for four, quarterly software releases a year, scheduled to coincide with updates to the Microsoft implementation of SAP (the corporate enterprise resource planning system). Each quarterly release consists of multiple projects and contains from 65,000 to 220,000 lines of new or changed code. At any one time, OEM IT is typically working on three quarterly releases: one in the conception/envisioning stage, one in the design/build phase, and one in the stabilization phase (testing). When required, though, the group has simultaneously worked on four or five releases.
Before the implementation of Microsoft Visual Studio2005 Team System, OEM IT was in the situation of many software development organizations. It used a set of separate, internally developed tools for work item tracking, version tracking, defect tracking, test case management, and build management. It also used a stand-alone product for source control. These tools operated on separate servers, were not highly integrated, and were difficult to manage. The disparate architectures and infrastructures made integrating these systems difficult.
The project teams had to deal with separate support teams for each tool. There was often some confusion about which support team was responsible for which problem. The project teams also had to manually manage their own build systems. They had to manage five different build configurations, including all of the dependencies of those configurations.
For code source control, the OEM IT development team used Microsoft Visual SourceSafe®. It worked well for its specific purpose, but it was not integrated with the manual build system or the build reporting system. Code branching strategy was complex and difficult to manage, and many problems existed with consolidating deliverable packages.
The internally developed defect tracking tool presented several problems. Project status reporting—determining the actual testing work done versus the testing work planned to that date—was time consuming, largely manual, and subject to errors. Data was manually entered into Microsoft Office Project and Microsoft Office Excel® spreadsheets. The project status information was difficult to determine on a daily basis and was impossible to generate in real time. The test team also found it very time consuming to plan test cases and import the test cases between releases by using manual systems.
Project managers accomplished reporting by running static report queries on a relational data store. They were unable to look at historical data or analyze trends. Adapting the system to support new metrics or processes required tedious SQL coding and report formatting. Also, it was difficult and expensive to comply with statutory reporting requirements, such as Sarbanes-Oxley, which requires proof of "an adequate internal control structure."
For a process methodology, the OEM IT development projects use Personal Software Process (PSP) and Team Software Process (TSP) from the Carnegie Mellon Software Engineering Institute. Engineers who use the PSP to develop software follow defined processes and collect detailed metrics on the time expended, the defects created and removed at various stages in development, and the size of the finished product. OEM IT engineers manually collected and analyzed the PSP/TSP metrics.
Solution
To bring automation, integration, and collaboration to the entire software development life cycle, Microsoft developed Visual Studio2005 Team System. This client/server system consolidates project management, work item tracking, code source control, build and test environments, and bug tracking.
Components of Visual Studio Team System
Visual Studio Team System is a collection of client applications, Visual Studio Team Foundation Server, and several other related components.
Visual Studio Team Editions and Team Explorer
The Visual Studio Team System client applications are based on the roles that a person fills in a development project. The client applications are called Team Editions. There are three Team Editions for software development:
· Team Edition for Software Architects
· Team Edition for Software Developers
· Team Edition for Software Testers
There is also a Team Edition for database designers:
· Team Edition for Database Professionals
In addition, there is a client edition that delivers the functionality of all the client applications previously listed:
· Visual Studio Team Suite
Finally, there is a Team Foundation Server client, used to build projects and administer the server:
· Visual Studio Team Explorer
Figure 1 graphically shows the functionality that the software development client applications contain.
Figure 1. Visual Studio Team Editions functionality
Custom Clients
It is possible to use Microsoft Office Project2003 and Microsoft Office Excel2003 as Visual Studio Team System clients. Also, by using available Visual Studio Team System programming tools, it is possible to build custom clients, if required.
Visual Studio Team Foundation Server
Visual Studio Team Foundation Server, working with the Visual Studio Team Editions and other clients, integrates all of the core roles that compose the software development process. Team Foundation Server is a collaboration engine and a centralized data warehouse.
Team Foundation Server provides source control management, work item tracking, integrated analysis and reporting, and an integrated collaborative project Web site. It can also provide build and test rig management. In addition, Team Foundation Server can integrate with Office Project2003 and Office Excel2003 to extend reporting and tracking abilities. Team Foundation Server consists of two tiers (an application tier and a data tier), plus a team portal and team reports.
Application Tier The Team Foundation Server application tier primarily consists of Web services: Team Foundation Common Web services (Registration, Security, Linking, Eventing, Classification), Version Control Web services, Work Item Tracking Web services, and Team Build Web services. The application tier communicates through an object model.
Data Tier The Team Foundation Server data tier consists of a SQL Server2005 database server and databases specific to Team Foundation Server. The data tier also contains the data warehouse. The data warehouse uses SQL Server2005 Integration Services and Analysis Services to extract needed information from the operational databases, transform it into a business-centered data model, and load it into an online analytical processing (OLAP), multidimensional database. In addition to serving as the source for report information, a multidimensional OLAP database system:
· Can analyze large amounts of data in a short time.
· Enables users to create summarized fields from detailed data or explore the details that contributed to creating a summarized field.
· Enables users to explore the data in new ways, to identify a trend or a problem area that would otherwise be overlooked.
Team Portal Team Foundation Server includes a team portal—a Windows SharePoint® Services Web site through which project personnel can access the project's data and the collaborative functions that Visual Studio Team Foundation Server provides.
Team Reports Team Foundation Server includes predefined reports. These can be modified, or new reports can be created using SQL Server2005 Reporting Services.
Microsoft Team Foundation Service
To deliver the benefits of Visual Studio Team Foundation Server to all project teams at Microsoft and to enable effective management and reporting across multiple projects, Microsoft created the Microsoft Team Foundation Service. OEM IT used this managed service to handle setting up, hosting, and administering Team Foundation Server.
Architecture of Visual Studio Team System
Figure 2 is an architectural schematic of the Visual Studio Team System implementation that OEM IT deployed. This architecture is typical of Visual Studio Team System deployment.
Figure 2. Visual Studio Team System typical architecture
In Figure 2:
· Visual Studio Team Editions represents all of the Visual Studio Team System client products: Team Editions, Team Suite, and Team Explorer.
· Office System represents the integrations of Excel2003 and Project2003 to work as Visual Studio Team System clients. (Team Foundation Server includes templates for integrating Excel2003 and Project2003.)
· Microsoft Windows InternetExplorer® represents the users' Web access to the team portal.
· Team Foundation Server object model is the communication layer between the clients and the application tier.
· Team Foundation Server application tier includes the Web services. Also on the application tier are team reports (SQL Server Reporting Services functionality) and the team portal Web site (Windows SharePoint Services).
· Team Foundation Server data tier includes the SQL Server operational databases and the data warehouse.
Implementing Visual Studio Team System in OEM IT
While Visual Studio Team System was still in development, the managers at OEM IT learned of its capabilities and the plans to offer the Microsoft Team Foundation Service. OEM IT signed on to be among the first groups at Microsoft to employ the new product and service. OEM IT understood the value of the product's capabilities and wanted to deploy the product to its global team.
The timing of the Visual Studio Team System product release matched well with the beginning of a major release from OEM IT to its business customers. The OEM IT management team presented the new product, its functionality, and its capabilities to OEM IT personnel, and found great enthusiasm for deploying it. The personnel immediately saw how the product would eliminate a lot of administrative work and enable them to focus more on their substantive work.
The management team then presented its plan to the business partners. The management team found that it did not need to spend much time evangelizing Visual Studio Team System. The business partners, too, quickly saw the advantages of the integrated system.
Setting Up the System
OEM IT worked with the Microsoft Team Foundation Service team to set up its projects in Team Foundation Server. The service had already set up two process model templates in Team Foundation Server: the Capability Maturity Model Integration (CMMI) process and the Microsoft Solutions Framework (MSF) for Agile Software Development process. OEM IT projects use the CMMI model, so the development team used that model to begin building its Team Foundation Server projects.
In the Team Foundation Server project management model, OEM IT set up work items, including work item type definitions (such as Defect, Task, and Issue), queries, and instance templates. Instance templates contain a predetermined set of tasks that must occur for every project, such as gathering requirements or writing a vision document. OEM IT was able to keep the same workflow and type definitions that they had been using in previous systems.
OEM IT used the reports that are prepackaged with Team Foundation Server, with slight modifications, and added a few custom reports. The development team also created a series of custom reports based on data read from the OLAP data warehouse into Excel PivotTable™ dynamic views for presentation and analysis. The custom reports enable the system to deliver to each person the information that he or she needs, in the form in which he or she needs it. These reports thus free each person from sorting through irrelevant information.
Then, starting with the SharePoint portal packaged with Team Foundation Server, OEM IT modified the portal according to its preferred themes. The development team also created a report dashboard for each OEM IT project. A dashboard is a graphic visual display of multiple information items that are essential for tracking a project.