David Rodenas PhD
3 min readJan 16, 2025

--

I invite you to read some of my other articles:

- Don’t Screw Up, You Will Be Found Guilty: This one mentions the actual case of the 737, and other cases in which people were killed

- The ‘Horizon’ Scandal — 1 Software Bug, 736 Convicted, and 230 Jailed on False Charges, 4 Suicides: This one shows how ignoring a bug and blaming users lead to 4 suicides. Those were the official numbers, but people say around 30 killed, because of suicides, but also stress and unbearable inhuman conditions.

- How Ethical Codes Betray You and Society Alike: Discusses some more cases, even cases in which the code works as intended (killing people for profit), and how the developers are helpless to improve anything.

As you can see, I have already discussed some of those case, and even in that case, I stand in my position.

I am sorry that my words were taken like this. I feel that there is a kind of misunderstanding.

Also, if you give a thought, current state of the art of software programming was good enough. In the case of the 737 MAX 8 it was just a marketing decision, the light on the board that announced the malfunction of the sensor was an extra option, not paid by the companies whose planes crashed (also take into consideration that Boeing has a great problem of quality, for example, doors are not software). The case of the sudden acceleration the report of the defect by Bookout was really extensive, and the conclusion is that it was just cutting corners to deliver sooner, and probably saving costs using non-expert engineers. The Dieselgate it's just profit-driven. The same for the Post-office. So, most of them are due to human greed rather than technical reasons.

My sentence was about the great complexity required to create the beautiful order that Dijkstra wanted. He wanted a perfect definition of everything. But that only works when you are able to take everything into consideration, and you don't make any mistakes in thousands and thousands of pages of definitions. Quite sure that no human is able to do that without any error. And one error in that level can create an inconsistency that destroys all the system.

Furthermore, the problem is that we need to learn better the problem. And learn about the problem before it is a danger for anyone else.

So, for example, if we compare how Boeing and SpaceX worked in each one of their own respective capsules. Boeing used a more traditional approach. SpaceX used the "beautiful mess" one using Continuous Delivery. Boeing under the paper everything seemed right and launched people into space without having one single automated voyage of the capsule without incidents. They got stranded. SpaceX did several iterations learning how it works, and once they performed more than successful automated voyages, they launched people, with success, and now they will rescue the ones from the methodology let's assume that we are perfect, and we can plan every detail carefully in an endeavor that in paper would take several encyclopedias.

So, probably I should review the article to make this point more clear. Beautiful mess is not a just a mess, it must be beautiful. I hope these words could help to understand it better, and I am sorry that I failed to fully convey the intention.

PS Thanks Doug Wilson :-)

--

--

David Rodenas PhD
David Rodenas PhD

Written by David Rodenas PhD

Passionate software engineer & storyteller. Sharing knowledge to advance our skills. Join me on a journey of discovery in the world of software engineering.

No responses yet