“We are late because of the software”
“We should adopt a new development process but we do not have the time”
“A very interesting tool but there is no budget, I’m sorry”
“Our software development method is very artisanal”
“We do not have time to test because we have to sell the product”
“The test is boring and expensive, we have to cut the times”
“We want to stay focused on our core business”
“We have to recall 10,000 units from the market for a problem”
“Some people are hurting themselves using our device”
“The relatives of our customers who were victims of accidents with our vehicles got organized into a class-action”
If any of these phrases is known to you because happened your company or in that of your competitor, or if just hearing it makes you feel a cold shiver: then this article is for you.
I have been working in the software development sector for over 25 years and I have covered a long series of responsibilities, roles and tasks related to the software life cycle, in various fields: from developer to manager, from modelling to testing, from employee to freelance, from management software to aerospace software, from the safety-critical to the business-critical software.
For years I was forced to fight against all the problems related to software development: delays, misunderstandings, bugs, complaints from customers, managers.
Well, do you know what impressed me in all these years of international experience?
The feeling of powerlessness in seeing how software, although omnipresent in every aspect of our lives, is actually a completely underestimated, underestimated and mistreated discipline but of absolute and ever-increasing importance and above all danger.
Now the code written by some developer around the world is everywhere: from the washing machine connected to Wifi to the Internet and all home appliances, to the electronic hand brake connected to various sensors of your car that will soon drive alone, to the plane that lands in total fog or to a medical device driven by an expert technician performing a CT Scan.
But the software, never like now, can determine the success or the failure of a company, the profitability or the exhaustion of the budget, as well as to send whole lines of products or companies to bankruptcy and eventually to provoke dead and injured, in the case of safety-critical area. And the awareness of the fundamental role of software design, whose failure can cause incalculable damages as well as deaths and injuries, instead of increasing is decreasing.
Of course, there are certainly technicians who have a very complete and strategic global vision, but often they are not in the right role to influence and optimize the process. Just as there are enlightened managers and CEOs, of technical provenance or who however rely on expert consultants, but
the reality is that almost all the others tend to consider software as a necessary evil and little more than useless, where they definitely spend “as little as possible”
so any investment in quality research is seen as irritating if not at least deferrable.
It does nothing that international studies on thousands of projects show how investing in the quality of development has a return on investment of € 15 for every euro invested: we are talking about 1500%. No, better save because “we are good enoug” and “we have not had any problems so far”. Or with the excuse that in any case the fundamental part is the hardware, the design, the performance, the brand and the software is almost invisible.
What we know is not true, as from my previous article: let’s see touch-screen panels, GPS receivers and networked anywhere in the world … from lifts to microwave ovens, from free-sharing bicycles to bio-medical devices, are all full of software. As we hear in the black chronicle fatal accidents due to software malfunctions on cars, defibrillators, trains. Or failures of entire companies due to crazy programs that make millions of crazy transactions on the stock market.
And you think this was enough? Do you believe that there is more spontaneous awareness on the part of SMEs or large companies regarding the role of software and measures to optimize its life cycle and increase its quality?
I say it serenely: 90% of companies (to be generous) investing in modern programming languages, in advanced models of development, in tools that improve the efficiency of the test, are actually due as I always say to a simple gun pointed to the head:
Oh yes: an airplane to fly, a car to move on the road, a train to bring goods or passengers and medical devices are all united by some factors. First of all: they are safety-critical systems, where a malfunction could be highly risky as human life is at stake.
So a well known phenomenon happens: a State Authority will study the phenomenon sooner or later putting together in a panel the best experts in the field, who will write a Safety Standard, a safety standard for people who use that category of products that makes the software development method a process as much as possible engineering:
- no or scarcely subject to subjectivity and human creativity
Over the years, a whole series of SAFETY CRITICAL standards have been born, with well-known abbreviations to professionals, such as:
- DO-178B / C: safety standard for the development of Avionic software
- ISO-26262: safety standard for the Automotive world
- IEC-61508: safety standard in Industrial Automation environment
- IEC-50128 / CENELEC: railway safety standard
- IEC-62305: safety standard for biomedical devices
The States or the European Union will impose the respect of these standards as an indispensable condition for all these products in order to circulate or in any case be used through a compulsory and full formal verification path, with State Authorities that monitor compliance with safety specifications.
The ultimate goal is to achieve final conformity in the form of Certification, before it can be sold and used by the public.
THE FAMOUS PISTOL POINTED TO THE HEAD
That will force sooner or later executives, managers, project-leaders and technicians of companies in these sectors to hurry up and to study and adopt the best techniques of designing, developing and testing software finally helping to make it secure.
All this, even if often late, is very useful, because in any case it will give the impulse to invest, measure the improvement and check the savings (remember the ratio 15: 1?). These safety-critical techniques will be explained in this and other articles, along with other interesting methodologies.
The goal of these article will certainly be to help companies that already have to submit to the caudine forks of the Certification, even if they have already moved or are moving to adopt this approach, so these topics will still be an interesting deepening of some more recent techniues and an important review .
But who is this article dedicated to and who is the method behind it?
It is actually dedicated to the remaining 10% of the companies: to those that, medium-small they are, however do not have to do the Certification.
No gun to the temple.
No obligations, strict procedures in front of the competent authorities and bodies.
No quality assurance in order to sell.
The whole world of companies or projects for which a malfunction, a “bug”, provokes at most a nuisance, a disservice, a discontent. An app that hangs on the phone making us lose data, a Wi-Fi connection that does not work, the car entertainment system that reboots itself.
All irritating, frustrating things that do not kill anyone but that can determine the success or the catastrophe of a product, a company, a brand.
That profoundly change the mood of its customers and users, the image of a company and its products with all the economic consequences of the case. And for which I have studied an efficient and workable solution from any company, even one-person team.
Most of these companies by history, by tradition, for lack of a rooted culture of software and its quality, often involuntarily underestimates the role of the software, not only from a technical point of view but also and above all by the fact that they finds themselves, without realizing it, suddenly to burn budgets of thousands if not millions of euros in problems such as delays in deliveries, timing of market exit, product cancellations, blocking malfunctions, dissatisfaction of users and abandonment of the brand.
Or the nefarious effects have them well present, but has no idea how to effectively counter them, quickly and without huge investments. But what now has an ally and above all an additional method.
Over the years I have started to apply this rigorous and scientific approach in a reasoned manner and suitable also for smaller companies, inheriting all the indispensable aspects from the Safety-Critical world and adapting it to companies where quality is important but also flexibility, speed and costs.
Here then is this approach, the result of my personal history and rich in theories and methodologies and concrete examples of application, true stories of successes and failures, with technical arguments when necessary and refer to further study,
is suitable for anyone who is working in a company that for one reason or another has not yet reached the maturity necessary to understand and self-analyze their degree of maturity in the development, efficiency and effectiveness of the life cycle of the software
and wants to know how to intervene with sometimes incredibly simple adjustments and immediate return in order to improve many aspects not only technical and informatics but also financial, consumer satisfaction and brand loyalty.
If you want to find out exactly how I applied scientific and engineering methods typical of large aerospace companies and adapt them to medium-small companies where the programming team is limited to groups even from just 1 person up, reducing costs and risks and making them arrive first on the market with a more stable product, you’re in the right place and this article is for you.
Read it, recommend it, let it circulate: to technicians, developers, designers who want to learn something new or see a global and synergistic point of view, to managers who have not managed to keep up with the new methodologies of design, modelling and development, to executives who know they must act quickly and effectively to counteract or prevent worse problems but do not know who they can trust and how to intervene immediately.
I am convinced that you will appreciate my approach as it will give you an organic and comprehensive view of a series of problems that are eroding your budgets and will suggest solutions to implement counter-measures, through various techniques and a precise process:
You must act now: every day you lose not even being aware of how far it separates you from having an efficient and correct software but above all the more or less tortuous path to get there, you are loosing money. Many.
If you want to receive a Whitepaper describing this approach: