The purpose of Project Planning (PP) (CMMI-DEV) is to establish and maintain plans that define project activities.
Introductory NotesOne of the keys to effectively managing a project is project planning. The Project Planning process area involves the following activities:
- Developing the project plan
- Interacting with relevant stakeholders appropriately
- Getting commitment to the plan
- Maintaining the plan
Planning includes estimating the attributes of work products and tasks, determining the resources needed, negotiating commitments, producing a schedule, and identifying and analyzing project risks. Iterating through these activities may be necessary to establish the project plan. The project plan provides the basis for performing and controlling project activities that address commitments with the project’s customer. (See the definition of “project” in the glossary.)
The project plan is usually revised as the project progresses to address changes in requirements and commitments, inaccurate estimates, corrective actions, and process changes. Specific practices describing both planning and replanning are contained in this process area.
The term “project plan” is used throughout this process area to refer to the overall plan for controlling the project. The project plan can be a stand-alone document or be distributed across multiple documents. In either case, a coherent picture of who does what should be included. Likewise, monitoring and control can be centralized or distributed, as long as at the project level a coherent picture of project status can be maintained.
For product lines, there are multiple sets of work activities that would benefit from the practices of this process area. These work activities include the creation and maintenance of the core assets, developing products to be built using the core assets, and orchestrating the overall product line effort to support and coordinate the operations of the inter-related work groups and their activities. In Agile environments, performing incremental development involves planning, monitoring, controlling, and re-planning more frequently than in more traditional development environments. While a high-level plan for the overall project or work effort is typically established, teams will estimate, plan, and carry out the actual work an increment or iteration at a time. Teams typically do not forecast beyond what is known about the project or iteration, except for anticipating risks, major events, and large-scale influences and constraints. Estimates reflect iteration and team specific factors that influence the time, effort, resources, and risks to accomplish the iteration. Teams plan, monitor, and adjust plans during each iteration as often as it takes (e.g., daily). Commitments to plans are demonstrated when tasks are assigned and accepted during iteration planning, user stories are elaborated or estimated, and iterations are populated with tasks from a maintained backlog of work. (See “Interpreting CMMI When Using Agile Approaches” in Part I.)
Refer to the Requirements Development (RD) (CMMI-DEV) process area for more information about eliciting, analyzing, and establishing customer, product, and product component requirements.
Refer to the Technical Solution (TS) (CMMI-DEV) process area for more information about selecting, designing, and implementing solutions to requirements.
Refer to the Measurement and Analysis (MA) (CMMI-DEV) process area for more information about specifying measures.
Refer to the Requirements Management (REQM) (CMMI-DEV) process area for more information about managing requirements.
Refer to the Risk Management (RSKM) (CMMI-DEV) process area for more information about identifying and analyzing risks and mitigating risks.
- PP.SG 1 Establish Estimates
- Estimates of project planning parameters are established and maintained.
- PP.SG 2 Develop a Project Plan
- A project plan is established and maintained as the basis for managing the project.
- PP.SG 3 Obtain Commitment to the Plan
- Commitments to the project plan are established and maintained.