This post is a bit of a grab bag of brief thoughts on Quality.
What does it mean?
When you mention quality, people usually think immediately of high-end superlatives: The Ritz, filet mignon, Rolls Royce.
That is only a narrow concept of quality. I find it more useful to think of quality as being the best fit for purpose. After all, how useful do you think a Rolls Royce would be for delivering two tons of concrete to a muddy building site?
What is good quality in one context might be appalling in another. The trick is to understand what constitutes quality for the application you are building. Not all applications need high-end security, or hot failover redundancy, or real time transaction responses.
When is it important?
When you mention quality, most developers think of testing, and stop there. But quality should be a mind set throughout the development process.
Yes, testing code is an important part, but so is confirming the quality of other products along the way. You don't build a house without good foundations. Equally, what good is building quality code if your requirements aren't clear, or if the design is dodgy? Every step in your development process should have its own quality checks and quality assurance methods applied.
What is the purpose of testing?
This is a question I like to pose to developers when I need them to up their game.
Most will tell me that the purpose of testing is to find and correct any bugs in their code.
The purpose of testing, in my opinion, is to demonstrate that the code is working correctly.
It's a subtle difference in emphasis, but if you write code with that perspective in mind your attention is far more focused on getting it right than expecting others to pick up your mistakes.