Mechanical Engineering Vs. Software Engineering

Mike Taulty has an interesting post up titled Why is Deleting Code so Satisfying? where he compares a plumber and a software developer. (Its a very short post, please go read it I’ll wait).

Now I may have a bit of a unique view on the subject as I’m a developer and my brother is an Mechanical Engineer for Conway & Owen. So please bear with me. Mike’s post asks if a plumber would rip out his work if they found a better way after they already started. The fact that he mentions a plumber, I would speculate, causes most people to think of plumbing a single family home. This type of plumbing is the software development equivalent of FizzBuzz. Which is to say that it takes some skill and understanding to do it correctly but overall its not a difficult problem.

Now compare plumbing a single family home to plumbing a modern office high rise, cruise ship or nuclear submarine and I think you are starting to compare apples to apples when comparing them to designing today’s business systems. Where your home plumbing contractor can walk in to most homes and plumb them with little planning, weeks and months of planning and design go into figuring out how to hook up the mechanical systems of such buildings and vessels. And like software engineers sometimes mechanical engineers have to throw away large sections of your CADD designs when they see a better way. But like us they have engineering principles similar to our SOLID Principles that guide them and allow them to strip away the minimum possible to implement their changes. But even after things are built you sometimes need to make changes and upgrades. I’m reminded of a television show I watched not to long ago about one of the passenger cruise lines performing and engine replacement on one of their ships. They literally had to cut a hole in the side of the ship and remove all the piping and bulkheads between the engine and the outside so that they could get the old diesel engine out and the new, more efficient one back into the same place. The new engine was smaller and had different requirements for intakes and exhaust and the amount of work to remove all that piping and then reinstall it and make it work with the new engine was impressive to say the least. Now compare that with having to do something similar to a complex software system. The problems are not always equivalent but I would have to say they seem like that would be very similar.

Anyway to pose and answer to Mike’s question I think that mechanical engineers work in ways that are very similar to they way we as software engineers work. Sometimes they throw it all out and start over too.

kick it on DotNetKicks.com
Wednesday, January 28th, 2009 Coding

Leave a Reply

Blog WebMastered by All in One Webmaster.

WP SlimStat