Read my latest article: Announcing RailsDeveloper (posted Wed, 01 Sep 2010 17:01:00 GMT)

Matz on Considering Interface

Posted by Robby Russell Mon, 25 Sep 2006 15:11:00 GMT

17 comments Latest by Louis Vuitton HAMPSTEAD Thu, 05 Aug 2010 18:35:32 GMT

...back in Portland after being in London and New York City for the past two weeks. It’s nice to be home. :-)

I came across this interview with Matz earlier today. It was published almost three years ago (pre-Rails)... I’m quite intrigued by what he is advocating here…

Bill Venners: You also mentioned in your ten top tips: “Be nice to others. Consider interface first: man-to-man, man-to-machine, and machine-to-machine. And again remember the human factor is important.” What do you mean by, “consider interface first?”

Yukihiro Matsumoto: Interface is everything that we see as a user. If my computer is doing very complex things inside, but that complexity doesn’t show up on the surface, I don’t care. I don’t care if the computer works hard on the inside or not. I just want the right result presented in a good manner. So that means the interface is everything, for a plain computer user at least, when they are using a computer. That’s why we need to focus on interface.

Some software people—like weather forecasters, the number crunchers—feel that the inside matters most, but they are a very limited field of computer science. Most programmers need to focus on the surface, the interface, because that’s the most important thing.

Bill Venners: You also mentioned machine-to-machine interfaces, so are you just talking about interfaces for users or also for machines?

Yukihiro Matsumoto: It’s not just user interfaces. When machines are talking to each other via a protocol, they don’t care how the other is implemented on the inside. The important thing is the proper output getting passed correctly via the proper protocol. That’s what matters.

If you have a good interface on your system, and a budget of money and time, you can work on your system. If your system has bugs or is too slow, you can improve it. But if your system has a bad interface, you basically have nothing. It won’t matter if it is a work of the highest craftsmanship on the inside. If your system has a bad interface, no one will use it. So the interface or surface of the system, whether to users or other machines, is very important.

One of things that we’re really advocating with Dialogue-Driven Development is artifact generation. Wireframes and lightweight prototypes are great for generating constructive dialogue between clients, users, and our team. We should make sure that we understand why and how users will use an interface before we worry about the code that will drive it. Too often we fall into a pattern of thinking where we’re convinced that we can build an agnostic application that has various interfaces to a central repository of business logic and data. While we strive for this during development, it really should be focused on after some initial interaction design has been planned. Of course, this is my opinion.

So, I must ask you. When you’re working with on a new project, do you focus on interface or code implementation first?

Subscribe to my RSS feed Enjoying the content? Be sure to subscribe to my RSS feed.
Comments

Leave a response

  1. Avatar
    TJ Stankus Mon, 25 Sep 2006 17:35:32 GMT

    Funny you ask. I just wasted probably a day this week implementing a clever database schema only to realize that the user interface was going to be too confusing. I stepped back, reconsidered, and mocked up some screens with paper and pencil. That effort resulted in a re-designed schema to match the more simplified UI. Note to self: always mock up the screens first.

  2. Avatar
    Ronie Tue, 26 Sep 2006 16:45:41 GMT

    True.

    A good system with a bad interface is a bad system.

    A bad system with a good interface is a fair system.

    Not fair, but true.

  3. Avatar
    Ronie Tue, 26 Sep 2006 16:46:57 GMT

    True.

    A good system with a bad interface is a bad system.

    A bad system with a good interface is a fair system.

    Not fair, but true.

  4. Avatar
    wholesale ed hardy Thu, 18 Mar 2010 06:21:37 GMT
  5. Avatar
    replica tiffany retail Thu, 18 Mar 2010 06:36:35 GMT

    useful information

  6. Avatar
    Generic Pharmacy Thu, 20 May 2010 12:26:20 GMT

    I have been meaning to write something like this on one of my blogs and this has given me an idea. Cheers.

  7. Avatar
    lebron i Wed, 26 May 2010 08:33:10 GMT
  8. Avatar
    air jordan 1 Wed, 26 May 2010 08:33:57 GMT
  9. Avatar
    AdiSTAR Ride Mon, 31 May 2010 00:07:10 GMT

    tr ert erte

  10. Avatar
    air jordan 1 Mon, 31 May 2010 01:01:17 GMT

    treert

  11. Avatar
    adii 420 top gold foil Mon, 31 May 2010 01:01:36 GMT

    yhytytu

  12. Avatar
    air force shoes Thu, 03 Jun 2010 00:31:16 GMT

    TE5T ERT

  13. Avatar
    adii strangler shoes Thu, 03 Jun 2010 00:31:25 GMT

    ERT ERT ER

  14. Avatar
    Chanel bags online Wed, 23 Jun 2010 08:08:54 GMT

    A bad system with a good interface is a fair system.

    Not fair, but true.

  15. Avatar
    asics running shoes Wed, 21 Jul 2010 08:16:33 GMT

    This was a useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful. Keep up the good workOnitsuka Tiger Tokidoki Fabre asics onitsuka women’s asics gel nimbus men’s asics running shoes

  16. Avatar
    dcsadasd Sat, 31 Jul 2010 01:11:27 GMT
  17. Avatar
    Louis Vuitton HAMPSTEAD Thu, 05 Aug 2010 18:35:32 GMT

    Since we were doing double-sided this time I wanted to be sure that there was enough space for writing on the back… which helps with writing down a note, giving someone a coupon code for hosting, or my cell phone number if they are special enough. :-)

Share your thoughts... (really...I want to hear them)

Comments