Have you read Steve Jobs’ biography yet? If you haven’t you should. Why do I say this in a software testing blog when the term ‘software testing’ isn’t even mentioned once in 600 pages?
Well what struck me more than anything throughout this book was this guys relentless drive for quality. Not specifically software quality, hardware testing or any other form of product testing. Just the relentless quest to make sure he created brilliantly high quality products. This obsession for quality rippled right down through Apple. It was clearly endemic. It was enforced with actions like this…
1. Pausing the release of the first iPhone
Nearing completion of the first iPhone Steve Jobs decided he just didn’t love what they’d spent the past year sweating over. So to his teams dismay he started over with the design.
2. Berating the MobileMe team for damaging the Apple name
When MobileMe was criticized for being unreliable in the Wall Street Journal heads rolled and the team was berated for damaging the Apple name. Those that were left keenly aware that they’d let the team down.
3. Acknowledging the issues with the iPhone 4
With Antennagate Jobs (eventually) laid out the truth and stated that “we’re not perfect but we want to make our users happy”. In doing so he maintained, perhaps even increased, his integrity.
Actions like this, day in day out, clearly reinforced to the rest of the company that Apple was (and is still) about quality. It’s about the products not the profit.
In the software testing domain we all talk (and frankly little gets done) about identifying defects early in the product life cycle. The age old argument that if we identify defects in the requirements capture phase then we’ll save billions (slight exaggeration) of dollars in the long term. We’ll with Steve Jobs’ drive for quality this concept was taken to another level.
When your CEO advocates quality in this way it has to rub off on the rest of the organization. It’s a million times better than someone just standing up and saying we must identify defects at the requirements capture phase. This is about instilling a passion for quality in the whole company. It’s a drive for quality from the ultimate source; The CEO.
How many CEO’s of companies today can honestly say they want quality that much? You’re presented with the option to ship a nearly completed product (like the first iPhone) or stop and say .. “this isn’t good enough”. Would you ship and start taking revenue? Or back off and start again? Far too many companies are consumed by the need to ship products and start generating revenue. Revenue first, quality second.
I expect that many CEO’s would argue that quality is top of their list. That quality is what makes them a great company. That the CEO has a list of examples where he’s castigated teams for poor quality releases may be used to prove a point. Where he may have sacked someone as a consequence of a product release that didn’t go well. It’s usually a front though. Very few CEO’s have the real credibility needed to backup their commitment to quality. Far too many are consumed by the desire to chase profit and revenue.
For Apple though it was more about quality first and then the profit will follow. Jobs was quoted as saying “the product, not the profits, were the motivation”. And therein lies the a tricky dichotomy. You need profit in order to invest in quality products. Yet with quality products comes higher profits (or at least it did for Apple). It’s the same dichotomy we face in software testing.
Do we invest heavily in testing in order to drive up product quality? Can we really say that this investment makes a significant difference to the bottom line? Who knows? One thing I do know though. Quantifying our contribution to the bottom line is near on impossible. Yet with Apple we have a clear example that by putting product quality first you can build the world’s largest publicly traded company. Surely that holds some weight when it comes to arguing for more, not less, resources being allocated to software testing?
