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.