Maybe programming is rocket science
When something is supposed to be easy, we say: “That ain’t exactly rocket science!”. It must be easier than Rocket Science, since Rocket Science is hard!
Yes, rocket science is pretty hard. It is the art of filling a metal tube with super-combustible material, shoving a payload on top, setting fire to it, and hoping it manages to leave earth’s atmosphere in one piece. And then there is all that stuff about getting into the right orbit and delivering the payload.
That is no easy feat. And that is the analogy I think we should be using when describing the difficulty of software development, because it has implications that I will explain later in this article.
But first, let's have a look at the thing we normally compare software development with: The construction of buildings, with, uh, foundations and, well, pipes and stuff. Complex software is supposed to be like building a high-rise building..
I honestly believe that it is a completely broken comparison.
Building construction is a method refined over hundreds of years that ensures that even though most buildings are full of faults, mismatched parts, corrected mistakes and bits of shoddy craftsmanship, they still stand. We have figured out the physics and know how much material we must use to tolerate a certain amount of mistakes…