A quality improvement program is a program that causes a change in the mindset. This is not an easy process and there are four clear phases in the implementation of any quality improvement program and these phases are
The formulation phase is the phase where the goals for the quality improvement program are identified and the consists of the following activities
Formation of the Quality Improvement Team
It is very important to form a team that would be responsible for carrying forward the quality improvement program. It is not necessary that the team be a dedicated team. It can consist of members that are dedicated and members that are only part time and are used to carry out various activities of the quality improvement program. This team should have a clear charter and should have experience in the practices of the organization and also knowledge in the various quality models. It is important for this team to realize that implementing a quality improvement program is not easy and that it is necessary that there have the drive, dedication, authority and most importantly the time to carry out the quality improvement program.
Identification of the goals of the quality improvement program
In this activity it is very important to identify what exactly is the quality improvement program that the organization wants to implement. This step is the determining factor for the rest of the steps in this process. The goals that need to be identified should be in the form of improved productivity, reduced costs, reduced defects and so on. Now the QIT has to choose the quality model that would help them achieve these goals. These are called the primary goals of the quality improvement program.
But it is always helpful to have certain milestones to achieve. These milestones come in two flavours and they are in terms of improved productivity in numerical terms that is something like a 10 % improvement in productivity and so on. But if an organization has no orientation to quality and does not have any historical data then it would be very difficult for that organization to set itself a goal as above. In these cases it is necessary for the organization to choose a quality model that it would like to adopt and the parts of the quality model that it would like to implement. For example its goal can be to be CMMI Level 3 compliant. That is the organization has chosen a quality model which is SEI's CMMI and it plans to implement all the processes up to Level 3 of a total of 5 levels.
Some important things to keep in mind while choosing a goal is to choose realistic and achievable goals in medium term time duration (six months to a year). If the goals that are being chosen is of the nature of improved productivity then it is important that these goals be measurable. That is the organization has existing data and a mechanism to collect new data to compare to the existing data. If either of these does not exist it is better to make your goals
Identifications of the Gaps in the existing process
Once the goal has been set the quality improvement team the team needs to study the model and understand it. This can be facilitated by organizing for a formal training session in the quality model. Once the team understands the quality model it needs to identify all the processes that are missing in the current organizational process with respect to the chosen quality model and fill in these gaps. This process is known as gap analysis.
Plan for the Quality Improvement Program
Now that the gaps have been identified the QIT needs to come up with a comprehensive plan for the quality improvement program. This is where the experience of the members who have implemented other quality improvement programs would be very helpful. It is very important at this stage that there is a clear plan on what are the major milestones of implementation and the target dates for those milestones. When making these plans the team should also take into account the size of the organization and the availability of the part time members in the QIT.
Closure of the gaps identified in the current process
The team has to then close all the gaps that have been identified in the process so that the process becomes capable of achieving the quality improvement goals that have been set for by the QIT. This is where the experience of the members of the team who have experience in the various processes in the organization and a lot of software engineering experience behind them is most useful. It is always important to remember that the process that is closest to the existing processes in the organization eases the implementation of the process in the organization.
Once the Quality Processes in the organization have been upgraded to achieve the goals laid down for the Quality Improvement Program the QIT needs to make all the associates in the organization aware of the process so that they can implement it in their software engineering activities. The activities that take place in this phase of the QIP are
Roll out of the Quality Management System
The new Quality Management System (QMS) needs to be rolled out in the organization in the form of an online quality manual or a web based system. An associate should be capable of reading the QMS and identifying the processes that need to be implemented in the activities that the associate is performing.
Formation of any associated teams needed for the implementation of the QMS
It is necessary that all the teams that are needed to facilitate the implementation of the QMS be formed at this stage. Some of the teams that need to be formed are the Process and Product Quality Assurance Team (For checking Process and Product compliance), Training Team (for conducting the various training required), Product and Process Innovation Team (for investigating improvement in processes and products), Metrics Team (for calculation the organization performance baselines, estimation models and so on) and many other such teams. Depending on the size of the organization and the way in which the organization has formulated the quality process for the organization there may be several teams that have independent responsibility for each of these activities or there may be only one team that does all these activities. But it is very important that the team be identified all such activities at this stage.
All the associates in the organization need to be trained about the new QMS. The training can be customized for various segments of the organization such as for Team Leads and Project Managers there can be a greater emphasis on the Project Management and Tracking portions of the QMS and for the developers there can be a greater emphasis on the Software Engineering activities of the QMS. The training can also be split up according to the types of projects. That is support projects can be taught how the QMS can be implemented and Development projects can be taught how it can be implemented that is if there is a contras tingly different implementation for each type of project.
Training has to also be done in all the processes that are new to the organization or the processes that the organization is perceived to be weak in. Some of the important processes are Software Quality Assurance, Software Configuration Management, Project Management and Tracking, Peer Reviews and Testing.
Now that the associates of the organization are made aware of the processes and the new QMS they have to go back and implement the QMS in their projects and this is called the implementation phase. This is the toughest and the most crucial of all the phases. This phase involves the co-ordination of all the associates of the organization to implement the defined QMS. The activities that take place in the implementation phase are
Implementation of a Process Request System
It is very important to have a Process Request System in place where the associates who are implementing the QMS in there projects can pose their queries, suggest improvements and notify any gaps that have been identified in the system. This request or bug tracking system can also be used as a mechanism for the projects to get approvals from the QIT for changes to the organizations quality system that is implemented in their projects. It is very important that the items that have been reported to this system are acted on in a very efficient manner. The reason for this is that the associates are very sceptical in anything that changes the way they work and the easiest way to change them is to ease them into the process through a dialogue. So when they have their queries answered promptly, their improvement suggestions implemented, gaps identified by them closed - they would feel a part of the process and would also motivate them to suggest more changes and ensure that they are also engaged in the whole quality improvement initiative.
Audits on Process Compliance
It is very crucial to conduct a planned set of audits on the projects that are implementing the QMS. The team that is conducting the audits needs to publish a minimum 6 month calendar of the dates of the audits and verify the level of compliance of the audits. The reason for doing the audits initially should be to identify areas of the organization process model that the projects are finding difficult to implement and conduct training in these areas and to also identify portions of the quality model that are difficult to do and develop easier and better ways to implement these processes.
Newsletters and Seminars highlighting successful implementations of processes
In order to give the associates that are implementing the processes a better idea as to how things can be done and to also give them motivation that if one can do it then I too can do it the QIT needs to conduct seminars and also publish newsletters on the projects that have successfully implemented a process and have shown measurable improvements in the process. Initially this may not be possible and the newsletters and seminars can concentrate on educating individuals on various quality models and concepts and then once the data starts coming in then the success stories and projects having a good implementations can be highlighted.
Roll out of updated versions of the QMS
Based on the inputs from the process audits and the things that have been reported to the Process Request System the QIT needs to keep changing and updating the QMS and rolling it out in the organization. This is necessary for the associates to get a feeling that things can change and improve for the better and that they have to be the ones that have to change it. They have to be incorporated into the quality process and when they see their suggestions being implemented and their improvements used it would motivate them to work harder at implementing the process. At this point the QIT needs to make sure that it does not change too many things too often. This would de-motivate the associates from implementing anything as they would wait for things to stabilize before they try out anything. The QIT needs to roll out things only when it is confident enough that there would not be too many things that would change.
Now that all the processes are in place and all the associates are using the processes and are showing measurable improvements in their productivity, quality, performance and so on the phase of institutionalization is said to have begun. During this phase the quality processes become part of the associates normal day to day activities and not something extra that the associate has to perform for the sake of implementing all the processes. In an organization that has chosen a CMMI quality model this phase is said to start when the 2nd baseline of the organization has been published. This is when the data of the first baseline can be compared to the second baseline. In this phase some of the activities that take place in the previous phase such as audits on the process compliance in projects and newsletters and seminars on processes and roll out of updated versions of QMS should continue. Some of the other activities that take place in this phase of the process implementation are
The data that is collected from the projects needs to be analysed and trends and problem areas need to be identified. Metrics useful to the organization need to be published and analysis to show that the goals that were initially identified have been achieved or are in the process of being achieved need to be demonstrated to the associates of the organization. The reason for this is that quality is treated by most software professionals in an organization that does not have any quality processes or no history of it in a sceptical manner and unless it is proven to them that things can change and improve for the better it is very difficult to motivate them to adopt these processes and reach a point where quality is part of their day to day activity and quality is not something extra that you do which has no benefit.
Improvements to the QMS
Based on the data that is collected and suggestions made by the practitioners the QMS needs to be upgraded so that the goals that have been identified by the QIT in the beginning of the quality process are achieved. What needs to be realized is that improvements come in small steps and by changing and improving the process these improvements are realized.