The objective of the Software Project Monitoring and Supervision Key Process Area (KPA) is to provide sufficient information on project performance so that the project manager can detect variances between performance and plan and take preventive or corrective action. This KPA influences all knowledge areas of the PMBOK and is most closely associated with the Monitoring and Control process group. As with the other KPAs, software project monitoring and supervision is organized into goals, commitments, skills, activities, measurements, and checks.
Goals
The objectives of this KPA relate to and support project supervision and corrective actions. The objectives are for results to be monitored against project plans, for corrective actions to be taken when there is a variance between planned and actual results, and for affected groups to agree on corrective actions that change the project plan. All skills and activities support the achievement of these goals.
Performance commitment
Commitments to this KPA are required at the executive level. The first commitment is to have a software project manager assigned to the project. This commitment will be made by default for most IT projects. The project manager responsible for the entire project is likely to be someone who considers himself a “software project manager,” or at least has experience in managing software projects. When larger projects require that a subproject be defined for the creation of a software or application system, this commitment requires that a project manager be assigned to manage the subproject. This is an organizational commitment, but it may require you to identify and assign a project manager to manage the software subproject if you are the general manager of the project.
The second commitment is also at the organizational level and is that project management follows a written organizational policy for managing software projects. PMs who work in a PMO or PMC should have such a policy to follow. If you are a project manager leading the charge for CMM / CMMI certification, you should undertake the writing of this policy to govern your project and your organization’s future projects.
Ability to perform
There are 5 skills required to meet the CMM / CMMI level 2 criteria. The first skill is that the software project has a project plan. The second is that the software project manager assigns work to the project team. This means not only that the project manager defines, organizes, and schedules the work in his plan, but directs individual team members to get the work done. I believe that meeting the criteria for this capability requires that the software project manager have the authority to direct the work of the project resources for the duration of the project. The best way to officially grant this authority is through the Project Charter that governs the project.
The third capacity requires that adequate resources be provided for monitoring and supervision activities. The planning of the activities will be supported by the plans and the project schedule. Adequate funding will be demonstrated through the budget of resources to carry out supervision and monitoring activities that are part of the approved project budget. Skill 4 requires the software project manager to be trained in managing the “technical and personnel aspects” of the software project. I would say that there is no better way to demonstrate this skill than by certifying the software project manager as a Project Management Professional (PMP®). The Project Management Institute oversees this certification and is recognized worldwide as the leaders in the area of project management certification and project management best practices. Certifying your software project manager is straightforward, as long as the PMI criteria for project management experience are met. Whenever they are, the project manager can choose from a large number of quality PMP® courses or PMP® exam preparation training products to prepare them for the certification exam. These courses will train project managers in project management best practices and implementation, as well as help the project manager to pass their exam.
The final capability requires front-line software managers to receive “guidance on the technical aspects of the software project.” CMMI defines a front-line software administrator as someone who has direct management responsibility, including responsibility for providing technical direction, staffing, and the activities of a single organizational unit. This definition matches the PMBOK® definition of a functional manager. The front-line manager must be educated in the tools, processes, procedures, and standards used for the project.
Activities
The activities requested by CMM include:
- Use the project plan to track activities and communicate project status. The plan should be updated with information on completed work and made available to project stakeholders. Your MS Project file will meet this criteria and convert your WBS / schedule to various formats that can be accessed by stakeholders who do not have MS Project on their desktop.
- Project plans are reviewed according to a documented procedure. This procedure will be your change management plan or Integrated Change Control System (ICCS). The various components of the project plan specify how the changes approved by the ICCS / Change Management plan will be implemented. The activity also requires a review of the revised project plan.
- Commitments acquired with external groups, and any changes to those commitments, are reviewed with senior management in accordance with a documented procedure. In the context of monitoring and supervision, this activity will be described in the project’s change management plan.
- Approved changes to the software project are communicated to members of the software engineering group and other software-related groups. Your change management plan or communications management plan should describe this.
- Sizes of work products or changes to work products are tracked and any necessary corrective actions are taken. CMM uses the word “size” to refer to the number of lines of code, .html pages, or documentation pages produced. The idea is to compare the actual size with the estimates in order to identify the necessary actions to correct the estimation procedure and future estimates.
- Effort and costs are tracked and corrective actions are taken when necessary. The cost management portion of the project plan will govern the monitoring and control of expenditures and will identify how corrective actions will be identified. The change management plan governs how changes will be made to cost estimates. Since software development projects are often not directly governed by budgets, this can be accomplished in the project’s Time Management plan.
- Critical computing resources are tracked and corrective actions are taken when necessary. These will be tracked, along with other project resources, in the resource management plan.
- The schedule is tracked and corrective actions are taken when necessary. The Time Management portion of the project plan will describe how this happens, including analyzing late and early delivery dates in the plan.
- Technical activities are tracked and corrective action is taken when necessary. Technical activities refer to the methods, procedures, and processes used to develop and test the software. The testing activities will be described in the quality management plan. Most of the methods, procedures, and processes associated with software development should be captured in the Configuration Management plan. Activities not covered by Configuration Management or Quality Management plans should be described in a separate plan.
- Project risks are tracked. This is achieved through the risk management plan
- Measurement data and replanning data are recorded. This includes estimates and data associated with estimates, as well as data that measures work completed. The estimates will be recorded on the WBS and the schedule. Estimation tools and methods such as function point analysis (FPA) will be described elsewhere.
- The software engineering group conducts regular internal reviews to track technical progress, plans, performance, and plan-related issues. The software engineering group includes the front-line managers and the software project manager. This activity is covered by your weekly health review meetings.
- Formal reviews to address achievements and results are conducted at selected project milestones. These formal reviews will correspond to your door reviews.