Writers can write anything. Programmers can’t.
The difference between writing and coding.
tldr: Coding is not creative expression.
I’ve noticed in myself and other programmers that we believe ANY code we write is valuable. I’ve come to realise that this is completely false.
I think this stems from programmers believing that writing code is like other forms of writing. With poetry, social media, and novels, you can produce anything, and there is potential for that writing to resonate with someone and create value. There’s actually this spectrum of value creation after reading something, from “meh it sucked” to “wow that was evocative in X way”. These forms of writing just don’t have an objective measure of value for the reader.
But with coding that doesn’t apply. The objective measure of value is varying degrees of “was my problem solved”. If the problem wasn’t solved, the code is useless. The big mistake is believing that coding is entitled to the same spectrum of responses that we expect to see from readers.
The really tough bit is that it’s hard to shake this belief given how much writing code feels like creative writing. Little components beautifully composed to make a product doesn’t seem too distant from writing a great story. The difficulty in learning to code also plays a role in this. Since it was hard to start and code anything, any code I do produce has met the threshold for value, right? Wrong.
All of this thinking culminates in a cycle I’m sure you’ve seen before:
Tons of emotional investment → beautiful code → no satisfied users → disappointment → which morphs into denial → “everyone is wrong IT IS valuable” → repeat on new product.
I’ve fallen into this trap so many times (w/ Grapevine, Venyu, etc). But now, I think I’m finally out. And there’s one key change I made to escape this cycle: I remind myself that I’m not an artist, and coding isn’t creative expression. There shouldn’t be some huge emotional investment in shipping SaaS, so I really needed to divorce myself from the end result. The app isn’t a representation of me, and it’s not a measure of how smart, dumb, or successful I am. It’s just an attempt at creating value. Once I internalised this, I stopped caring about clean code, perfection, and assuming my code is valuable to begin with. Now, if I start from the assumption that my code is not valuable, then I can only be pleasantly surprised when it is.