Visual Studio Team System and the Microsoft Solutions Framework

In Microsoft Visual Studio Team System, a team of peers applies the knowledge of roles in the MSF Process Guidance Team Model. You can use the Team Model as a model for working through a full project life cycle including vision, production, use, and maintenance.

The following are roles in the team model:

  • Architecture

  • Development

  • Product Management

  • Program Management

  • Release Operations

  • Test

  • User Experience

For more information about the Microsoft Solutions Framework, see the Microsoft Web site.

For more information about how to use Team Explorer in these roles, see How Do I in Team Foundation.

Architecture

The architect is responsible for designing and maintaining the architectural integrity of the product. The architect defines both the organizational structure of the application and the physical structure of its deployment. In these endeavors, the architect’s goal is to reduce complexity, decrease coupling and regression effects, and increase the cohesiveness of components. By partitioning the system into parts, each part can be built and tested independently.

The resulting architecture is important because it dictates how the system will be built in the future. The architecture also provides the foundation for many of the traits of a successful project. The architectural framework ensures whether a product meets usability needs, is reliable and maintainable, meets performance and security standards, and can evolve easily when it is faced with changing requirements.

The architecture workflow is as follows:

  • Analysis

  • Create a Quality of Service Requirement

  • Create Product Requirements

  • Create Solution Architecture

  • Establish Environments

  • Establish Project Process

  • Test a Customer Requirement

  • Verify a Product Requirement

Development

The developer is responsible for building the product. The development roles such as the lead developer and development manager have additional communication and project management responsibilities. The main focus of the developer is construction of code. Making communication easy helps the developer maintain that focus. During the early stages of a project, developers are also expected to help create the product requirements that were not part of the customer requirements. Often, the developer works with the architect as part of a multi-disciplinary team.

A lead developer's role is to lead and to communicate on behalf of other developers. A lead developer lends experience and skill and shows leadership by coaching fellow developers. Lead developers carry responsibility for code reviews, design, and unit testing coverage. Lead developers act as a conduit to the rest of the project for the developers. As an aid to productivity, lead developers funnel communications between the wider project team and external organizations, and shield developers from random interference in their daily schedules. Therefore, lead developers can rarely dedicate themselves to coding tasks. Typically, they spend about 50% of their time on communication and spread the rest of the time leading, coaching the developers on their team, and actually writing code for development tasks.

The development workflow is as follows:

  • Analysis

  • Create Solution Architecture

  • Develop Documentation

  • Establish Environments

  • Establish Project Process

  • Fix a Bug

  • Implement a Development Task

  • Release a Product

  • Test a Customer Requirement

  • Verify a Product Requirement

Product Management

The product manager plays role of proxy for the end consumer of the product. The product manager has overall product mix responsibility for the requirements. The product manager must make sure that the product vision is met through the requirements and the acceptance tests developed to validate the product. The product manager must show that the product aligns with the organizations strategic planning and fits one or more of the market segments intended in the original vision statement. The product manager will make sure that the project stays within budget and that the business case is achieved. The product manager's work is used as the primary source for the track checkpoints in the MSF Governance Model.

The project management workflow is as follows:

  • Capture Product Vision

  • Release a Product

Program Management

The program manager is responsible for the flow of knowledge and the realization of the value of a project. This value is generally outlined in the vision statement. The program manager owns the life cycle of the project from end-to-end.

The main goal of the program manager is to deliver business value in the agreed upon schedule and budget. The program manager is charged with planning and scheduling duties that include developing project and iteration plans, monitoring and reporting status, and identifying and reducing risk. The program manager is also expected to consult with business analysts in order to plan a backlog of work for the project. The program manager must consult with architects, developers, testers, user education specialists, and user experience architects to estimate work and help make communication in the team easier.

The program management workflow is as follows:

  • Capture Product Vision

  • Create Product Requirements

  • Develop Documentation

  • Establish Project Process

  • Manage Issues

  • Plan an Iteration

  • Plan Project

  • Manage Risk

  • Test a Customer Requirement

  • Verify a Product Requirement

Release Operations

The goal of the release manager is to manage the rollout of the product. The release manager coordinates the release with operations or media control. They create a rollout plan and certify release candidates for shipment or deployment.

The release operations workflow is as follows:

  • Baseline Configuration Management

  • Create Product Requirements

  • Establish Project Process

  • Manage Change Requests

  • Release a Product

Test

The main goal of the tester is to discover and communicate problems with the product that could adversely affect its value. The tester must understand the context for the project and help others to make informed decisions based on this context. A key goal for the tester is to find and report the significant bugs in the product by testing it. Once a bug is found, it is also the tester’s job to accurately communicate its affect and describe any workaround that could lessen the affect of a bug. The tester writes bug descriptions and steps for recreating the bugs that are easy to understand. The tester participates with the whole team in setting the quality standards for the product. The purpose of testing is to prove that known functions work correctly and to discover new product issues.

The tester's workflow is as follows:

  • Analysis

  • Close a Bug

  • Develop Documentation

  • Establish Environments

  • Establish Project Process

  • Release a Product

  • Test a Customer Requirement

  • Verify a Product Requirement

User Experience

The user education specialist is typically a technical writer who focuses on consumer-focused technical writing that reinforces or enhances product value. A user education specialist might work on product manuals, on-line Help, operations manuals, maintenance manuals, training manuals, and any other documentation that can be used to enhance the usage and value of the product. User experience architects typically work closely with user education specialists.

The user experience workflow is as follows:

  • Analysis

  • Develop Documentation

  • Establish Project Process

  • Release a Product

See Also

Other Resources

Team Foundation

Architecture Edition

Development Edition

Test Edition