Isaacson on Jobs on Craftsmanship
From an NPR interview with Walter Isaacson, Jobs’ biographer:
On Jobs’ father, who rebuilt cars, and held design and craftsmanship in high regard:
“He would show Steve the curve of the designs and the interiors and the shapes … and even have pictures of the cars he liked the most in the garage. He put a little workbench in the garage, and he said, ‘Steve, this is now your workbench.’
“One of the most important things he taught Steve was [that] it’s important to be a great craftsman, even for the parts unseen. When they were building a fence, he said, ‘You have to make the back of the fence that people won’t see look just as beautiful as the front, just like a great carpenter would make the back of a chest of drawers … Even though others won’t see it, you will know it’s there, and that will make you more proud of your design.'”
I can’t begin to compare myself to Jobs, but I think this is a value that’s important to me, personally, from a software development perspective. There is an aesthetic and a beauty to well written code or framework not to mention the pride of the author in crafting a clear, concise, and elegant design — even in the “parts unseen” by the end user.
I once got into a heated debate about code quality with a CEO who was, at the time, bent on fixing nail pops and seams on the walls of his recently built and painted house. I asked why he didn’t see the same need to put an effort into addressing analogous issues in our code that disturbed the overall quality and aesthetics of the codebase, which seemed to me even more important than a few nail pops. “That’s different” is the only response that I got, but to me, it’s the same. There’s a personal pride in building a product with exemplary craftsmanship. There’s a team’s pride to being able to walk into a code review with a customer and know that they will be wowed. There’s a developer’s own pride in writing software that takes design and usability of the framework into account.
This gets lost in the age of outsourcing and rent-a-coders, but great software is still — and likely will always be — a craft that requires skilled craftsmans to build (of course, great software requires more than that like vision and an understanding of the problem domain as well).