The pursuit of quality is a journey that will never end, purely because there is always more that can be done to improve the status quo. Much like pursuing the rainbow that stands at the horizon, we are never quite there even though we can make considerable progress. But the horizon will always be the horizon and we will always have further ground to cover.
Having said that, there is an overriding concept in terms of ‘quality’ and that is whether or not we can say that what we do is ‘high quality’ work. How can we be sure that what we do is high quality? I believe the answer is quite simple; you need to be in control of the outcomes.
You might say ‘well of course I’m in charge of my outcomes, I’m the one doing the work!’ but that is not what this means. Relating to quality, being in control of your outcomes is actually being able to say upfront, and with confidence, that what you will undertake in the future will meet a quality mark first time. In short, you can undertake a brief and produce the desired results within the time, cost and scope of the project without sacrificing any quality. And there is only one process that allows you to do this;
- Increase predictability
- Increase consistency
- Control outcomes
The above is inversely dependent, in that in order to have a high level of predictability you need to have a high level of consistency, and in order to have a high level of consistency you need to understand what your controlled outcome is – i.e. you need to understand what ‘high quality’ is, because without that baseline you don’t know what quality actually is.
This might seem rather counterintuitive. How can you go through this process in order to control your outcomes if you in fact have to control your outcomes in the first place in order to go through the process? But don’t panic. All you need to know is what your definition of quality is and that comes from acceptance criteria.
A question of acceptability
In order to define whether or not something is 'good', i.e. that it is of high quality, we need to have defined what our acceptance criteria is. In the world of websites these are things like;
- It will work in IE8 and later
- It will work on mobile devices
- It will 'fail gracefully' in older browsers, rather than just failing
- The page loads in less than one second
What these constitute are the quality requirements that we agree for our product. Some will be universal and others will be project specific. They form the basis of the reasonable expectations that our clients have with us when we develop something and if we fail to meet these then it is also reasonable to say that the product is not of high enough quality. If we meet these requirements then we can say that it is of high quality. In short, the product is acceptable.
But more than this, the quality criteria set a level of stability which means we can say the product is stable. And this is where control of the outcome comes in. If the product is stable and has been thoroughly tested then we can say that we know how it will perform. There is low risk of the site breaking and we know that it will cope with all the conditions it will be placed under. In this case we therefore have control of the outcomes because we are confident no matter what occurs the site will remain stable. We have consistency and predictability and that in turn means we have control.
So the pursuit of high quality is in fact the pursuit of the ability to say that we are consistent, and that this consistency allows us to accurately predict outcomes. In order to achieve control of our outcomes we must be able to predict how long something will take in order to get it to the level that it meets our quality criteria. And then we must be able to actually undertake that work according to the prediction, consistently delivering to that. But this can only happen by first mastering our desired quality level.
We have worked hard at Siteset to improve the quality of our work so that our products meet a certain level. What we are focussing on now is our consistency, so that when the testers first get their hands on the product they don’t find many (if any) issues. Once we have consistently done this over and over again then we will be able to accurately predict, project after project, how long something will take. And then we will have complete control of our outcomes. In short, we will be top quality.
Of course, the journey never ends and what it relies on is good feedback loops – the ability to see how far off we were from our acceptance criteria each time and then adjust accordingly so that we get closer next time. Agile is a great way of doing this because it is empirical. Will we ever get to the point that we are perfect? Will we ever be able to always control our outcomes, no matter what we are asked to do? That much is probably the rainbow on the horizon. But we won’t stop trying, and for now at least, we can definitely see that we are getting better and better at being consistent and predicting how long things will take.