In quality engineering there are 3 phases:
1.quality assurance
2.quality control
3.quality measurement
Quality Engineering is defined as “the branch of engineering which deals with the principles and practice of product and service quality assurance and quality control”.
Quality assurance is a way of preventing mistakes. Quality control is the testing of product to uncover defects. But I am confused, why is quality engineering thought to be difficult?
4
Quality engineering can be quite subjective, and often your own stakeholders are working against you. And as we all know as software professionals, time is always against us.
Subjectiveness
Requirements can be pretty easy to test, e.g. “the edit user screen shall have two buttons to accept or reject the changes.” Any lesser primate can look at the screen, see OK and Cancel buttons, and say the requirement is met.
Other requirements are difficult, such as performance. Even if the requirement is specific, there is often much left to interpretation: it is subjective, and especially near the deadline of a project, people will disagree about the requirement or say “what we have is good enough” when it is not. This means arguing, and often due to time constraints, the quality engineer loses.
Stakeholders
I have found that often customers will not understand what they need, not understand their own requirements, change their minds over time, and not update user stories.
What this means is while you are trying to validate requirements and ensure software quality, customers are simultaneously moving your target and possibly not even telling you.
Time
In a business, almost everything you do needs to have an economic justification. Quality engineering activities such as gathering and evaluating metrics, post-mortems, etc. tend to be rushed or discarded because hey, the software was delivered and it is time to move to the next project.
Enlightened employers realize these activities are investing in the future, not the present. They make the next project run smoother, deliver sooner, and with fewer defects (read: nonbillable hours). After all, this is one purpose of quality engineering.
When a quality engineer lacks sufficient time to do his job, he is unable to effect change in an organization that is beneficial. Without enough time, quality is a rush job and it is difficult to improve quality.