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.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • LinkedIn
  • Ping.fm
  • Reddit
  • StumbleUpon
  • Technorati
  • Twitter
kick it on DotNetKicks.com

Tags: ,

Wednesday, January 28th, 2009 Coding

2 Comments to Mechanical Engineering Vs. Software Engineering

  • Mike says:

    I agree but I think the one question I’m left with is the one around “enjoyment”. Sometimes a mechanical engineer might have to rip out their work but I suspect this leaves them unhappy that they got it wrong in the 1st place. In software I end up feeling happier if I rip out a “bad” implementation and put in a “better” one.

  • iLude says:

    Thats for the reply Mike. I’ve sent an email to my brother to see if he can add a mechanical engineering view to the discussion.