Software Engineering is invisible.

I was looking at a small dam the other day and I was marveling at the engineering. It was raining a lot and a couple of gates were lifted to release the water. Water was gushing through the open gates, sending out ripples on one side and foaming on the other. If not for the traffic, it sounded like a beach, water breaking on the sand. Feynman once said that understanding the science underlying nature only makes it more beautiful. It goes the same for man-made structures, in my opinion.

My thoughts drifted to thinking about the civil and mechanical engineers who were part of the construction effort of this dam. Even though it's not the biggest, it's a significantly large structure in the area, something definitely to be proud of. Passersby might, every so often, appreciate the structure, it's resilience and it's grandiose.

Civil and mechanical engineers have that advantage. If they choose to, their work is front and center in people's eyes. Civil engineers can design and build structures that take your breath away. Think bridges. Mechanical engineers can work on machines whose complexity is mind-boggling. Think an airplane engine. That's not the case with Software Engineering though. Which is the point I'm trying to make.

The software used to design the bridge isn't visible to the common man. Same with the software used to study an airplane engine design.

Heck. What I consider mankind's biggest achievement, putting a man on the moon, needed software to help with everything from navigation to control systems. And the only way a common man can comprehend the complexity of the software used is to look at how high the stack of papers were.

  
If you peak underneath the world as it is today, you'll find a lot of computer code. But compared to everything else that's helping the world run smoothly, it's probably the hardest thing for a common man to comprehend.

From a software point of view, you could blame the software engineers and the field for the complexity of the software. You could say that standardization is what's missing from the field. Maybe the field is too nascent for standarization. Maybe the complexity will go reduce over time.

But, it's still such a shame that I can marvel at the complexity of software but can't adequately help another human comprehend it.

Popular posts from this blog

Animation using GNUPlot

Arxiv author affiliations using Python

Thoughts on the National Deep Tech Startup Policy