Software excellence? Follow the paved roads
The other day I was driving my car to work and I couldn’t help thinking about how vulnerable we are. The road conditions, the weather, the other drivers, my full attention and focus on driving and of course the good shape of my car are factors that, if not under control, draw the thin line that separates life from death. A simple failure in one of the components of the car and the accident could be inevitable. I kept chaining thoughts on how important it is to trust the quality of the products we use in a daily basis.
Why do we trust automobile technology so blindly?
The automobile industry has over a century of history and it still has a promising future ahead. In all this time, it has evolved in many aspects: manufacturing process, design, materials and quality controls, from the processes themselves to each and every component all the way up to the final vehicle, everything has one or more quality assurance checkpoints. This leads to cars that are more secure, more reliable, more efficient and more robust. That’s why we trust our cars. The automobile industry is all about quality, the manufactures ‘fight’ each year to be #1 in the different rankings for the most secure or most reliable car. There are independent companies, like J. D. Power, and organizations, like Euro NCAP and IIHS, that evaluate and publish the results on different aspects of car quality.
Will we ever have this level of trust on software?
This line of thought and my professional and personal relationship with software led me to this very disturbing question.
Software is omnipresent, it is probably the most used human invention ever. With the internet bloom and the pervasiveness of devices we use software for everything. When we make a phone call, software is behind. A banking transaction? software assures it’s done. Uutility companies, as vital for everybody like water, electricity and gas are based on software. It seems that we can not have fun this days if we don’t play video games and watch 3D movies that would be impossible to create without software. Any on-line interaction… you name it! Even cars run millions of lines of code as we start them. Still the software industry as a whole present astonishing failure rates, mainly due to a lack of quality control.
Sometimes the failures are catastrophic -read this compilation of software horror stories by Nachum Deshowitz of the University of Tel Aviv- and we have learnt to live with the rest -in his recent article “When your car doesn’t start, get out, get in and try again” Eduardo Aguado explains how to cope with these other failures-.
In terms of quality the software industry is still in the 70′s. We care mainly about the functionality and to deliver products out of the door fast, the details are not taken care off. But as they say, “the devil is in the details”. Developing software is not simple and it is very different to building a car, but we have many things to learn from the automobile industry: we have to standardize and optimize processes, and we have to go beyond testing to assure the quality of software products. To do the later we have to measure. For example the ISO/IEC 9126 and its evolution the ISO/IEC 25000 are industry efforts to define aspects of software to be measured to achieve high levels of quality. If we look at the software characteristics they propose, we find things like security, reliability, maintainability, functionality, portability and efficiency that are not far from the characteristics, I mentioned above, we look for in cars. We may be walking the right path but still there is a long way to go.
Next time I’m in my car I’ll try to think happier thoughts.
Thanks for reading!
Meet the author Javier Salado
Marketing and content manager at Optimyth Software and editor of this blog. With 20+ years experience in IT, he has done everything you can do in the software industry: developer, designer, architect, project manager, pre-sales and product marketing. One-man band for corporations and start-ups.