What is software quality ?
It is defined as a field of study and practice that describes the desirable attributes of software products. Software quality is also the degree of conformance to explicit or implicit requirements and expectations.
Why is software quality important?
There are some ways that software quality can impact your business or your team.
Predictability: do it once and do it right, and there will be less re-work, less variation in productivity and better performance overall.
Reputation: building quality software bring reputation to the company or team; it becomes a part of their brand and it becomes the expectation people have of them.
Employee/teammates morale: the most productive and happy employees/teammates have pride in their work. Enabling employees to build quality software will drive a much higher level of morale and productivity.
Customer satisfaction: a satisfied customer comes back for more and provides positives referrals. Generates customer loyalty.
Process of software quality
Quality management: field that ensures the required level of quality is achieved in software product. It has 4 sub processes: quality assurance, quality planning, quality control and quality improvement.
Quality assurance: is a planned and systematic way of creating an environment to assure that the software product being developed meets the quality requirements. Implementation of well-defined standard practices and methods.
Quality planning: creation of quality assurance plan for a particular project. Organizational standards are selected which are applicable to a project. It should also involve the plan for quality control.
Quality control: activities and techniques to verify that the developed product is in conformance with the requirements. Identifies any bugs that might be present, meaning that it is a corrective process, falling under the quality assurance.
Quality improvement: analyze the feedback received from the quality control team. Identify any room of improvements in the existing standards and procedures.
Difference between quality assurance and quality control
These concepts may seem similar, but they are different and each one of them describes a different phase of the main process in software quality. The difference between QA and QC is that QA is conducted during the software development. In the other hand, QC is performed after the software has been developed.
Focusing on quality assurance
Quality assurance is the most important step or phase to achieve software quality because it is involved in how you are building your project, from the beginning of the software life cycle. We can tell that quality assurance is a subprocess of the main process to achieve software quality. I found an interesting picture that shows this process.
The role of standards in software quality
In order to maintain the order focusing on the quality assurance, infrastructure and requirements of a project there are some standards that help us to rule what do we need to do in order to achieve an acceptable level of quality. It is important to know that these standards often focus on the “What” to do instead of the “How”. There are many software quality standards, like CMMI or ISO-15504. I will talk deeply about them on my next mastery topic blog.
This was my summary of what I understand based on my investigation on each topic, if you want to go deeper on any of this subjects you can visit the website where I got the information in the first place.
References of the mastery blog: