Software design, development and deficiencies – with global maximum
Famous computer scientist and Turing award winner Prof. C.A.R. Hoare said something about the way the design is thought about.. He mentions “There are two ways of constructing a system/software design
- Make it so simple that there are obviously no deficiencies
- The other way is to make it so complicated that there are no obvious deficiencies.”
Of course, the first method is far more difficult to implement and for decades organizations have struggled being stuck in the entanglement of second method.
Most of the major recalls, software related issues are all result of the second method. At first it looks as though there are no obvious deficiencies but they creep in under certain unfortunate conditions.
One such example (among many others) of the design error is the Mars Polar lander failed landing on the mars surface. Here the software design instructions did not account for the eventuality that the leg deployment could create the false indication of surface touchdown. The resulting action by the spacecraft was the shutdown of the descent engines, while still 40 meters above the surface.
The design error is not necessarily limited to space applications where there may be issue of insufficient test data. Take automotive industry for instance, according to financial advisors Stout Risius Ross (SRR), in their Automotive Warranty & Recall Report 2016, software-related recalls have grown from less than 5% in 2011, to 15% by the end of 2015, affecting more than 13 million vehicles. And this is when autonomous applications are just getting started.. ALARMING isn’t it!
The current challenges of traceability, variants, continuous integration, and synchronized tool-chain is a driver which has forced organizations to look outside their existing process and in the direction of first method and make that a reality. The need is to look beyond local maximum and to look for global maximum in terms of design efficiency, reduced cost, increased productivity and so on..
You see, reaching global maximum is not an easy task, most organization’s optimized process flow stops at only so-called a “local maximum”, not the global maximum. The hill-climbing landscape is a cloudy one. You can know that you’re standing on mountaintop because the ground falls away in all direction–but there might be a higher mountain just across the next valley, hidden behind clouds.
The answers that organizations right now are looking for is how to bridge architectural vs. analytical, concept vs. truth, problem definition vs. response and with much more automation. How can the design be made intact without any obvious deficiencies and yet simple to understand? How can the development be done in a way that there is no collateral left behind to pick up? How can the design and development complement each other? How can the global maximum be achieved?
In this Design, Development and Deficiencies series we will look into detail from software engineering perspective and explore how having a proper design methodology provides a controlled development and reduces the number of deficiencies at the origin (design) and also as it progresses through the development and validation phases.
Watch this space for more..