If you're a dedicated professional who is committed to excellence, you should always perform at your peak, right? Every product or project you turn out should be as close to flawless as you can make it. Anything less is simply not giving your best.

Actually, by doing a lot less than your best work at all times you'll probably do a whole lot better by your client, writes software architect Havoc Pennington on his blog.

Cutting corners is about serving the client.

The thought-provoking piece is directed at developers but its essential lessons will get entrepreneurs thinking too. Pennington kicks of by noting that "Steve Jobs famously cared about the unseen backs of cabinets." But that's kind of crazy, he points out.

Jobs might have had enough money that he was willing to waste it on useless, invisible perfection, but your clients probably don't. Traditionally, "cabinetmakers were focused on what their customers cared about. Customers wanted the furniture to look good, and they wanted it to be structurally sound. They didn't care about invisible tool marks, and didn't want to pay extra to have those removed," Pennington points out. The same holds true of coders -- and other makers -- and their clients today. Your obsession with perfection might be more about your ego than what's best for your clients.

"A professional developer does thorough work when it matters, and cuts irrelevant corners that aren't worth wasting time on," Pennington declares.


When is it OK to cut corners?

Not finishing the back of a cabinet is an obvious example of an occasion where leaving something rough is in everyone's best interest. But things are rarely so clear cut in the modern workplace. How can you tell when cutting a corner is a clever efficiency and when it's just laziness or shoddy workmanship? Pennington offers a few principles.

First, it's the professional's burden to decide. Your customers probably don't know enough about the inner workings of your product to tell you what you can cut and what must be done with precision. "The customer wants us to do it properly but not wastefully. It is our decision how to go about this, and if we get it wrong it's our fault," he insists.

Second, doing this well requires a deep dive into what the customer hopes to accomplish with your product. "It's impossible to work efficiently or to do a good job without understanding the context," writes Pennington. Third, trust your instincts. If it feels dicey or vaguely embarrassing, it probably is.

"Cutting corners should feel like you have a clear focus and you're skipping tasks that don't matter for that focus. Cutting corners should not feel like you're doing poor-quality work," Pennington concludes.

The post in full is well worth a read (especially, I imagine, if you're a developer), but even if every detail doesn't apply to your job, the overarching message is a thoughtful reminder to the perfectionism-prone.

Doing everything perfectly might make you feel good, but is it serving your customers? Could you give them a little more value by cutting a few more corners?