Hardware Designers vs. Software Designers

Just read part of the book Founders At Work over the weekend. Although I haven’t decided to be a founder of a startup company, I found the stories there are trully inspirational. You can read part of the book at Google book.

One interview with Hotmail cofounder Sabeer Bahatia is very interesting with his thoughts on the differences of software and hardware designers:

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

Livingston: … Did your backgroud in hardware help you in terms of building servers that could handle massive loads?
Bahatia: It helped us because we knew what kind of hardware we would need to be able to handle the kind of traffic to our site. Also, when you are hardware designers, you have tremendously more discipline in writing and describing software because in hardware you cannot get it wrong. Every turn of every chip costs you millions of dollars, so when hardware designers design any piece of software, they normally get it right. They use something called state machines to describe the funtioning of the software. When you do that, you are very deterministic: if this is the input, then this will be the output.
So you write it in a very deterministic fashion and therefore you tend not to make too many mistakes. Whereas the pure software writers – they way they think and architect software is very creative. They put in lots of bells and whistles, but they think, “No big deal. If there is a bug, we’ll fix it. Put in patch.” You can’t do that in hardware. There is no patch. Once you ship a chip, it has to work all the time. So in terms of being able to test it out, there is somewhat of a difference, but I just think that hardware designers would be pretty good software designers as well.

Given his first hand experience from hardware to software, I would give much credit to his thoughts. The key point here is hardware designers make far less mistakes than software designers because hardware designers cannot afford hardware mistakes that are far more expensive than software mistakes.

Now if we make the software mistakes as expensive as hardware mistakes, will software designers build better quality software? Well, that is against the whole point of dividing a system into hardware and software. In the past, the complexity of hardware hasn’t increased as much as software. It’s mainly the software that handles the most logics and complexity of a system. It’s therefore expected for the software to be more vulnerable to bugs than hardware.

Having said that, software designers should definitely take the bugs as seriously as the hardware designers. Because we can have patches, we sometimes take it too lightly.

To get the attitude as hardware designers, it may be worthwhile for software designers to work as hardware designers at the start of professional career. But when the hardware training is over, will the creativity remain?

This entry was posted in Software Development and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.


  1. Anthony
    Posted March 21, 2010 at 5:05 pm | Permalink

    Talking about hardware mistakes, just ask Intel and their floating point calculations!

    4195835*3145727/3145727 = 4195579 not!

  2. Posted March 23, 2010 at 2:16 am | Permalink

    You are right. See, we still remember the hardware bug a while back. How many software patches for the OS, browser etc. recently? I don’t even count them these days.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.