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