Good enough

I maintain that, while the number of bugs and problems users experience is linear, their understandable frustration is exponential. It’s no wonder they have learned to tolerate poor-quality work.

~  Nick Heer from,

I maintain that this is a symptom of the rise of “good enough.” The rise of, “just ship it and fail faster,” has created a culture where “shipping it” is valued over doing something well. The only thing harder than the first 90% of a project is the second 90% of the project. To create something that is a delight to use requires an enormous effort.

Our culture is currently being reshaped by companies who are training us via the fast dopamine hit. In that arena, creating things is a vicious competition. It feels as if there is no time to do something well and bring it to market. In the time it takes to do it well (for example, create 85 episodes of a podcast, write 2,500 blog posts, fill a bookshelf with journals) you will expend an enormous amount of time, energy and money. Sometimes, what you create will be so perfectly in time with the culture that the capriciousness of the market will reward you. Sometimes it will not.

But you must do the hard work. Not because you will necessarily be rewarded, but because other people need to see you doing the hard work. That will encourage and inspire them to try something harder than their current efforts. And that ratchets the culture up, rather than down.


Arrogant, slow and dogmatic

What does it mean to be a software craftsman? You can read the Manifesto for Software Craftsmanship and draw conclusions; but if you posed that question to different people across the software industry, you’d hear any number of different responses. And to some degree, they’re all true. Descriptions are ultimately bound to perspective, and there appear to be divergent perspectives on the software craftsmanship movement. What follows are three descriptions that are commonly wielded against the software craftsmanship community, accompanied by an explanation of the craftsman’s perspective on the same issue.

~ Paul Pagel



As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value…

~ Manifesto for Software Craftsmanship

Over time, the ideal of craftsmanship was cordoned off to just the technical arts. Physicians and legislators no longer thought of themselves as craftsmen, but as philosophers and natural scientists who were more concerned with the theoretical as opposed to the practical. Such a shift is a shame, for the principles of craftsmanship truly do apply to every man, whether he makes furniture or crunches numbers.

~ Brett McKay

Try to ask a doctor or any engineer to do a crappy job in order to reduce costs. Engineers can change product’s materials to cheaper ones, they can change product’s final characteristics, but they don’t change their level of attention and their process of doing things the way they think it’s right. Doctors can perform simpler or different procedures by patient request, impacting somehow on the final result, but the attention, caring and cleanliness will be the same.

~ Caio Fernando Bertoldi Paes de Andrade


Keep it simple. Good luck with that.

In fact it is so difficult to argue against simplicity that this post won’t even attempt to.  Let’s state emphatically that software should always do only what you need it to do, with the fewest number of steps, and least potential for errors due to complex choices and options.

On the other hand, good luck with that.

~ Steven Sinofsky