Related Entries

Quick Ref: SVN command line
Git with Dropbox
Cisco's new urbanism
Portable development links
Wish I had this 10 years ago

« Python Bibliotheca
» Leadin Macro

What if Honda made software?

Honda's principles are very simple and sensible. Perhaps these should be used in software development.

I was reading about the 2003 version of Honda Accord and that lead to some more reading about Honda, the company. I really liked The Honda Three Reality Principle which states that:

  1. Go to the actual place.
  2. Know the actual situation.
  3. Be realistic

This made me think a little bit how this could be used in software (or web) development. If you really want a fantastic piece of satire when it comes to what if ___ made ___?, check out Dave Barry’s musings about bottled water wars.

Traditional software teams - in already successful - companies are bloated and usually decided by managers who have read books. Every person in the team has one and only one responsibility. If some one takes initiative, that is immediately seen as stepping across boundaries - not a good thing politically.

Go to the actual place

If you haven’t seen the movie Office Space, I strongly recommend it. There is a character in the movie, whose job is to take the requirements from the customer to the programmer. Look around, you might’ve some one doing the same thing at your work too! Why? Because of the age-old notion that programmers are not good at communication.

Most programmers are pretty good analysts too. Send people with proven analytical skills to meet the user. If you are so worried about the communication gap, send a talker along with the analyst too. Most of the time, what I’ve seen is that the user is more interested in knowing what can s/he get and how fast can it be done at what cost; once the initial communication channels are established. You need an analyst for that. A talker might end up saying “let me get back to you on that!” over and over. Your user won't particularly enjoy having to revisit things.

Know the actual situation

This is particularly true in web technologies. Most users don’t have original requirements. Their requirements are in part shaped by what they have seen in other sites. For example, a librarian could ask you to build something like for your intranet. An HR representative could ask you to build all the functionalities provided by in the internal job posting site. When you really look into the problem they are trying to solve, it just might include some forms and a datastore. Not very complex at all. And trust me, they are going to be happier, if they can get it quickly, with the core functionalities available. Cool things can come later.

There is also a different kind of mindset. This group will want the most splash out of a project. So, they would want to keep postponing the launch till all cool things are added. The problem with this is that, you really loose the chance to see how the end-user is using it. So, you end up making an over-engineered system with features that nobody use. Still worse, your product mightl actually make a rotten splash, alright :-)

So, the actual situation may not be at your user representative, but with the end-user. You’ll have to go all the way.

Be realistic

This is very very important. Know the situation and make solutions for the problem and not for additional problems. If user wants just to send emails, s/he is more interested in knowing when can s/he start doing that. Address that first. If you think that adding a search and browse option and generating automatic RSS feeds will be really cool, make sure user really needs it or is willing to spend the time and resources necessary to make these additional things which are probably not that cool to him/her.

Leave enough hooks to add functionality later. You don’t have to get everything done in the first version.

No wonder Honda makes lasting and reliable solutions.

Acura NSX review by Philip Greenspun: “A Ferrari, but engineered by people who went to college”. Philip really explains it well why this is such a well engineered product.

Meanwhile, here is how to look for a job at Honda!

Appropriate quote

“Action without philosophy is a lethal weapon. Philosophy without action is worthless”. -- Soichiro Honda
  1. Sounds to me alot like the eXtreme Programing with regard to customer interaction. Kinda ironic because Buisness Manufacturing consultants seem to refer to XP as Toyota fying Software Development.

    Good article.

    Posted by: fozbaca on August 26, 2002 02:32 PM