Craftsmanship and software design

crafts·man·ship - The quality of design and work shown in something made by hand; artistry.

The concept of craftsmanship is tied closely to the physical world. What if we consider software, which is not a physical object, in the context of craftsmanship? What are the characteristics of well-crafted software when it comes to design?

Typically a well-crafted physical item is associated with the notion of being made by hand. Machine-like perfection is not necessarily the goal. Cabinetmaking is a great example of this. Mechanical methods exist which are most likely stronger than the dovetail joint, but there is something about the artistry and skill involved that makes a dovetail joint evoke that sense of pride in craftsmanship. Baking is another case where physical perfection in the appearance of a product can actually evoke a negative impression in users. I think most users would pick the pie that had a hand-made look to it any day over one that looked like it was stamped out by a machine.

Another aspect of craftsmanship is that the quality of the product that can be experienced on many different levels. High-quality hand-made instruments exhibit craftsmanship through multiple senses. Not only are they physically beautiful and pleasing to touch, but they tend to sound better as well.  There is something about this knowledge, process, skill and care that a craftsman making an instrument has that we have not yet been able to reproduce on a mass scale.

Some mass-produced products certainly exhibit craftsmanship as well. But this is where great design and attention to detail comes in. It can be something that seems unimportant or like a “nit”, but bad design will get noticed and will reflect on a user's perception of the overall craftsmanship of a product. Think of the sound a car door makes when you close it or the feedback from a dial when you turn it. These details give you an impression of how well the car was designed, and the quality of work that went into it.

This brings me back to software. How can we conjure a sense of craftsmanship and quality when it comes to software? I think there are many ways, but one of the easiest is to borrow from what well-crafted mass-produced products do: pay attention to even the smallest of details.

Apple tends to excel in these types of details. For instance, for the error pages in iCloud they took what would typically be a negative experience and lightened it up. These pages show they put some time into crafting this design when they could have just shown a text message with the error. This turns a potential negative into a positive and evokes that pride in craftsmanship.

Another way to achieve craftsmanship in software is to incorporate the kind of beauty and artistry that we instinctively recognize and appreciate in hand-made objects. Humans relate to beauty in both the natural world and handmade objects on a very subconscious level. The symmetry of a flower, natural textures, how light changes with the seasons. Even software can tap into this human capacity to recognize beauty.

Craftsmanship can be brought into software, but it is all too often ignored in favor of shipping. Really great software is like a great movie or any other well crafted physical item. It leaves you with a sense of wow and even excitement. It improves your life and makes you feel better about technology. Eliciting that sense of craftsmanship in software gives users an emotional connection to the software, whereas neglecting craftsmanship leaves users with a sense of technological displacement. In short, well-crafted software is more likely to be software that people really want to use.

On your next project, ask yourself this: Will this design instill a sense of trust and craftsmanship in your product?