Chapter 6. Managing Process

6.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:

• Recognize the key issues involved with process management

• Understand the relationship between product and process

• Understand the key factors that influence process in the eyes of the stakeholders

• Recognize factors that can significantly improve the development process with minimal cost

• Understand that process is not a dirty word

6.2 Context

A process is a set of steps with a purpose. A process is a framework for action whose purpose is to achieve a well-understood goal in a repeated fashion. A process consists of a set of actions or tactics to achieve the goal. A process is also a set of steps that standardizes the production of a product. Humphrey (1989) defines process as a set of tasks that, when properly performed, produces the desired result. In other words, a process can help you produce a product and also can serve as a filter to ensure that defects do not get into the product we are creating.

Viewing process as a filter enables a project to remove defects early when the cost is lower. We all know about the 10-to-1 cost when software defects are allowed to migrate into later phases of development. It is important that defects are encapsulated or removed before they spread out. If not contained or removed, they “infect” other code and therefore are harder to remove. The processes that you use can serve as a uniform, disciplined way to remove these defects so that the later phases of the project are not delayed because of the need for bug fixing. The process can save the engineer from having to expend time doing rework.

To use the software development process as a quality filter for the results of your software project tasks, you need to be able to perform the following activities to manage the processes used by the project members: define or select the process, teach the process, measure the process, evaluate the process effectiveness, and change the process to improve its effectiveness. Each project member who uses a process should be able to perform the following activities: understand the process, execute the process, evaluate the results of executing the process, and understand how to change the execution of the process to improve results.

As you examine process in this chapter, you will look at the decisions that a manager must make to influence or instantiate process in a software development effort. You can use the basic PEAK model to make decisions that will impact the activities performed by the project team. Table 6-1 presents what-if questions to answer when evaluating and making process decisions. For each what-if question, you can determine whether the PEAK input statements are true. Study the table, and think about how you would answer these questions to manage process for your current software project.

Table 6-1: Managing Process Decisions Using PEAK

image

Software project managers or software engineers can better eliminate defects by managing the decisions that they make about how they do their work. To manage these decisions, software engineers need to understand the way in which they complete tasks (or the processes that they use) and to be able to perform them in different ways if needed to achieve fewer defects. Changing the way you perform a process to improve its outcome is called process improvement.

Process improvement is a way to improve efficiency through the recognition of better ways to perform actions. When you write things down and are able to evaluate what you are doing systematically, then you can see “better” ways to do things. Many of the decisions you make with respect to process involve making the process more efficient or less error prone when applied. In a sense, process is a tool like any other development tool. It can be used badly or well. For software engineers, process is essential because the work they do is detailed and requires their best efforts. One guideline to remember in making decisions about process is that the process should serve the user. The user does not serve the process. Another guideline when making process decisions is to consider whether the process or the tools should come first. When these get reversed, teams get into trouble.

Activities of Process Management

Process is fine for other people. To paraphrase a line from the film Blazing Saddles, “Process? We don’t need no stinking process!” (IMDb.com, Blazing Saddles). Some people view process as a necessary evil. They think that it is needed because someone else wants visibility into the project. This is the wrong reason for process, although sometimes it used as the “stick” to get engineers to listen.

A useful way to view process is as a mechanism by which defects can be filtered from a work product throughout its creation. This is sometimes at odds with some people’s view of process, in other words, “process for the sake of process.” Process without value for the user is useless. Process is not an end in itself but a means of guiding and planning software project actions to achieve project objectives.

A decision to not have a defined process or a disciplined process is still a decision to have “a process.” In this case, the process is not managed to improve a project. So, another truism for process is that unless you manage it and define it, you cannot improve what you do.

Managing process requires planning, discipline, and proper decisions. Processes must be based on the business goals and needs of the organization, the project objectives, and “best practices” for the domain. Basic activities to be performed in managing process are the following:

• Defining, selecting, and understanding the process

• Teaching the process

• Measuring the process

• Evaluating the process

• Changing the process to improve its effectiveness

Table 6-2 describes these activities in more detail. Explore the table, and consider other activities that you think may be helpful in managing process.

Table 6-2: Descriptions of Activities in Managing Process

image

image

Making Decisions About Process

You cannot control what you cannot measure (DeMarco 1982). Process goes hand in hand with improvement. If your projects are running perfectly and you see no need to change anything, then you don’t have to worry about process because obviously you have good processes. But if your project is like many other software projects, the results are not always acceptable, and things are always changing. As the saying goes, “The only thing consistent is change.” Therefore, if you are making changes, you want to make sure the changes are improvements; and you can’t improve your process if you can’t measure it. So, decisions made about process usually focus on how to evaluate its effectiveness.

An important concept is that process and product can be viewed as two sides of the same coin. For this discussion, product consists of the artifacts that compose the output of a project. They can be customer or management focused. The execution of a process results in a product. Most of the time, the quality of the product is highly dependent on how the process is followed. People who insist on focusing on only product or only process are cheating themselves. As people who deal with software know, a software development effort involves compromise. The software project stakeholders make decisions regarding one alternative or another because of a slight advantage. The choice of how much effort goes into managing the process and how much goes into managing the product is a compromise at the project level. Project managers are constantly making decisions regarding the resources needed to manage process and regarding what and how much to measure to ensure that the project delivers the right product to the customer. The process resources include variables such as people’s time, reports, and reviews. Every project must decide which and how many resources to expend.

Schedules are key factors in making project decisions and are likewise dominant in making process decisions regarding how to execute the project in order to produce acceptable project deliverables on time. Process can serve as a defect filter that can reduce completion while improving quality. When selecting processes to be followed for a project, project managers are primarily deciding how many “issues” they would like to filter out as soon as possible within the project. The right amount of process is always a balancing act to manage effort and time while attaining the proper effect on the product. Usually this balancing act is directly related to quality (that is, zero defects), but most project managers have given up on the idea of process nirvana and strive for minimal rather than zero defects.

Process decisions often involve the search for ways to improve project speed through efficiency and productivity. One of the major decisions a project manager has to make is how much new process technology the team can handle. Many projects have suffered from the introduction of new support tools, languages, and hardware that is supposed to make the team more efficient, faster, smarter, and able to leap over buildings in a single bound. The project management always seems to be surprised when the team is slower than normal and spends all of its time “learning” these new systems. Project managers need to balance process changes with respect to the impact that they will have on the efficiency of the team. This is one decision area that can benefit highly from the application of PEAK, which makes transparent the statement of the problem to be resolved as well as the assumptions being made. One of the case studies addresses this issue directly.

Next, you’ll examine the process in the context of making decisions to achieve project objectives and to satisfy stakeholder expectations. You will consider the effect of process on the four dimensions of scope, schedule, quality, and cost. The following example applies the PEAK model to examine the impact that process can have on quality:

(P) Problem: A team sees it might be late for a delivery. The team members are deciding whether they should eliminate code inspections to reduce the time needed to get the software out the door.

(E) Experience: The software being delivered in this release contains only the GUI code. The complete software application will be delivered in the next release.

(A) Assumptions: If the team eliminates code inspections, the code will be “ready” for delivery sooner.

(K) Knowledge: The team understands that the software tests provide sufficient verification and may be willing to deal with the impact of releasing software with “less quality” more quickly.

Solution: The team would release a software version that consists only of the GUI code, which would not be fully inspected. The next software release would contain all code and be fully inspected.

Assumed Risk: The team assumes that the consequence of delivering lower-quality code is not as severe as the consequence of delivering late code because the customer knows that this is an interim release. If this assumption is not accurate, then the consequence of releasing lower-quality code may be more severe than the team expects.

Cost is frequently a concern when project managers are considering the process that is best to use. The next example applies the PEAK model to clarify the impact that process can have on cost:

(P) Problem: Do you use the lab to test the software when the cost of usage is $1,000 a day, or do you use the simulator, which is less expensive but not as “complete”?

(E) Experience: The lab is a fixed-cost, highly utilized resource in which the entire new system environment is established with all hardware and connection configurations. The simulator has only some of the hardware features.

(A) Assumptions: The simulator produces test results that are as useful (with respect to accuracy and reliability) as those produced when using the lab for “certain” tests.

(K) Knowledge: We understand what tests are best suited for the simulator and which ones are best suited for the lab. We can clearly identify these in a project.

The use of process is a people issue. Businesses don’t perform processes, but people do. Process influences people to produce or not to produce higher-quality products that meet stakeholder expectations (Microsoft 2007). Refer to Chapter 8, “Managing People Interactions,” and Chapter 9, “Managing Stakeholder Expectations,” for more information regarding the relationship between people and process. See also Crosby (1995) for a discussion of how to achieve quality through satisfaction of customer expectations, and see Goldratt and Cox (1992) for information regarding how to use process improvement to improve the business of software development.

6.3 Case Studies

This chapter has two case studies. One case study focuses on the process decisions that have been made for a project and analyzes whether they were the right decisions for the project. The second case study examines decisions about processes that can directly impact the quality of the project deliverables and therefore the schedule.

In the first case, “Bank on the Verge,” two consultants are asked by a project manager to evaluate the project that he is working on. The project manager wants the consultants to evaluate whether his team has made good decisions on process and whether there are things that the team could do better. In particular, the project manager wants all the members in his group to work on the product to help ensure that it is the best that they can produce. He is concerned that if all of his team is not involved in this effort, then the expected product features cannot be delivered in the time allocated, and the product will not be the best that his team could achieve.

In the second case, “Damn the Process, Full Speed Ahead,” one project manager is asked to review a project with problems that is being run by another project manager to determine what can be done to improve the situation. The troubled project is behind schedule, and no one has been able to clearly identify what is causing the schedule slippage or what should be done, if needed, to fix the project’s processes or to help the project stay on schedule.

6.4 Summary

This chapter focused on the following activities for managing process in the context of decision making for software projects:

• Defining, selecting, and understanding the process

• Teaching the process

• Measuring the process

• Evaluating the process

• Changing the process to improve its effectiveness

The case study “Bank on the Verge” looked at decisions concerning process definition, teaching the process, and process measurement. “Damn the Process, Full Speed Ahead” covered decisions related to evaluating and changing the current process.

Many people view process as a necessary evil. They think that it is needed because someone else wants visibility into the project. This is the wrong reason for process, although sometimes it is used as the “stick” to get engineers to listen. Software developers can view process as a filter that enables them to remove defects early when the cost is lower. They can also see process as a way to improve efficiency when they recognize better ways to engineer software.

Process and product are two sides of the same coin. Software project managers must decide how much resource to expend so that the amount of process improvement yields the desired product improvement. They also need to look for ways to make the project processes more efficient while making them more effective. Managing process for the sake of process is a waste of time.

Process decisions are particularly important when they affect the project’s ability to save time, reduce cost, and improve quality.

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

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