The term engineering is derived from the Latin ingenium, meaning “cleverness” and ingeniare, meaning “to contrive, devise” – Wikipedia
Wiki’s engineering definition goes on to define engineering as how to:
develop structures, machines, apparatus, or manufacturing processes, or works utilizing them [..] with full cognizance of their design
There are two worrying words in those definitions: cleverness and cognizance.
The definition implies that engineered things will always be correct things. That they will be tested and proven. That they will be designed in the most relevant way to solve a problem. That they they will never go wrong.
But there is always a point where a system will break down. There is no such thing as infallible.
When you choose your business software, how do you know if it will be fit for purpose?
Do you look at the test reports from the software you buy? Do you look at the source code of the software you buy? Or do you look at the other people who use it and think “well if it’s good enough for them it’s good enough for me?”
And how do you know that the software that you buy today, will be the same software as you get tomorrow? What is the true cost of a piece of software over its lifetime?