November 22, 2013

A Thought on Chairs and Software Development

Wooden Chair

From Daniel Jalkut excellent post on Stagnation Or Stability?

He applauds the app for allowing him to do his work “frictionlessly.” How does a software developer achieve this level of performance? By first building a quality product and then working deliberately over months and years to address the minor issues that remain. Woodworking makes a reasonable analogy: after a chair has been carved and assembled the job is functionally complete. It’s a chair, you can sit in it. It’s done. But customers will gripe with good cause about its crudeness unless the hard work of detailing, sanding, and lacquering are carried out. Only then will it be considered finely crafted.

Personally I love the analogy of a chair to building software. The visual is so tangible – everyone can picture the contrast in quality between an unstained or unfinished chair and the one you’d purchase for your dining room. As software developers we should view our work through the same lens.

3 comments

  1. Martin Butt on

    It’s a very accurate analogy that reinforces the importance of a solid MVP. If you don’t start by “first building a quality product”, then no amount of “address[ing] the minor issues that remain” will ever get you to something “considered finely crafted”.

    This is a great article by UX expert Harry Brignull on how starting from a bad product and trying to iterate on it will never create a high quality product:
    http://www.90percentofeverything.com/2011/01/06/local-maxima-and-the-perils-of-data-driven-design/

  2. Abraham on

    @Martin, thanks for the comment and link. I’ve been toying with the idea of getting a few chairs made to different stages of completion (an MVP, a rough version, and finally a polished one) for the Kiva office. Put them in a meeting room and they can be used to drive home the idea – and purpose – of each stage. What do you think?

  3. Martin Butt on

    That’s a great idea. There is a software engineering concept called “ubiquitous language”, where an organization gets together and defines its own lexicon to facilitate cross-organizational communication. Concepts like “MVP”, “rough” and “polished” can be hard to really explain. Having a physical chairs in the office will allow us to point at them and say, “We are building you the MVP chair. You can sit on it, but you wouldn’t want to invite all your friends over to see it, or put too much weight on it.”.