Opinion: Maybe programming really is rocket science
When something is supposed to be easy, we say, “It isn’t exactly rocket science.” This is because rocket science is hard. It is, after all, the art of filling a metal tube with combustible materials, shoving a payload on top of it, setting it on fire, and hoping it manages to leave earth’s atmosphere in one piece.

Photo credit: Futurism.
The right analogy
This rocket ship analogy is what I think we should be using when describing the difficulty of software development. We normally compare software development with building a high-rise building. But I honestly believe this is a completely broken comparison.
Building construction is a method that’s been refined over hundreds of years. This ensures that even though most buildings are full of faults, mismatched parts, corrected mistakes, and bits of shoddy craftsmanship, they still stand. We’ve figured out the physics, know how much material we need to use to tolerate a certain amount of mistakes, and then cover most of the shoddy stuff behind plastered walls.
Software, on the other hand, does not tolerate a lot of mistakes.
Very seldom do we hear of buildings collapsing or people not getting into their houses because of bad planning. Buildings tolerate a certain amount of leeway, and we’ve figured out just how much over time.
Software, on the other hand, does not tolerate a lot of mistakes. One mistake is enough to break most programs, and fixing stuff as you go along doesn’t work. Your program only works when all the bits work and if your software touches any critical infrastructure, one bug could put your whole company at risk.
This is just like a rocket: One mistake and the whole thing blows up, with your mission, money, and reputation. There are many ways it can fail: it might explode on take-off, your payload could get misplaced in orbit, or the rocket might explode upon re-entry.
This is what company owners, managers, and project leaders should be thinking of when they build software. They should be telling themselves, “This stuff is rocket science, and we better do a bloody good job of it.” Then, they should think of exploding rockets!
What this means
If building software is rocket science, then you want the best rocket ship builders. You want people who are dedicated and smart, and you want to keep them around because they have the knowledge of how to build your rockets. Any person that quits takes some of that knowledge with them, and a new employee has to regain this. So, minimize churn.
Your business people might know what they want and how it will make money, but the software guys have to understand how anything new fits into the existing system—down to the most minute detail—and then put it together in a way that doesn’t make everything explode.
Most companies are turning into software companies without even knowing it; they are totally dependent on software but think that software development is like a naughty expensive step-child that can be starved and outsourced. In reality, the developers are the ones with the complete domain knowledge.
Think about this for a moment: Every bank and insurance company is a software company. Almost all customer interactions are made through software, most internal routines are chaperoned or automated by software, and most of it is custom built for their requirements. That sounds like a software company to me. The only main difference between these companies is the products they sell.
Stay updated on the go with our mobile app.
Get latest insights with smoother, more personalized experience through TIA mobile app.







