Microsoft Solutions Framework - MSF Project Management Discipline v. 1.1

Published: June 1, 2002
Click here to download a copy of this paper

Microsoft Solutions Framework

White Paper

For more information on MSF, see:


Microsoft Solutions Framework (MSF) has a distributed team approach to project management that improves accountability and allows a great range of scalability from small projects to very large, complex projects. This paper describes how the distributed team approach works and also explains how project managers relate to the MSF team model. Although project management is important in small projects, the focus in this paper is on large projects with extended teams. While not touching on all aspects of the project management field, recommended practices for planning and estimating are also given.

On This Page
Overview of Frameworks Overview of Frameworks
Introduction Introduction
Underlying MSF Principles Underlying MSF Principles
Key Concepts Key Concepts
Characteristics of MSF Project Management Characteristics of MSF Project Management
Selected Recommendations for MSF Teams Selected Recommendations for MSF Teams
Scheduling Recommendations Scheduling Recommendations
Conclusion Conclusion
Endnotes Endnotes

Overview of Frameworks

To maximize the success of information technology (IT) projects, Microsoft has made available packaged guidance on effectively designing, developing, deploying, operating, and supporting solutions built on Microsoft technologies. This knowledge is derived from the experience gained within Microsoft on large-scale software development and service operation projects, the experience of Microsoft's consultants in conducting projects for enterprise customers, and the best knowledge from the worldwide IT industry. The guidance is organized into two complementary and well-integrated bodies of knowledge, or frameworks. These are the Microsoft Solutions Framework (MSF) and the Microsoft Operations Framework (MOF).

Creating a business solution on time and within budget requires a proven approach. MSF provides proven practices for planning, designing, developing and deploying successful IT solutions. As opposed to a prescriptive methodology, MSF provides a flexible and scalable framework to meet the needs of any size organization or project team. MSF guidance consists of principles, models, and disciplines for managing people, processes, and technology elements, and their tradeoffs, that most projects encounter.

For more information on MSF, see:

MOF provides technical guidance that enables organizations to achieve mission-critical system reliability, availability, supportability, and manageability of IT solutions built using Microsoft products and technologies. MOF's guidance addresses the people, process, technology, and management issues that pertain to operating complex, distributed, heterogeneous IT environments. MOF is based on industry best practices as documented in the IT Infrastructure Library (ITIL) from the UK governments Office of Government Commerce (OGC).

For more information on MOF, see:


One of the notable characteristics of MSF is the absence of a role or job title called project manager. This may seem surprising for a framework that addresses issues relating to successful completion of IT projects. Yet MSF attaches great importance to the discipline and competencies associated with project management.

This paper summarizes the key aspects of the project management discipline and shows how they are addressed by MSF. It illustrates how the MSF foundation principles lead to some distinctive concepts and practices in implementing project management.

It also describes how the MSF program management role provides the specialist project management skills to support the full team and describes how typical project management activities are distributed across the MSF team leads.

This paper is not intended to provide a how-to guide of project management, nor does it attempt to explain the many techniques used by skilled project managers. Instead, it shows how the principles of MSF lead to a project management approach where:

Responsibility for project management is distributed to team leads.
Project management specialists provide an approach which is based on facilitation and coaching, rather than imposing control on the rest of the team.

The MSF Team Model whitepaper is prerequisite reading for this white paper.

Underlying MSF Principles

Although not discussed here, the MSF Project Management Discipline applies all of the MSF principles in some way, but is most directly associated with the following.

Clear Accountability-Shared Responsibility

The MSF Team Model is based on the premise that each role presents a unique perspective on the project and that no single individual can successfully represent all of the quality goals of all the roles. Yet the customer needs an authoritative single source of information on project status, actions and current issues. To resolve this dilemma, the team of peers must combine a clear line of accountability to the customer with shared responsibility for overall success.

Within the team, each role is accountable for the activities necessary to achieve its own quality goal.

Each team member is responsible for the overall success of the project and quality of the solution and is expected to contribute ideas and observations based on their knowledge even in areas for which they are not personally accountable.

Specifically, the MSF team roles share responsibility for many aspects of project management, such as risk management, time management, quality management, planning, scheduling, team recruitment, and human resource management.

Empowered Teams Are More Effective

In an effective team, members are empowered to deliver their own commitments and have confidence that, where they depend on other peoples' commitments, these will be met. Likewise, the customer has a right to assume that the team will meet its commitments and will plan on this basis. Any delay or change should be reported as soon as possible.

An MSF team provides members with the empowerment they need to meet their commitments. This has a profound impact on the role of project management in its ability to monitor progress. Without empowerment and commitment, team managers must continually double-check if team members are still on track. Once they are confident that any delays will be reported as soon as they are known, team leads can provide a more facilitative role, helping team members assess their true position while offering guidance and assistance to them. Progress monitoring is distributed across the team and becomes a supportive rather than a policing role.

Key Concepts

To understand the MSF approach to project management, it is important to understand the way MSF defines the following concepts and terms.

Disciplines in MSF

MSF recognizes several areas of non-technology expertise that are important competencies of all the roles in the MSF team model. These are referred to as disciplines. For more information, see the MSF Team Model white paper.

Currently, MSF has addressed three disciplines. These are risk management, readiness management, and project management.

MSF acknowledges that these disciplines have developed best practices that are well established across many industries, not just information technology (IT). Often these practices can be applied to IT operations and other business processes as well as IT projects. Rather than reinvent these practices, MSF summarizes what project teams need to know in these disciplines and adds insights gained by Microsoft teams over the last several years.

In order to perform effectively, the leads of all MSF team roles must have an adequate level of competency in each discipline.

What Is Project Management?

Before describing project management in an IT project, it is useful to understand the definition of project management, regardless of the type of project.

A project is a temporary venture, with a finite beginning and end, whose goal is to create a unique product or service. Project management is an area of knowledge, skills, tools and techniques used to achieve project objectives within agreed upon parameters of quality, cost, schedule and constraints. (i)

In some companies and countries, the term program is used to describe groups of projects that are coordinated together. To avoid confusion with the MSF team role cluster called program management, a group of projects is referred to as a project portfolio.

MSF categorizes the following areas of project management responsibilities, skills and activities (ii).

Project Management area Description

Project planning/Tracking/Change Control

Integrating and synchronizing project plans; setting up procedures and systems for managing and tracking change

Scope Management

Defining, breaking down scope of work (project scope); managing project tradeoffs

Schedule Management

Generating schedules from team estimates, task sequencing, matching resources to tasks, applying statistical techniques, schedule maintenance

Cost Management

Preparing cost estimates based on team time estimates; progress reporting and analysis; analyzing cost risk, value analysis

Staff Resource Management

Resource planning, team building, conflict resolution, skills readiness planning (for project)

Communications Management

Communication planning (team, customer/sponsor, users, stakeholders), project status reporting

Risk Management

Facilitating, driving team risk management process; maintaining risk documentation


Soliciting contractor bids for services and/or hardware/software; preparing requests for proposals (RFPs), managing vendors or subcontractors; managing and negotiating contracts, agreements; opening purchase orders and approving invoices

Quality Management

Quality planning, determining which standards to use, documenting quality criteria and quality measurement processes


While complete guidance on each of the areas above cannot be given here, selected MSF recommended practices are provided later in this document.

Project Management Is Not Done only by Project Managers

In everyday speech, the term project management can be used to describe both a role and an area of skills and expertise. For example, consider the statement, "Project Management said they would have it done by now," and the statement, "Space agencies tend to have excellent project management capabilities."

This distinction is important because project management, as an activity, is done by many people who are not project managers.

As used in MSF, project management is always used to refer to the specific set of knowledge and skill areas listed above, not a role or job title. The term project manager will be used describe someone who is a specialist at project management.

Project Management and IT Specific Processes

In general, project management consists of knowledge areas and techniques that broadly apply to any industry area that does projects. Each industry area (for example aerospace, building construction, IT, and so on.) has specific processes, phases, roles, and practices that work best for that industry. In order to have successful projects, these industry-specific processes must be supplemented with generic project management practices.

MSF provides processes and recommended practices for IT projects. Its relationship to the discipline of project management is illustrated in Figure 1.

Figure 1: Relationship of MSF to Project Management Discipline

Figure 1: Relationship of MSF to Project Management Discipline
See full-sized image.


The industry-specific domain in this case is the five phases of the MSF process model. An example of an industry–specific project management activity is recommended practices for bug tracking. The generic knowledge areas of project management are on the left. An example is recommended practices for managing contracts or tracking budgets. The intersection represents certain project management practices that are characteristic of MSF. These are presented next.

Characteristics of MSF Project Management

Three distinctive characteristics of the MSF approach are stated here and discussed more fully below:

Most of the responsibilities of the project manager role are encompassed in the MSF program management role cluster.
In larger projects requiring scaled up MSF teams, project management activities occur at multiple levels.
Some large or complex projects require a specialist project manager or project management team.

Project Manager Role Is Encompassed in Program Management

The MSF program management role cluster includes the functional responsibility areas shown below. In smaller projects, all the functional responsibilities are typically handled by a single program manager. As the size and complexity of a project grows, this role cluster is broken out into two branches of specialization: one dealing with architecture and specifications and the other dealing with project management.

How Program Management Works with Team Leads

To understand how project management works in MSF, it is necessary to understand how the team model scales up, conducts planning, communicates, and makes decisions. For more information, see the MSF Team Model white paper.

Exactly how project management is distributed depends in large part on the scale and complexity of the project.

MSF is a highly-scalable framework, that can be used for small projects involving two to three people, or up to very large projects. Microsoft internal product teams involve hundreds, even thousands of team members. MSF has generalized the lessons of team organization at Microsoft for use with a broad range of IT projects.

Much of MSF's scalability comes from the team model. The team model scales up in two primary ways:

1. By abstracting team roles as a set of functional responsibilities, rather than specific job descriptions. In this way, the responsibilities of each role are not tied to the limits of a single person. A role can be expanded into clusters of roles, each specializing in a more targeted set of responsibilities. One or more individuals can fill these more specialized roles.
2. Using feature teams and function teams in various combinations to create any number of possible large team structures. Feature teams and function teams are described below.

Function Teams

Function teams are subteams that exist within a role and are formed when tasks within a role are large enough to require dedicated resources. A key aspect of a function team is not simply that the role requires more that one person to fulfill, but that there is a delineation of tasks among its members. An example is shown in Figure 2.

The team lead is the point of integration to the rest of the larger team. Team leads have some project management responsibilities at the level of their subteam.

Figure 2: Sample Function Team for User Experience

Figure 2: Sample Function Team for User Experience
See full-sized image.


Feature Teams

Feature teams are multidisciplinary subteams that are organized around a particular feature of the solution. The teams are drawn from the six roles that make up the team model. Figure 3 illustrates a feature team. The program management role is also the team lead that provides the integration point with the larger team. The feature team structure is a good candidate for remote or "off-shore" subteams building fairly discrete components for the solution.

Figure 3: Example of Feature Teams

Figure 3: Example of Feature Teams
See full-sized image.


Scaling-Up Project Management Functions

Figure 4 shows how project management activities are handled at three levels of project scale. In project A, where all roles are approximately filled by six people or less, all project management activities are handled by program management. This does not mean that the other roles have no input into managing the project. In fact, it means that they are responsible for planning, time estimating and identifying risks for their respective areas.

Figure 4: A Scalable Approach to Project Management

Figure 4: A Scalable Approach to Project Management
See full-sized image.


In project B, most or all roles are filled by subteams, each with a team lead. The team leads do project management for their respective subteams. The program management role cluster owns project management activities for the project overall. Note that feature teams are not shown in the graphic, but they are subteams as well. Since each feature team is multi-disciplinary, each has a program management lead

Project C is similar to project B, although it has special risks associated with its size or complexity. A complex project, as used in MSF, means the project has high risks related to the following factors:

Large size or cost.
Geographically dispersed teams.
Teams members belonging to multiple companies, organizations, or subcontractors.
Fixed or highly constrained budgets or schedules.
Contractual or legal issues that will require skills and time to manage.

To mitigate these risks, the program management role cluster has a function team including specialist project manager(s) and solution architect(s). Note that the threshold for risk will not be the same for all organizations and projects. What is very costly for one organization may well not be for another. This depends entirely on the risk assessment conducted early in the project.

Project Management Responsibilities

The previous section discussed how project management activities are distributed among team members at various levels of scale and complexity. This section describes these activities.

Figure 5 describes the project management responsibilities that are owned by team leads of each role and program management. Specialist project managers working in a complex project (for example, Project C shown in Figure 4) are focused on the same areas as shown from program management, only on an exclusive basis. Note that the same responsibility area is often covered at the project level and the subteam level.

Figure 5: Project Management Responsibilities for Team Leads

Figure 5: Project Management Responsibilities for Team Leads
See full-sized image.


Team Leads

Team leads prepare the plans for their subteams that describe how the work is to be done, track actual work against the plans, manage scope and change, assign resources to specific tasks in the subteam, and coordinate internal subteam communications. Team leads do these activities with participation and input from individual members of the subteams. While participating in overall risk identification, team leads are specifically accountable for identifying risks in their role expertise area.

There are three places in Figure 5 where team lead responsibilities differ from the pattern of the others:

1. Cost management for a project is generally centralized as a program management responsibility. To distribute this function among leads would be distracting and probably invite chaos.
2. Procurement responsibilities are handled by program and/or release management, but not the other team leads. Program management handles most contracting of services for the project and miscellaneous purchases. An example would be subcontracting a Web design firm to join the team. Release Management, as the representative of IT operations on the team, handles procurement of hardware, software, and facilities assets for the solution being built as well as for the team development and test lab environment.
3. Communication management at the overall project level is shared by both program management and product management. Product management creates and delivers on the communication plan for the customer, stakeholders, and any external audiences. Program management plans and is responsible for project communications, such as status reporting, holding team meetings, and the like. Communication management also includes planning communications, assigning designated points of contact, and progress reporting beyond the team.

Program Management

In addition to being responsible for high-level solution architecture and writing functional specifications (as described in the team model), program management owns all of the project management areas for the project as a whole.

Program management integrates subteam plans into the master plan, synchronizes schedules, and manages cross-team dependencies.

There is a powerful advantage to placing responsibility for solution design and functional specifications together in the same role as schedule and cost responsibility: it strikes a balance between the tendency to over-design features against their cost and schedule implications.

Project Management in Large, Complex Projects

As a project gets larger or more complex, it can become overwhelming to manage functional specifications, update schedules, send out team communications, report progress and perform other project management activities. To cope with this, it often makes sense to divide the responsibilities of the program management role cluster into a solution architecture and dedicated project management role.

Project Administrative Services

In some respects, a large project must do many of the things a small business must do: track financials, procure supplies and services, manage staff turnover, provide orientation and training, set up team workspace facilities and accommodations, and so forth. On yet larger projects, the routine tracking of status, cost and schedules becomes very time-consuming. In order to allow the project manager to focus on the most pressing issues, the more routine project management activities are delegated to a project administrative (or project support) role. Project administrative services also provide support for team leads, assisting with maintaining team schedules and other project management activities.

Customer Accountability

Customers often want a single point of accountability for overall project success. Some organizations look to a project manager to play this role. This is sometimes warranted with large or complex projects, but this approach can lead to an imbalance in accountability among team roles, resulting in poor project performance. MSF accommodates a customer's need for a single authoritative point to ensure satisfaction while at the same time preserving accountability among the team of peers.

In the MSF team of peers, each team role is internally accountable for its own activities. In addition, the individuals working in each role are usually accountable to some management structure outside the project team. Because MSF does not assume that all team members work in the same company or organization, these accountability paths lead into whatever organizations, groups, or departments those individuals belong.

The key points here are:

There are no absolutes on this topic. Beyond the immediate project team, there are many possible differences in organizational reporting structures and service relationships.
Identify your project's accountability paths. Clarify who is accountable for what aspects of the project, beyond the team itself.

The MSF team model provides customer accountability in the following ways:

Product management maintains a relationship with the customer and acts as customer advocate. This role's performance goal is customer satisfaction.
The performance goal of program management is successful delivery of the project within project constraints.
Product and program management work together to satisfy customer needs within project constraints. Both share responsibility for overall success of the project although their roles strive for different goals.
Should issues arise that product and program management cannot resolve, these issues are escalated up the unique accountability path for the overall project.

Selected Recommendations for MSF Teams

The following recommended project management practices are for MSF team leads and program management. These correspond to some, but not all, of the project management responsibility areas that appear in Figure 5.

Scope Management

The purpose of scope management is to ensure the project identifies all the work that is required to complete the solution and does not stray into out-of-scope activities without prior review and approval.

Scope during Envisioning

Early in the project, the broad scope of a project must be identified and documented.

During the MSF envisioning phase, the team generates an unbound vision of the solution. The scope is then identified for the first version. This is described in the vision/scope document and is approved by the team, customer and stakeholders before the project continues. During this phase, scope is understood only in broad terms, at the level of describing features.

Solution Scope and Project Scope

Scope can refer to solution scope and project scope. Solution scope is the sum of the features and deliverables to be built. Project scope is the sum of all the work that must be done to deliver the solution.

The team uses the MSF design process to define the solution scope.

Scope Definition

In the planning phase, the overall project scope must be subdivided into smaller, more manageable parts. This process clarifies special areas that are not in scope. Usually, these are areas where there is a special risk of misunderstandings.

During scope definition, the team identifies the tasks and skill types needed to build each feature and deliverable. This is documented in a work breakdown structure (WBS) described later in this document.

Scope Change Control

Once the scope has been defined and baselined, the team considers it under change control. Changes to the scope must be reviewed and approved by both the team and the customer.

Part of good change control involves making good trade-off decisions. The MSF trade-off triangle and trade-off matrix are useful tools for facilitating change in a controlled way.

For more information, see the MSF Process Model white paper.

Preparing Plans

Planning as an activity occurs throughout the project. During the envisioning phase, the team lays out the high-level approach needed to create the project deliverables.

For example, the testing approach describes the types of testing, the tools, and the skills needed. Depending on the size of the project, this may be only a page or two, or even a paragraph.

While plans are refined and updated in every phase, most planning happens during the MSF planning phase.

The general sequence of processes during this phase is:

Design process (what will you build?)
Planning process (how will you build it?)
Schedule development (when will it be built?)

These can overlap somewhat, but the previous process must be baselined before the next one can achieve meaningful detail. This section will focus on the planning process.

Document Re-Use

Project teams feel constant pressure to minimize the time and expense of planning. How can the benefits of good planning be had while minimizing planning overhead?

The answer is by intelligently collecting and re-using project plan documents. Organizations that realize that project plan documents are valuable intellectual property will invest in organizing and maintaining these in repositories that can be accessed easily.

Before creating a new plan, teams should always search out any that have already been done. Once a project is complete, project documents should be archived in a location that future teams can reuse.

Project Plans

In MSF, project plans refer to a set of documents that describe how the project deliverables are to be completed. The functional specifications describe what will be built. The master project plan is an integrated rollup of team plans for each role. Each team role has plans that describe how it will complete its deliverables.

MSF does not prescribe a "one-size-fits-al" list of plans that all projects must have. The following default list covers common planning areas found in software development and infrastructure deployment projects. On smaller projects, some of these plans can be combined. Some projects may need additional plans.

Type of plan Driving role

Communications Plan

Product Management

Development Plan


Training Plan

User Experience

Security Plan

Development, Release Management

Test Plan


Budget Plan

Program Management

User Education Plan

User Experience

Deployment Plan

Release Management

Purchasing and Facilities Plan

Release Management, Program Management

Pilot Plan

Release Management


Work Breakdown Structure

A WBS is a deliverable-oriented grouping of project work elements that organizes and defines the total scope of the project (iii). It is an outline of work to be done. Work not in a well-constructed WBS is outside the scope of the project. Team leads and program management use the WBS as a project management tool to build plans and schedules.

In MSF, creating the WBS is a collaborative exercise with participation from all team roles. Each role is primarily responsible for defining the work details for its respective area. On larger projects, subteams (function and/or feature teams) may need to separately brainstorm the work necessary. The team leads document the results of the brainstorming session and contribute the results to the core (lead) team. Program management then synchronizes these contributions into a common WBS.


The value of a WBS is best understood if it is thought of as a set of data rather than as a specific document. This data, when combined with other project data, is used to create plans, schedules, budgets, and other project deliverables. A WBS can be displayed as an indented list or a block diagram and can be created in various tools such as spreadsheets, word processing programs, or project management software.

The WBS provides benefits for the following:

Estimating. Provides a baseline list of tasks to be estimated. The estimates provided determine cost and schedule.
Resourcing. Staff and skill resource needs become known by clarifying work items to be done. It also helps demonstrate resource needs if project stakeholders ask for a justification.
Sequencing. Provides a baseline list of tasks that can be analyzed for dependencies and resource constraints that can be developed into a schedule.
Risk identification. Helps the team consider each task when identifying risks.
Responsibility. Can be used to generate a responsibility matrix.

Traceability between WBS and the Functional Specifications and Master Project Plan

There is a traceable relationship among the functional specifications, master project plan and the WBS. This reflects the relationship between deliverables and tasks needed to build the deliverables.

For each feature or component in the functional specifications, the WBS lists the tasks associated with completing that deliverable. The way features or components are grouped in the functional specifications is not the same way their associated tasks appear in the WBS.

If a feature has no task item associated with it somewhere in the WBS, it can later "fall through the cracks" of the estimating process, possibly resulting in an unrealistic schedule or budget.

The master project plan and the WBS work in a complimentary way. The WBS lists each task briefly. Detailed descriptions of how the tasks are to be performed, quality bars and detailed sub-tasks or checklists are documented in the plans.

Figure 6 illustrates schematically how a WBS can be a powerful tool to maintain traceability among specifications, plans, and schedules.

Figure 6: WBS Provides Traceability among Specifications, Plans, and Schedules

Figure 6: WBS Provides Traceability among Specifications, Plans, and Schedules
See full-sized image.


Building a Work Breakdown Structure

Each team identifies specific activities that are required to produce the project deliverables. The fine detail of activities are owned and tracked by the various roles or sub-teams in the form of checklists and in plans.

In MSF, the lowest level of activity appears in the master project plan but not in the WBS. These are rolled into tasks large enough to be worth tracking and reporting on at the overall project level, which is the WBS.

Team leads meet with their role teams to break down work requirements. Working together through the functional spec and specifications for other deliverables, the work required is identified and broken down into its smaller activities and tasks. This process is known as work breakdown or work decomposition.

One of the outputs of the MSF risk management process is additional tasks that respond to risks (sometimes referred to as "threats") or contingency plans and activities. These tasks must be added to the WBS, estimated, planned and scheduled in the same way as all other tasks. Consider scheduling team work breakdown sessions and risk brainstorming sessions back-to-back.

The first level of the WBS should contain a phase of the project lifecycle. The MSF process model lends itself to this very well. MSF suggested interim milestones are tied to completion or baselining of deliverables. Interim milestones also form a natural second level. Below that level, identify all deliverables and break down the tasks for each one. This process is known as work or task decomposition.

Guidelines for Task Decomposition

The following guidelines are recommended when performing task decomposition:

Can be realistically estimated.
Are not believed to be less than a day and no larger than 40 (for IT projects).
Have a meaningful conclusion and deliverable.
Can be completed without large interruptions.
Can be assigned to one person responsible for its completion.
Can be broken down at specific levels further than others.
Can break higher risk activities down further than lower risk activities.
Except for the top one or two levels, use a subject-verb phrase to describe the task. For example, use "Design database schema" instead of simply "Database schema."
Contains between three and five-levels in outline form.
The WBS evolves iteratively over the course of the project but is usually shaped during the planning phase.

Bottom-Up Estimating

Estimates for IT projects should be made by those who are scheduled to do the work. Bottom-up estimating is a process for developing and integrating estimates from multiple team members. It provides the following benefits:

Better accuracy. Estimates made by those who will do the work are more accurate because the person making the estimates has had experience performing similar work.

Accountability. People who develop their own work estimates feel more accountable for their work. They also feel more accountable for success in meeting the estimates they have made.

Team empowerment. Having team-developed dates as opposed to management-dictated dates empowers the team because the schedule is built on estimates that team members can accept as realistic.

Integrating Team Estimates

Each team lead, together with their subteams, is responsible for preparing the time estimates needed to complete the deliverables of their role area. For example, the development lead prepares estimates for developers; the user experience lead prepares estimates for user experience (UE) deliverables, and so on, with input from their team.

The program management role facilitates the team estimation process and integrates ("rolls up") all of the estimates into a master schedule and budget.

Estimation in Software Projects

The cost of IT projects consist largely of labor, so work effort estimates are the essential data inputs needed to generate both cost and schedule estimates.

Setting appropriate expectations

Estimates set expectations about some future outcome. For this reason, setting the right expectations about the accuracy of an estimate is just as important as the technique used to generate it. The program and product management role clusters must work hard to ensure common expectations about the following:

Estimates depend on the specification. Developing IT solutions is much like custom building a house. It is impossible to know how much it will cost until its features have been well defined. This is not to say that specs are all that is necessary to estimate the project. Other work items such as customer communication, project meetings, status reports, all take time and must be considered in the estimates.

Be prepared for tradeoffs. Discussing the tradeoff triangle and setting default priorities using the trade-off matrix helps the team and customer set common expectations.

Some imprecision is unavoidable. Because solution development is a process of refinement, estimates contain a measure of variance.

Re-estimate at each milestone. The team should commit to providing a series of more refined estimates as the project progresses.

Uncertainty and Estimate Accuracy

Software estimation is a process of gradual refinement. Figure 7 illustrates the so-called "cone of uncertainty" (estimate convergence) of software estimation. Early in the project the range of variation in estimates from actual cost is very wide. This range narrows as the project progresses.

Notice that, at the vision/scope approved milestone, the estimate can be too low by a factor of 2, or too high by a factor of 0.5. The specific data values that are shown, taken from mid-1990's survey data, should not be applied too literally. What is important is to understand the order of magnitude of variance at each phase.

The lesson here is that, during the envisioning phase, the team develops estimate ranges (sometimes known as "ballpark estimates") of time and cost. Never provide a fixed cost estimate or fixed schedule estimate during this phase. It should be made clear that these can vary by a large factor at the vision/scope approved milestone.

Figure 7: The Cone of Uncertainty

Figure 7: The Cone of Uncertainty
See full-sized image.


Source: Adapted from "Cost Models for Future Lifecycle Processes: COCOMO 2.0" Boehm, et. al., 1995 (iv).

Estimate at the Lowest Level of Task Breakdown

There are several ways to prepare task level estimates of effort. All of them begin by breaking down each task in the WBS into finer activities. This is done at the subteam level and orchestrated by each team lead.

Then, an estimate is generated for each of the lowest-level activities. These are aggregated to create the task estimate in the WBS.

Reviewing the actual data from previous projects is one of the best ways to base estimates. Smart organizations collect and analyze these. Many project activities have industry metrics that can provide good benchmarks.

A more accurate and recommended technique is to generate three-point estimates for each low level activity. Three-point estimates contain an optimistic, pessimistic, and most likely estimate value for each task. Criteria should clarify what these mean. Pessimistic shouldn't mean the worst of all possible scenarios. Rather, optimistic and pessimistic estimates should be based on reasonable and likely risks.

Once the low level activities are summed up to WBS level tasks, there are three estimate values per task. The team leads forward this information to program management for cost analysis and then use the estimate data to prepare schedules.

PERT Analysis

Once estimates have been gathered for all tasks on the WBS, program management (or a specialist project manager) applies statistical analysis to adjust the overall time estimate. There are various techniques for this, but the most commonly used one is PERT (Program Evaluation Review Technique). PERT takes three-point estimates and calculates the mean of the distribution. This is used to project the most likely completion date, rather than the single value of the most likely estimate. It also provides a range of estimate outcomes based on the variances of all the tasks on the critical path.

A full description of PERT is beyond the scope of this paper. However, project management tools, such as Microsoft® Project®, provide the ability to do PERT analysis.

Scheduling Recommendations

Schedule management includes the processes needed to ensure that the project is completed on time.

Task Sequencing

Once the tasks and activities of the project have been documented in the WBS and estimated, dependencies among them are identified. For example, the draft user documentation of a feature cannot be completed until the functional specification has been completed that describes that feature. Dependencies should be identified at the smallest level of tasks.


Use internal time limits to keep pressure on the project team to prioritize features and activities—a technique known as "time-boxing." This should not be misused to arbitrarily reduce team time estimates. A proper time-box begins with a reasonable time estimate and the understanding that some features may need to be cut to stay within the time limit.

Risk-Driven Scheduling

The riskiest high-priority features or components should be scheduled early in the project. This maximizes the time available to respond to problems.

Managing Buffer Time

Add buffer (additional) time to project schedules to permit the team to accommodate unexpected problems and changes. The amount of buffer time to apply depends on the amount of risk. By assessing risks early in the project, the likeliest risks can be evaluated for their impact on the schedule and compensated for using buffer time.

One way to think of buffer time is as an estimate for unknown tasks and events. No matter how experienced the team is, not all project tasks can be known and estimated in advance. However, it is practically certain that some project risks will occur and impact the project, and that the corrective actions required to respond to the risk will take additional time.

The following guidelines are recommended for using buffer time.

Buffer time should not be added by padding estimates for individual tasks. Since work expands to fill the time scheduled to do it (an effect known as Parkinson's Law), the buffer will be absorbed by planned tasks, not unplanned events.
Buffer time should be scheduled as if it were any task. Typically, buffer time is allocated immediately before major milestones, especially the later ones. It always should lie on the project's critical path. The critical path is the longest chain of dependent tasks in a project and directly determines the duration of the project.
As buffer time is expended over the course of the project, the remaining amount should be carefully tracked and conserved by Program Management. Since the buffer is shared pool, it should be allocated only upon request.
If a feature is added, or resources are removed from the project, do not compensate using the buffer time. If you do, your ability to compensate for risk has been correspondingly reduced. Negotiate features, resources and schedule using the trade-off triangle.
If the entire buffer time has been used, make sure that the whole team is aware that any disruption or delay is likely to have a "cascading" effect and jeopardize the end date.


MSF provides a scalable way to ensure that project management functions are met from the very smallest projects up to very large or complex projects. This approach avoids excessive bureaucracy in smaller projects while providing sufficient management structure for larger, more complex ones.


(i) PMI, Inc., A Guide to the Project Management Body of Knowledge, 2000 Edition (Newtown Square, PA: Project Management Institute, 2000), p. 4-6. For similar definitions in use in Europe and the U.K., see also G Caupin, H Knopfel, P Morris, E. Motzel, O Pannenbacker, IPMA Competence Baseline (Bremen, Germany: International Project Management Association, 1999), p. 23, and Central Computer and Telecommunications Agency, Managing Successful Projects with Prince2, (London: UK Stationery Office, 1998), p. 7.

(ii) Adapted from A Guide to the Project Management Body of Knowledge, p. 39. IPMA calls out 28 knowledge areas, which include the nine described by PMI. Prince2 includes 8 'project management components', of which only 3 of these map to PMI directly. The IPMA areas map well to both PMI and Prince2.

(iii) A Guide to the Project Management Body of Knowledge, p. 4-6. WBS is also defined in IPMA Competence Baseline, p. 34.

(iv) Adapted to MSF from "Cost Models for Future Lifecycle Processes: 2.0" Boehm, et. al., 1995. Previously adapted in Steve McConnell, Rapid Development (Redmond, WA : Microsoft Press, 1996), p. 168.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.


Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2002 Microsoft Corporation. All rights reserved.

Microsoft and Project are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Part number: 602-i404a