Quality Management is an important knowledge area and is concerned with “the degree to which a set of inherent characteristics fulfill requirements”. What does this mean? It means that based on the specified requirements we need to determine how well the solution fulfills these requirements.
When you are manufacturing widgets it might be easy to set some quality standards for measurement, like diameter must have a tolerance of +-1 mm, but how do you measure the quality of the deliverable of an IT project? That’s what I will try to explain in this article.
First let’s take a look at the project processes associated with the Quality Management Knowledge area.
There are three processes during a project that are concerned with quality. As with all knowledge areas there is a planning process. Here we plan how the two remaining quality processes are executed.
The most well-known quality process is to perform quality control. This is where we check if the deliverables are conforming to the quality that we expected. In IT projects where the deliverable is a software program; we have to check that each part of the total software solution is performing as expected. So how exactly can we do that? Testing, testing, testing!
In order to control the quality of a software program we have to build test cases. A test case is a procedural checklist that goes through a scenario inside the software. Let’s say we have built functionality of approval during an invoicing process. We now need to make sure that the software allows the approvals to happen correctly and not allow invoicing until the approvals are done. We build a checklist with steps that a test person should go through in order to confirm that the functionality is performing according to the expectations. If the test case is successful that shows the quality of this part of the software was adequate and we go on with the next test case.
In IT projects where the deliverable is software there can be tens if not hundreds of test cases that must be performed to finally confirm the quality of the final project deliverable.
So what happens if the quality control process approves a test case and later we find out that the software didn’t conform to quality; that the software failed to work even though the test case cleared it? Well, that’s what the last quality process is there for. It is called Quality Assurance.
Quality assurance is often confused with quality control but they are completely different. Quality Assurance is part of the execution of the project and is concerned with overall process improvements. If the quality control processes are not adequate this is where quality assurance comes in and handles the issues. So, in the case where the software was cleared through quality control and later on failed is what quality assurance must deal with.
If something is not working correctly or we need to improve the quality control process, quality assurance goes in and investigates. Why did the test case not catch the issue we are now experiencing? What can we change in the control process and the test case to fix the problem in the future? Quality assurance is an ongoing process that makes the quality control process better and better. The goal is to make sure that the quality control is the best possible and make changes as needed to ensure this throughout the project’s lifecycle.
Quality management is important because is ensures that the deliverable ultimately fulfills the project requirements and the customer’s expectations.