When we talk about software quality assurance, we often discuss process measurements, process improvements, productivity increase, quality improvement etc. And when we talk about quality improvement, mostly people think about product quality improvement. Most of the time people forget about process quality improvement. In fact, people find it difficult to differentiate between product quality and process quality. Let us find out the difference!
During software development we have work products like requirement specifications, software design, software code, user documentation, etc. Quality of any of these work products can be done by measuring its attributes and finding of they are good enough. For instance, a requirement specification may be ambiguous or even wrong. In that case, quality of that requirement specification is bad. So during quality assurance audit (peer review, inspection etc.), this defect can be caught so that it can be rectified.
During software development project, a lot of processes are followed. The top processes are the project processes like project initiation, project planning, project monitoring, and project closure. Then we have development processes like requirement development, software design, software coding, software testing and software release.
All of these processes are not executed perfectly on any project. Improvement in these processes can be achieved if we have audits of these processes. For instance, these audits are done by using standards like CMM (Capability Maturity Model). These standards dictate as to how any project or development process needs to be executed on any project. If any process step is deviating too much from these standards then that process step needs to be improved. The most important job of any software quality assurance department is to audit and ensure that all processes on projects being executed in that organization adhere to these standards and so quality of these processes (project & development) is good enough.