Rather than being a methodology, MSF is a framework that can be adapted to suit the particular needs of any organization. The MSF Team Model for Application Development (MSF Development Team Model) is one aspect of this framework. The model describes how teams should structure themselves and what principles they should follow in order to be successful at developing software.
The MSF Development Team Model is specific in nature, but as part of the framework, it should be viewed as a starting point. Different project teams may implement aspects of the framework differently, depending on the scope of their project, the size of their team, and the skills of their team members.
Specific responsibilities must be carried out and specific goals must be met in order for any project to be successful. These responsibilities and goals serve to provide continual direction for all the team members. Key project responsibilities and goals include the following:
Many factors can affect a project, some of which will constrain it. When the project team focuses on meeting the agreed-upon goals of the project and delivering the product on time, it ensures that the organization receives the right Return on Investment (ROI), which is the right product for the right price.
The MSF Development Team Model addresses the need to meet these key goals by assigning tasks to six team roles: Product Management, Program Management, Development, Testing, User Education, and Logistics Management. Each goal requires a different discipline, so each team role embodies a different discipline. The people who carry out the team roles must have the unique perspective and set of skills necessary to meet each goal.
Table 3.1 shows the correspondence between the six roles of the MSF Development Team Model, which we discuss in detail later in this chapter, and the six key goals of an effective project team. Because each goal is critical to the success of a project, the roles that correspond to these goals are seen as peers with equal say in decisions. There is no project master, but simply a team that knows what to do and is properly equipped to do it.
Table 3.1 Goals and corresponding team roles
|Customer satisfaction||Product Management|
|Delivery within project constraints||Program Management|
|Delivery to product specifications||Development|
|Release after identifying and addressing all issues||Testing|
|Enhanced user performance||User Education|
|Smooth deployment and ongoing management||Logistics Management|
How does a team get started on a project when it doesn't know how long it will take, how much it will cost, and what it is going to create? Answering these questions is the core function of the MSF Development Team Model discussed in the next sections of this chapter and the MSF Development Process Model discussed in Chapter 4. These models involve a bottom-up scheduling process, a top-down design process, and separation of responsibilities, so at first glance, they don't seem to answer these questions at all. But in fact, they lend themselves well to minimizing risk and exposure in the early phases of a project. Making the correct decisions early in the process and avoiding changes late in the process significantly decreases a project's overall time and costs.