Chapter 4. Managing Plans

4.1 Chapter Objectives

After reading and thinking about the concepts and case studies presented in this chapter, you will be able to do the following:

• Understand the activities that are essential to managing software project plans

• Identify key issues and decisions involving the management of plans in the chapter case studies

• Use the chapter concepts to suggest feasible solutions to the problems faced by the case study stakeholders

• Recognize the importance of managing software project plans

4.2 Context

A project is commonly understood to be an undertaking requiring concerted effort that is synonymous with a plan or proposal (TheFreeDictionary by Farlex, Project). A plan is a scheme, program, or method worked out beforehand for the accomplishment of an objective (TheFreeDictionary by Farlex, Plan). In practice, the software project objectives (scope), schedule for completion (time), quality attributes to be achieved (quality), and budget (cost) need to be finite. These four dimensions relate to the expectations of the project stakeholders (as discussed in Chapter 9, “Managing Stakeholder Expectations”). Also, a project is usually characterized by a clear start and end.

You would probably agree that most projects could not be accomplished without planning. Imagine trying to construct a new home, to develop an extensive travel tour for a group of tourists, to organize a technical conference, to put together a trade show, or to develop a large software system without a plan. Projects, regardless of their scope or complexity, need a plan of attack. The project plans should be inputs to daily decisions made about project execution.

Project plans address any aspect of a project that will be managed, such as development plans for managing how a product is developed; work plans for managing tasks, schedules, resources, and project progress; budgetary plans for managing project cost; quality and process plans for managing product and process quality; and support plans for managing tools needed to execute the project (configuration management system, development tools, issue-tracking system, and so on). Humphrey (2000) defines a comprehensive software team process in which members of the team assume these types of management responsibilities in the roles of development manager, planning manager, quality or process manager, and support manager, respectively. He adds a team lead role and does not assign a specific role for the management of project costs.

The chapter discusses activities and decisions that compose managing software project plans and gives overviews of fundamental principles for evaluating and making decisions about project plans. This chapter focuses on helping you develop a practical understanding of basic project plans that specify the software project purpose and objectives, work, organization and responsibilities, constraints, and budgetary aspects. Other chapters discuss planning related to product, process, and risk. It provides basic ideas to keep in mind when planning the scope (objectives), time (schedule), and cost (budget) for your projects. Chapter 5, “Managing Product,” and Chapter 6, “Managing Process,” discuss quality constraints in more detail. Chapter 2, “Managing Requirements,” more comprehensively discusses the issues and decisions associated with managing software requirements change and scope.

Because software projects rarely proceed exactly as planned, the need for replanning is inevitable. The client wants to increase the project scope midstream, there are unexpected requests for help from the field service organization, project members leave the company, the project estimates are too low, the project is behind schedule or over budget, and so on. At some point, for most software projects, the plans will not reflect the actual status of the project. Questions arise regarding the need to replan as well as regarding the aspects of the project to replan. Software project managers usually decide to replan when the current plans no longer help them in directing the project to completion of the objectives on time, within budget, and according to specification. Replanning usually involves changes to the scope, schedule, quality, or budget for the project. See Rönkkö et al. (2005) for an empirical study of the necessary means that need to be provided within a company in order to cope with situations when software plans do not work out. Deleris et al. (2007) from the IBM Research Center discuss a two-pronged approach to adaptive project replanning that involves the analysis of risks affecting activities in a project plan (that is, the root factors leading to cost and time overruns) and an optimization of the resources allocated to each activity in the project plan.

Managing plans entails ongoing attention to the details of the plans. Projects frequently fail, not necessarily because the project plans are faulty but because the project managers do not pay attention to details or do not systematically use the plans to evaluate their project decisions. Project managers who are continuously fighting fires often fail to execute to plan or do not replan when the plans are no longer valid. For instance, small slips in the schedule that accumulate to significant delay, mounting cost overruns, or software features that do not exactly satisfy quality requirements can cause well-planned but poorly managed projects to fail. Much has been written about why software projects fail. Some insightful resources about this topic are Johnson (2006), Mangione (2003), McManus and Wood-Harper (2008), and Taimour (2005).

We’ll now apply the PEAK model when making decisions that impact the software project plans. A project manager is struggling to keep a software development project on schedule, within budget, and according to specification. Field service has requested that some of the software engineers on the project help repair a defect that was found by an important customer in the latest release of the software. Meanwhile, the business analysis part of the project is behind schedule, and the actual cost associated with the performance of the data modeling tasks exceeds the planned cost because more outsourced staff were needed than what was originally estimated. The project manager is under pressure from the director of software development to get the project back on schedule and within budget as soon as possible. Using the PEAK model, the software project manager can ask questions such as the following to decide how to handle issues that together impact the schedule, budget, and resource plans:

(P) Problem: What should the software project manager do to resolve the issues regarding schedule slippage, cost overruns, and overlapping demands for project resources? Is replanning needed?

(E) Experience:

• What policy does the software development organization have in place for handling a field service request that would interrupt an ongoing project? How has the project manger or software development organization handled such requests in the past?

• How has the project manager or the software development organization handled schedule slippage in the past?

• How has the project manager or the software development organization handled the underestimation of cost in the past?

• In the past, what have been the important customer’s expectations for repairing defects in the field? If applicable, has the customer been willing to wait for the next release of the software or demanded that the repair be done immediately?

• What issues, if any, relate to managing interactions (relationships) with the customer, field service, or director of software development? How will these impact the alternative solutions?

(A) Assumptions: What, if any, inputs to the problem should be established as facts rather than assumed? For instance, the software project manager could ask questions such as the following:

• Does the reported defect actually exist and prevent the software from achieving the quality expected by the stakeholders for the current release and next version of the software?

• Would repairing the defect interrupt the development of the next version of the software with respect to schedule, budget, or quality?

• Does the important customer, in fact, expect to have the defect repaired immediately?

• What does the director of software development really mean by “fix the project now”?

(K) Knowledge:

• What is the cause of the schedule slippage for the business analysis tasks?

• In what way, if at all, does the slippage impact the critical path of the schedule? (See the schedule planning activity in Table 4-2 for a definition of critical path.)

• What can be done to alleviate the slippage without impact to the critical path?

• What can be done to reduce the cost of the data modeling tasks?

• What other project costs could be reduced to keep the total project cost within budget?

• Which other available software engineers, if any, could handle the field service request?

• How might the defect repair be done as part of the current project deliverables?

• What would be the impact on the project schedule and budget?

• Who would pay for the added cost (field service, development project, customer, and so on)?

• What would be the impact on the quality of the project deliverables? What additional testing would be needed to ensure the expected quality?

Solution: The alternative solutions involve answers to the following questions:

• When will the software defect repair be done?

• Repair the defect as part of the software release currently under development.

• Repair the defect as a special software release for the customer.

• Do not remove the defect if it does not prevent the software from satisfying stakeholder expectations regarding quality. (The customer’s perception may not match reality.)

• Who will do the software defect repair?

• Software engineers currently working on the project who have the necessary skills, experience, or knowledge

• Software engineers not currently assigned to the project (if there are engineers who are sufficiently skilled to do the repair and are available)

• How will the schedule slippage for the business analysis tasks be handled?

• Who will pay for the software defect repair?

Assumed Risk: Given the current input information, what do the software stakeholders know about the risks that they would assume with each feasible solution?

For the remainder of this section, we discuss activities involved in managing plans and provide practical guidelines for making decisions concerning project plans. This material serves as a review or checklist for experienced project managers and we hope as a stimulus for thought to new managers. The guidelines are based on the actual experiences of project managers. We encourage you to log your own software project planning experiences and to develop your own decision guidelines based on your experiences and those of your colleagues. The guidelines presented in this chapter should appeal to your common sense, but do not be fooled. As you may already know, what makes sense is not always easy to practice.

The ensuing discussion includes the following terminology commonly used by project managers:

Software: Is composed, in general, of a variety of entities involved in the creation, execution, and maintenance of computer programs and data. Each one of these entities is a software artifact. Some examples of software artifacts are requirements specifications, architecture and design specifications, source code, executable code, test plans, documentation, databases, data files, and so on.

Software project deliverable: Is (1) a software artifact that is an outcome or result of work done by machines or humans for a software project, or (2) a software product created or a software service provided within the context of a software project that yields some defined value to the project stakeholders (notably to users, clients, or customers).

Software product: Consists of a group of software artifacts that together perform a computerized purpose. Often they are integrated, packaged, and sold as a single entity. They usually consist of one or more computer programs and documentation. The documentation typically contains information regarding the authenticity of the software, legal statements about the allowable distribution and use of the software, system requirements for executing the software, and directions for installing and using the software.

Software service: Is an activity performed for a user, client, or customer that involves the creation, definition, delivery, design, execution, maintenance, and so on, of one or more software artifacts.

Task: Is an activity that is performed by a machine or human in the development or delivery of software project deliverables, including software services. A task usually requires the allocation of staff, equipment, budget, time, or other resources for its completion.

Milestone: Is (1) an event or outcome of a software project activity that is observable and therefore able to be tracked, or (2) the completion or delivery of a software project artifact, software service, or constituent part of a software project deliverable that is useful for tracking purposes.

Software project: Involves the allocation of budget, time, staff, and other resources for the production of software artifacts or for the performance of software services on behalf of a user, client, or customer.

Software project plans: Describe what should be produced or done (scope), who should do what and when (staff and schedule), what other resources should be used (equipment, supplies, and so on), how much should be spent on what (budget), what constraints or properties should be satisfied (quality attributes), how something should be produced or how the project should be managed (process), or any other aspect of a project that is to be managed.

Software project plans are multifunctional: They describe the details of scope, schedule, quality attributes, and budget. Software project plans specify how the status of the project will be tracked and how success will be measured with respect to each of the stakeholder expectation dimensions. A basic software project plan specifies the objectives and scope for a software project. It provides estimates for the tasks, staff, and other resources needed to accomplish the project objectives and indicates an approximate schedule and budget for the completion of the project tasks or deliverables. The plan provides an organizational view of the project and a description of the roles and responsibilities of the people in the project. Likewise, it describes any specifications or constraints on how the project will be executed. The project plan includes the work plan and sometimes the budgetary plan. The software project manager, with input from the project members and possibly a planning assistant, usually develops the software project plan.

Software project plans typically provide the types of information shown in Table 4-1. The example information is grouped by project management area. Review the table, and think about other information that you have included in your software project plans or that you have seen in project plans written by other people.

Table 4-1: Example Content of Software Project Plans

image

We’ll now explore the activities that software project managers perform to manage plans as described in Table 4-2. To manage your project plans, you might start by thinking of how you would perform each activity. The main idea is to understand why you are doing a particular activity (the target outcome) and how the activity contributes to accomplishing the project objectives. Study the table, and then think about other activities that you have performed or think you might perform when managing software project plans.

Table 4-2: Descriptions of Activities in Managing Plans

image

image

image

People who manage software project plans make decisions such as those shown in Table 4-3. The example decisions are grouped by decision area. As discussed earlier, the decisions focus on the basic elements of a software project plan such as objectives, organization, and work and budget planning. Because a project plan specifies what should be managed and how it should managed, the related decisions naturally concern content as well as process. Explore the table, and then think about other decisions that you have encountered or think you might encounter when managing software project plans.

Table 4-3: Decisions to Make When Managing Software Project Plans

image

image

image

Table 4-4 shows some practical guidelines when making decisions about software project plans. The left column of the table describes the issue or decision that a project manager faces, and the right column presents some practical guidelines to consider when handling the corresponding issue or decision. Scan the table, and develop guidelines from your own experiences in managing software project plans. If you are new to project management, now is a good time to start logging and reflecting upon your experiences.

Table 4-4: Practical Guidelines When Making Decisions About Project Plans

image

image

image

The Software Engineering Institute’s (SEI’s) Capability Maturity Model Integration for Systems Engineering, Software Engineering, Integrated Product and Process Development, and Supplier Sourcing (CMMI) defines project planning as one of several fundamental process areas that compose project management. The CMMI, which models software project management processes, is an excellent reference for how to define your project planning processes (CMMI Product Team 2002). When defining processes for planning and tracking projects, you will find it helpful to read the material in this chapter before delving into the CMMI guidelines.

Other software project planning resources are IEEE Std. 1058-1998 for guidelines on writing software project plans; McConnell (1997) for a classical example of a basic software project plan; Pfleeger and Atlee (2006) for how to plan and manage a software project; Bennatan (2000) and Stellman and Greene (2005) for advice on best practices in software project planning areas such as estimating, scheduling, and budgeting; and OGC to learn about a process-based, standardized, and comprehensive approach to managing projects developed by the U.K. government.

For readers who want to learn more about managing plans, we suggest the following references. Muñoz-Avila and Cox (2008) analyze research in case-based plan adaptation that helps set the groundwork for reusing project plans across similar software projects. Xu and Muñoz-Avila (2008) present the prototype for a knowledge-based system designed to assist with project-planning tasks using case-based reasoning. Ceschi et al. (2005) studied 20 managers from software companies who employed either plan-based (traditional) or Agile approaches to project management. They found that managers who use Agile methods focus more on people and process than other managers. Pikkarainen et al. (2008) found that while Agile software development practices facilitate team and organizational communication of the dependencies between product features and working tasks, the team and organization also must use plan-driven practices to ensure the efficiency of external communication between all the stakeholders of software development.

4.3 Case Studies

The case studies in this chapter emphasize the not so glamorous but important activities of replanning and managing the details of plans. The “To Replan or Not to Replan?” case study discusses the issue of when and why to adjust the budget, schedule, or staffing plans. Stakeholders in the case study have to decide whether replanning is needed. The second case study, “Management Is in the Details,” looks at the details of planning and tracking software projects that share resources with other projects and engineering groups. A special Process Analysis Team (PAT) investigates and determines reasons for why the software organization consistently has problems in planning and managing software projects and resources. The team must decide recommendations for improvement to give to the director of engineering. Read these cases to understand better the nuances of managing software project plans.

4.4 Summary

The chapter focused on the following activities involved in managing plans as they relate to decision making for software projects. The activities marked with an asterisk are discussed in more detail in other chapters.

• Defining project objectives, policies, and scope

• Task and milestone planning

• Schedule planning

• Budget planning

• Staffing and other resource planning

• Tracking and controlling the budget and schedule

• Estimating the budget and schedule* (see Chapter 3, “Managing Estimates”)

• Managing midstream changes to project plans

• Managing software development with respect to project objectives, policies, schedule, and budget* (see Chapter 5, “Managing Product”)

• Managing processes with respect to project objectives, policies, and other project plans* (See Chapter 6, “Managing Process”)

The case studies in the chapter presented practical ideas for planning and tracking project work and budget. The “To Replan or Not to Replan?” case study illustrated that software projects rarely proceed exactly as planned and that software project managers often need to carefully evaluate their decisions about whether to make adjustments to plans. The second case study, “Management Is in the Details,” focused on the challenge of managing the various details of developing and tracking plans, especially when resources are shared across projects while information about how to plan and execute projects is not shared across the organization.

Software project plans should enable project managers to understand and make decisions about what is to be managed and how to manage it.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset