Thinking about craftsmanship vs perfectionism

I’ve been thinking about something I do a lot. Whenever I’m building something, I care about the small details, sometimes even details that most people will probably never notice. If a button feels slightly wrong, I want to fix it. If something loads strangely, I want to understand why. If a page looks good but something about it still feels off, I keep working on it.

I don’t like doing things halfway. The problem is that I’m still trying to understand where ends and begins.

Richard Sennett puts the good side of this very simply in The Craftsman: the desire to “do a job well for its own sake.” That is the part I recognise in myself. Sometimes the work matters even when nobody is looking.

An early Pumply map of Kumasi with stations shown as plain blue dots and raw price numbers floating beside themA later Pumply map of Accra with nearby stations grouped into cards showing how many stations are in each area
Two versions of the Pumply map. Early on, every station was a dot with a number next to it. Later, nearby stations were grouped into counts so the map stayed readable.

The good side

I think caring about details is one of the reasons I enjoy building things. When something finally feels right, there is a difference. People may not know exactly what changed. They might not notice the spacing, the loading behaviour, the wording, or the tiny decisions behind the product, but they can feel it.

“Craftsmanship means dwelling on a task for a long time and going deeply into it, because one wants to get it right.”

That line gets very close to what I’m trying to describe. I want to get it right. There’s something satisfying about knowing that even the parts nobody sees were treated with care. I don’t want to build something badly just because nobody will notice.

An early Pumply station sheet over a zoomed-out map of Africa, with the station name and a 'No recent reports' label cut offA later Pumply map with petrol price cards and the station brand logo shown directly on each pin
An early station sheet where the text didn’t fit, next to a later version that puts fuel type, price and brand straight onto the map.

The problem

The same thing can also slow me down. Sometimes a product is already good enough to use, but I’m still fixing things: one more animation, one more , one more layout problem, one more thing that probably only I noticed. Sometimes that work is important. Other times, I’m probably just delaying the moment when I have to put the thing in front of people.

That’s the part I’m trying to get better at understanding.

What I’m learning

I don’t think the answer is to care less. I actually like that I care. Robert Pirsig wrote that “a person who sees Quality and feels it as he works is a person who cares.” I think that’s what I’m trying not to lose.

I just need to get better at knowing when the detail matters. If something affects trust, usability, speed, safety, or how the product feels, I probably should care deeply about it. If I’m changing something for the tenth time because I personally know it could be 2% better, maybe it can wait.

A product can always be improved. That means there has to be a point where I say, this is good enough to exist, and then improve it after people start using it.

I still want to be the person who cares

I don’t want speed to turn into carelessness, and I don’t want perfectionism to turn into an excuse for never finishing anything. I want the middle: build carefully, ship, watch how people use it, come back, and make it better.

Maybe craftsmanship isn’t about making everything perfect before anyone sees it. Maybe it’s about caring enough to keep improving the thing after they do.

References

Richard Sennett — The Craftsman ↗

Matthew B. Crawford — Shop Class as Soulcraft ↗

Robert M. Pirsig — Zen and the Art of Motorcycle Maintenance ↗

Related: Projects