Process assessment always requires the involvement of people within the organization; however, the degree of involvement of each of them varies. All the people within the organization are required to provide input about the processes through mechanisms such as questionnaires and interviews. People are trained on the model being used for process assessment, how the processes are being used, and how to measure them for effectiveness. This makes the people in the organization more receptive to changes and process improvement efforts.
Let us now discuss the second step in the generic model for process improvement.
Education
Education, the second step in the model, is necessary to make appropriate decisions. The people responsible for process improvement must have a thorough knowledge of software engineering practices and understand the impact of the assessment findings. Given below are some examples of the procedures, methods, and tools that are imparted through education.
- For practitioners: Analysis, design, implementation, and testing methods
- For managers: Estimation, scheduling, planning, and risk analysis
- For customers: Software concepts, communication techniques, and acceptance testing
- For SQA staff: Statistical methods, SQA methods, and auditing
- For all: Reviews, metrics, SQA issues, SCM, and customer communication
Areas of education
Given below is a list of some typical aspects addressed by education.
- Appreciation of the need to adopt software engineering practices and processes and quality-related approaches
- Imparting software engineering and project management skills needed for building the software and performing the umbrella activities
- Imparting skills required to define the processes of the organization
- Imparting soft skills such as people management and human relations
- Improving skills required for a specific project, application, or platform (These are part of specific project training and are separately planned and provided.)
Education for reducing resistance to change
Process improvement involves change, and a typical problem is that people resist change. Resistance to change is a natural response because:
- People are not convinced about the need to change as they do not appreciate the importance of the new processes, methods, and tools.
- People feel they lack the skills to work in the new desired manner.
Education can address both these concerns. It imparts the knowledge required for using the changed processes. It is also a means of explaining to people the importance of using the new processes.
Education can, therefore, help overcome resistance to change and help smoothen process improvement.
Strategy for education
Based on the process assessment results, a strategy is formulated for imparting the required education. This could be designed as a curriculum that achieves 'just-in-time' training. Let us listen and find out how education is provided for process improvement.
People resist changes in culture because they are ignorant of the new culture, and that leads us to education. Education is a pivotal activity in software process improvement. We need to educate managers, practitioners or technologists, and customers so that they all understand just where software engineering fits into the big picture. Education is important for another reason as well. IT SELLS! So, it is important that we take a quick look at software engineering education and understand just how it fits into the broader software process improvement model.
The education activity begins by building on the results of the process assessment. During the process assessment, we develop an evaluation of a number of key process attributes, for example, software project management abilities or quality assurance capability, measurement, or methods.
In doing this, we create what we call a process footprint, indicating relative strengths and weaknesses within the software development process. We design a curriculum that achieves just-in-time training. We would hope that essential software engineering will do much of this for you. We then select appropriate knowledge delivery components for the needs of specific staff members, for example, some staff may need training and testing while other staff may need to become more knowledgeable in software quality assurance. When we teach specific software engineering methods such as structured analysis or structured design, we always attempt to integrate tools into the training process so that people will be going live, that is, using tools that are most appropriate to the particular method in hand. And, finally, we focus on the education of managers, practitioners, and customers so that everyone is on board with the software engineering process.
Selection
The third step of the generic model for process improvement is selection. In order to make improvements in the process, we need to examine the components of software engineering. We need to select procedures, methods, and tools to improve processes because all the three work together to make a process effective.
An important aspect is that the process should be simple, practical, and suitable to achieve the desired results. A process that is elaborate and complex should be avoided because it is likely that it will not be used. Processes are effective only if they are convenient for the people who use them. People should have the desired skills and should be convinced that using the defined processes will help them perform their jobs better and meet the required targets.
The process framework is the foundation for software engineering. Organizations need to define a common process framework (CPF) and the adaptation guidelines that the project teams can use to adapt the CPF based on the project characteristics.
The CPF should be based on the selection of an appropriate software engineering paradigm (process model) as the abstract or conceptual base. The methods and tools are selected to suit this process framework. The selection of processes, methods, and tools should be concurrent and should 'fit' well to achieve the desired result.
Justification
The fourth step of the generic model for process improvement is justification. Process improvement efforts cost money and take time. Therefore, they can only be undertaken with management support and commitment, so that adequate resources are available and the activities related to process improvement are given priority.
The management needs to be convinced that the process improvement efforts are worthwhile and should be willing to support them. Therefore, the management requires a justification such as a cost-benefit analysis. Such analyses provide a basis for reserving the resources required for process improvement.
Steps in justification
Given below is the sequence of steps that can be used to justify the costs associated with process improvement.
1. Collect the cost and effort data from the past projects.
2. Project the 'future demand' for software in the next few years
3. Compute the cost of the future demand using the data collected from the past projects (as in item 1).
4. Project the cost and effort benefits due to process improvement. (10 percent to 25 percent per year is typically considered good enough to proceed with the plans.)
5. Re-compute the cost of the future demand using data from item 4.
6. Compute the gross savings (item 3 minus item 5).
7. Determine the cost of the process improvement activities.
8. Compute the net savings (item 6 minus item 7).
A formal justification is essential to enable the management to set aside the resources and time for the process improvement work.
Justification: Benefits of process improvement
The benefits of process improvement are not always monetary in nature. However, the process improvement can still be justified if the benefits that it provides are worthwhile, even if not quantifiable.
For example, process improvement can be undertaken if:
- The organization will be able to provide greater service to the business.
- Throughput will be improved, resulting in satisfied customers.
- More projects will be completed per unit of time.
Installation
Let us recapitulate the steps in the generic model for process improvement before discussing the next step of the model—installation.
- Process assessment is required to understand the current status and the areas to be improved.
- Education prepares the practitioners, managers, customers, and others for the changes and equips them for making reasonable and effective decisions related to process improvement.
- Selection helps to choose the appropriate process framework, methods, and tools.
- Justification is required to obtain management commitment and the required resources.
Successful installation starts with the creation of a comprehensive process improvement plan. For process improvement to succeed, we need to plan it well and then execute it as per the plan.
The process improvement plan contents are typical of any plan with defined objectives, resources, roles and responsibilities, activities, schedules, reporting, and controls.
One of the key aspects to remember while planning process improvements is to plan for small steps that are likely to be successful and risk only small failures.
Installation and the system assistants
An important factor for successful installation is identifying 'system assistants' or 'systants' (a term originally coined by Gerald Weinberg). Systants are the experts in an organization who help people in installing the new processes and technologies within the organization. They are available for answering questions and solving the problems faced by people while trying to change over to the new process. One of the critical success factors for process improvement is the identification and training of committed systants. Therefore, while planning, we need to ensure that systants are available to support the changes being made in the process.
Evaluation
The sixth and last step involved in the generic model for process improvement is evaluation. Evaluation helps to assess the effort spent in process improvement and check whether the desired result has been achieved. It helps us clearly answer whether quality and productivity have really improved.If, during evaluation, we find that some goals of process improvement have not been met, a different approach may need to be used for process improvement. Evaluation helps the management to check whether the resources that are used have yielded the expected results, as envisaged during the 'justification'.
Evaluation, therefore, is essential for tuning the process changes. Without evaluation, we have no basis for further action. Evaluation, to some extent, similar to process assessment. In both these steps, the type of input and the nature of questions asked are very much alike.
Cyclical nature of process improvement
The process improvement activity never ends in an organization that is serious about software engineering. The process improvement cycle shown here begins with an assessment activity and then moves clockwise around the spiral through other process improvement steps.
Like the spiral process model for software, the cycle begins at the center of the spiral. Each clockwise revolution around the spiral passes through steps such as assessment, education, selection, justification, installation, and evaluation. The next cycle begins, once the evaluation is completed.
As we move outwards on the spiral, the number of passes increase and the software process becomes more mature and effective.
Small, visible, and successful cycles are an effective way of improving processes.
The cyclical nature of process improvement and evaluation
Every pass around the spiral may not include every step of process improvement. The first or innermost cycle is for performing the assessment. The later cycles are driven by evaluation, which helps to decide the next course of process improvement. However, a re-assessment may be performed at any time.We may choose to have a full-fledged assessment after a number of smaller cycles, with evaluation leading back to the next iteration.
For example, if we are using CMM® as a model for achieving process maturity, the full cycle leading from one level of maturity to the next could be over two years, which is when the assessment is done.
Within these, there may be many smaller cycles, in which small process improvements are made, evaluated, and fine-tuned.
Multiple process improvement initiatives
The generic cyclical model discussed in this section represents the six steps needed for process improvement as distinct and sequential steps. The model explicitly identifies the basic activities and their sequence. Process improvement activities can be initiated in parallel for different areas that require improvement. For example, an organization could initiate improvement activities for the review process as well as for customer complaint processing at the same time.
The sequence of steps in process improvement
All process improvement activities include certain steps. The sequence of steps could be altered depending on the organization's needs. For example, assessment may be followed by justification, and after the approval of the management, the rest of the activities—education, selection, and installation—may be performed. Alternatively, activities like justification, education, and selection could be included in the plan and 'installed' along with other activities.
Process improvement: Common problems
There are several problems faced while progressing through the process improvement cycle.
Some of the common problems faced during process improvement efforts are as listed below.
- Lack of management support and commitment for the process improvement initiative
- Lack of enthusiasm among the people within the organization
- Inertia from the management to get started with the process improvement initiative
- Inability to sustain momentum within the organization
Given below are some more problems faced during process improvement initiatives.
- Selection of inappropriate technology
- The 'no time' syndrome for process improvement activities
- People within the organization avoiding process improvement because of earlier failures
Process improvement: Critical success factors
Let us now consolidate the factors that contribute significantly to the success of process improvement efforts.
- Obtaining the commitment of the top management
- Ensuring that the people involved in process improvement are 'educated'
- Having a realistic process framework
- Aiming at a series of small visible successes
- Having a plan for the process improvement activities
- Using committed and trained systants to facilitate the implementation