Any human being is a born quality manager and keep demonstrating his quality skills in day to day life by managing everything that comes in way by means of best possible solutions. A child is taught about cleanliness and discipline right from begining to sreamline his daily work. Do we compromise in admitting our child in a substandard school or with the character and quality of teachers they are being taught by?
We do not compromise with the quality of items and commodities purchased. Do we take a chance of compromising with the quality of material used in building of our house? We very well know about the consequences and risks associated with compromising with quality in our routine life.
The same concept applies to software projects too. Quality can not be subdued or sidelined. Risks of failure of any project cannot be nullified or ignored in that case. Quality plays a major role in assuring the success of any project. A programmer or coder if writes a program the same way with same mindset the way he manages his domestic work with high level of quality, there are less chances of passing the code with high level of leakages in it to next level of team that is testers for testing the product.
The way a product is buit with high level of accuracy and least level of quality compromise can be treated as a part of Quality Assurance. A product when given to testing team for finding out bugs falls under quality control. The level of standards followed by testing team to perform testing process will come under quality assurance.