

On a visit today to Charminar I took some pictures of the monument which is just above 400 years old. There was a procession too with the Imam of the main mosque which added to the thrill and excitement. Charminar on sunday is known for its chor (thieves) market and a lot of other stuff.
What is Quality Control?
Quality Control is one of the elements of the process which attempts to remove the defects in the product during or after it is developed. Quality Control is hence an activity that is performed during or after the product is developed with the only intention of removing the defects that might have got introduced while developing the product. Hence Quality Control is not a process but an activity or set of activities that are done during the process with the aim of removing the defects that got introduced in the process.
The activities that constitute Quality Control are
As you can see Quality Control is only one of the elements of the process that is defined by Quality Assurance. Quality Assurance takes a holistic view of what is being done. Quality Control is only an activity within the process that attempts to weed out the defects in the product that was produced.
Both Quality Assurance and Quality Control are important. Without a process - developing any product will be futile and no process guarantees a defect free product and hence every product has to be verified and validated by Quality Control.
In a sentence the interaction between the documents is as follows "The affected individuals implement the Process Document, refer to the Guidelines and Databases, complete the forms and templates and verify the process compliance with the checklists to accomplish the process."
Process Document
The process document is the main overriding document that contains the roles and responsibilities of the affected parties, the tools needed to inplement the process, the procedure in which the process has to be performed the inputs and outputs. This document is the driving document that details the interaction between the various stake holders to convert the inputs into the outputs in an optimal maner. The process document should be in the form of a set of steps which when followed will accomplish the goals of the process.
Forms and Templates
These are documents that need to be completed in accordance with the process. These documents are used to standardise the format in which information is gathered from the process. This standardization is necessary to help analyse the data and for the data to be consistently understood and resued across projects.
Guidelines
The guidelines document explains how a process has to be implemented. This document gives examples, sample text and alternative solutions that can be used to implement the process. The implementation of the content of the guidelines document is optional where as the implementation of the process document is mandatory. The guidelines document provides explanations to the process defined in the process document. It is not necessary to have a guidelines document for every process document. This document is only needed if it is felt that there is additional information that is needed to implement the process in an affective manner without making the process document too specific.
Databases
Databases are repositories of information as to how the process has been implemented by past and current projects in the organization. These databases contain completed forms and templates, best practices used, lessons learnt, trends and predictions and all data that is collected from the project. This information is used as reference to find the most effective solution to implement the process. What one needs to understand is that the process only tells you "what" needs to be done but does not tell you "how" it is to be done. The how needs to be worked out by the affected individuals that are implementing the process and the Databases and Guidelines help the affected individuals to choose the most affective "how" by using some of the experiences from other projects which is contained in the databses.
Checklists
Checklists are used to ensure that the process is being implemented in the manner in which it is supposed to be implemented. Checklists can be used by members within the affected individuals to ensure that they are not missing any of the process steps and can also be used by individuals outside the project to verify that the process has been adhered to.
Example
Let us take an example process and see what are the documents that would be needed. Let us say that we want a process for Risk Management. The documents in the QMS that would be needed are
Process Document : Risk Management Process
Forms and Templates : Risk Log
Guidelines : Risk Identification Guidelines
Databases : Risk Database
Checklists : Risk Management Checklist
Notes
Should have a sound understanding of the organizational process
First and foremost the SQA Representative should have a very good understanding and knowledge of the Quality Management System. The SQA Representative through the audits is required to give an insight into the process being followed by the project. For this reason the SQA Rep needs to understand the process that has been defined.
You need to believe in processes
It is very important for the SQA Rep to believe that process is important and that it is good. It is often said that a sceptic is a bad preacher - hence if the Rep does not himself believe in the process then he can never preach the virtues of having the process. If the SQA Rep is a sceptic then the objectivity of the entire exercise is also lost.
Be Responsible and truthful
The project team that is being audited needs to have a belief that the SQA Rep is responsible, truthful and knows what he is talking about. It is essential for the project team to believe that you have not come to cause trouble. Report things as you see it - write notes in the remarks section clarifying your stand. As an SQA Representative you have a very powerful tool in your hands in the form of the audit and you should use this with caution and responsibility. The SQA Representative is a person trusted by the senior management to report things as they are.
Be Objective
The SQA Representative has to be objective. He needs to report what he has observed. If there is any decision made on things that are not black and white then the SQA Rep needs to explain the rationale of his decision in the remarks column. The Rep should never go with pre conceived notions of how things are. He should take his time in understanding the process, the stage at which the project is and report the process compliance as is.
Open minded
Be open minded. It helps a lot to put yourself in the shoes of the project that is being audited before passing judgement. Try and understand the issues the project is facing and be sympathetic but yet be firm in your observations. Be open to discussions and new ideas. Do not be forceful in your thoughts. Try and understand if the suggestions you are making are applicable to the project. Do not go with any pre conceived notions of the state of things in the project.
Report what you observe
Report only what you observe. If you are unsure of something or need more information to substantiate your views then ask for it. Do not make inferences on information that does not substantiate your judgement. You should be careful not to let the project feel that they can get away with anything they show you. You should be sharp to observe things like the date the file was created, by cross examining team members about stuff, by asking team members questions about content of the reports they have prepared and so on.
Question the process not the people
The SQA Rep is auditing the process and not the people in the project. Leave the "You" out of the audit questions. If there is a non compliance do not get personal about it. Try and understand why the non compliance occurred and fix the process.
Help the project address non compliance issues
When a non-compliance is identified in the project help the project understand what the non-compliance is and also if you know how the non-compliance can be fixed. When the non-compliance is identified it is necessary to come up with the action plan to fix the non-compliance and to also come up with the date by which the non-compliance can be fixed. Do not try and force your ideas on the project to fix the non-compliance. What ever you give to the project is only suggestions and it is ultimately for the project to decide if it wants to implement the suggestions given by you or to go with their own ideas.
Ask open-ended questions
I find it very helpful to start off my audit with open ended questions like "Tell me about your process from the time you get the requirements to the time you deliver." or "Tell me how you plan for the project" or "How do you ensure all your requirements are designed, coded and tested ?" and so on. Each of these questions in one go answers a lot of questions in your checklist. For clarification you can always ask close ended follow up questions. This way the checklist does not seem as long and the participants of the audit do not feel they are attending an exam. It feels as if someone is curious about their process. Do not go about the questionnaire question after question you will get bored and the members of the team attending the audit will get bored by the time you get to the 25th question of the questionnaire if not earlier.
Bring variety into your audits
Make changes to your style of auditing. Some of the innovations that I try out are
Do not argue
If there is a difference of opinion leave the issue as it is and get it clarified by a higher authority. Do not pursue any arguments its just not worth it !!!
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
Formulation
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.
Awareness
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.
Training
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.
Implementation
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.
Institutionalization
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
Data Analysis
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.
Constituents of a process
We will now see in detail each of the elements of a process.
Scope
The outline that connects the people, procedure and the tools defines the scope of the process. The scope details where, when and by whom the process is to be used.
People
The process definition should very clearly outline
Tools
Tools are all the instruments and software needed to carry out the process in an adequate manner. Tools are of two types
Procedures
The procedure consists of a step by step solution to the problem. This consists of a set of very clearly defined distinct steps that teach the trained resources how to use the tools that are to be used to convert the inputs into the outputs.
Inputs
The inputs are the artifacts that need to be worked on to produce the output.
OutputsThe outcome of the process is the output.
Measurements
Metrics collected which carrying out the process to measure the efficiency of the process and also to give us a clear insight into the status of the tasks being carried out in the process. Some of the reasons for collecting measurements are that they can be used to study the process to see the efficiency of the process and to also try and improve the process.
Control Mechanisms
Control mechanisms are the checks and balances that are in place to ensure that the process is being carried out as defined.
Template for a process
A typical process definition consists of the following titles
Procedure to define a process
Now that we know what constitutes a process and what are the titles in a process definition let us try and define a process. Let us try and define a process to go from Place A to Place B.
Introduction
This Process details how one proceeds from Place A to Place B provided both the places are in the same country.
Scope
To be used by all individuals who have to undertake a journey from Place A to Place B within the same country.
Roles and Responsibilities
Role Responsibility
Individual Travel
Training
Individual -
Rules and regulations of travel
Studying a map
Use of the mode of transport
Tools
Mode of transport
Maps
Directions to go from place A to place B
Journey Checklist
Control Mechanisms
Role Responsibility
Quality Control Ensure that the checklist is completed
Inputs
Name and Location of Place A
Name and Location of Place B
Procedure
Complete journey checklist
Get go ahead from Quality Control to undertake journey
Follow directions and traffic rules and drive from Place A to Place B.
Outputs
Journey undertaken and individual has arrived at Place B.
Measurements
Journey time
Journey distance
Time lost due to traffic signals and unforeseen delays
References
Traffic rule book
Notes
In the 2001 movie Along came a spider, there is an interesting quote by Morgan Freeman where he says "You do what you are" and the...