The flight has just taken off.

With you are your senior seasoned peers from the software industry.

Suddenly, the airhostess announces that the software for the aircraft's avionics (Control Systems) has been written by a team working under one of the passengers of the aircraft.

In case, anyone wants to pray for the safety of the aircraft and it's passengers, please do so.

God !

Is it your team !

Did they check the software fully ?

Did they do all the verification and validation Tests ?

Did they do all the black box testing ?

When the flight crashes, will the black box reveal all the black secrets?

Of software modules not tested completely ?

Through all it's different logical paths.

You pray to God silently, hands clasped in awe and fear.

You watch around you.

Every passenger, except one smugly sure gentleman (apparently enjoying himself) is praying passionately.

The flight manages to take off smoothly.

You give a sigh of relief.

Thank God !

Atleast you are airborne !

You ask the seeminly agnostic gentleman who was not praying.

" Hey, aren't you nervous ?

What if the flight had crashed ?

What if your software team had actually written the programs for this aircraft's control systems ? "

He smiles smugly " If my people wrote the software, the plane would not have taken off."

The above is an old joke in the software industry.

Software quality is a Mirage.

Sometimes you see it.

Sometimes you don't.

Because it has become so important, today there are specialist organizations that only focus on software testing.

We all witnessed first-hand on our TV screens the tragic crash in February 2003 of NASA's Columbia spaceship on it's return journey home.

Short term quarterly numbers driven corporate greed at times overshadows long term software engineering and quality concerns.

Many companies have gone down this route considering the cost savings as a panacea for their ills. Ultimately, it is their responsibility to manage software quality.

Software quality management cannot be outsourced for avionics software which has extremely crucial safety implications for people. In today's world of almost zero data communication costs, realtime central software repositories can be built which are globally available for continuous testing & integration. Hopefully, the regulators have learnt their lessons.

So, next time, you or anyone in your software team or organization writes a program, make sure that it works perfectly.

Each Time.

Every Time.

Because if you don't, you better read last these unsafe articles blogs very very carefully.

Better Be safe than never.