About Me

I am a computer programmer. I do programming professionally and for a laugh.

Technical stuff on programming, java, DSLs, etc...

Saturday 23 August 2014

Software systems and bridges

There are fair amount of similarities between software and bridge building.

Problem:
We need a bridge over a stream.

Solution 1: The Wonky Bridge

JargalantBridge1.jpg
"JargalantBridge1" by Torbenbrinker - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons.


This will work surely... for a while. And will probably look okay if you zoom out with google maps until all you see is that there is a bridge over the river.
You may argue that if you are building an emergency path to a natural disaster zone this is okay. Well the urgency and is okay but the construction is not. Don't build stuff like this.

Solution 2: The Beautiful Bridge

Bridge Alcantara.JPG
"Bridge Alcantara" by Dantla from de.wikipedia - Von Dantla selbst erstellt. Licensed under GFDL via Wikimedia Commons.


Then there is this bridge. This is the bridge that most applications software should be built as. Art and craft is there, some science, common sense and beauty. Probably bespoke, there is some science to make sure that it will stay put for a long time with good care.

Solution 3: The Awesome Bridge

GoldenGateBridge-001.jpg
"GoldenGateBridge-001" by Rich Niewiroski Jr. - http://www.projectrich.com/gallery. Licensed under CC BY 2.5 via Wikimedia Commons.


Then there is the GoldenGate bridge. This is the bridge surely we all want to build. Infrastructure software, any mission critical software, any software that will be let go in the wild (used in places that there will not be a development team to keep an eye on it; sold, outsourced etc.) must be built like this. Precise engineering, great use of materials, solid design etc. All nice things.

Anyway, I have always been fascinated by great engineering. Keep building bridges, avoid the wonky stuff.

No comments:

Post a Comment

Followers