David Alves:
Imagine if you will the design, manufacture, operation, and the eventual maintenance of two classes of vehicle; a Prius, and a Ferrari. From a functionality and features perspective, both cars have a lot in common, everything from rack and pinion steering to anti-lock brakes, and a whole lot more. Of course the Ferrari is designed for performance, scales to a higher degree of horsepower and torque, and handles much more stress upon its frame than the Prius. The Prius however is an extremely effective mode of transportation. It is efficient, reliable, resilient, and requires far less maintenance over its lifetime.
Now imagine that before building the first Prius or Ferrari both engineering teams were given an extensive, documented specification of requirements for vehicle features and functionality that each should have. Each architect was told that for the Prius and Ferrari respectively, that one should have great car mileage and low maintenance, while the other should be fast and furious. Beyond these non-quantitative verbal statements, not much more discussion or specifications of performance, efficiency, reliability, or any other qualities related to the operation of the car where ever made. In fact, imagine they planned to test the performance of the Ferrari before putting the first one on the lot, but due to budget overruns and lack of time, they decided to skip it.
Sounds absurd, doesn’t it?
Yet this is what we do in IT every day. In my 20+ years as a consultant in the field of software quality, this is the norm.
Now let me digress for one moment. I have also learned over the course of my years that WE QA Professionals come in two flavors; “The Academic”, and the “Practical Professional”. I, being self employed and a business owner for the majority of my life understand that business is number one, cash flow is King, and there is no business without revenue. I also realize that a successful business is a system, or a series of systems that comprise a complete value chain, that requires discipline and process to manage and maintain profitability. Therefore, as a QA Professional, I believe a cross between “The Academic” and the “Practical Professional” is what is needed to produce business software systems that meet their targeted goals. I will even go out on the limb and say that I believe the slant needs to be towards practicality.
In addition to being practical, we need to be “aware”. Aware of the impact that various Operational Quality attributes have upon the systems we build, as they are often at odds with each other. Being aware of these conflicts, and incorporating best practices for making tradeoffs related to Operational Quality, allows us to make intelligent decisions in line with our organization’s business goals (the sole purpose of our IT projects). For instance, often if you make a system more secure, you may decrease its performance and user friendliness (usability) in the process. Other times, it may be budget or time that limits functionality, security, performance, or any and all quality aspirations. Being aware and practical allows us to make informed decisions about features, functionality, and operational quality in the construction of our IT systems; for the operational benefits we seek over the products lifetime may be realized post deployment, but they are first born in pre-production.
In upcoming articles we will revisit this topic and we hope to have much more detailed discussions related to decision support frameworks which are both practical, and bring awareness to process participants, and allow for informed, quantitative decision making from the boardroom, down to the engineering lab. In the end, not only do you need to know if you are building a Ferrari or a Prius, you need to do it within the confines of budget, time, and other business factors unique to your organizations climate.
Until next time, Happy Driving!
(David Alves is CTO of Global Quality Partners)
posted by: David Alves
Recent Comments