The sheer propensity of articles detailing productivity tips for software developers under the auspices of them becoming better employees is alarming. What about our mental health? Why not more articles about our productivity from the point of view of improving our ability to deal with discomfort, burn out, imposter syndrome, and so on?
Progress is key.
Speed matters because it principally enables us to make progress with our work and our life. Half-finished projects weigh on us like mangled fruit on a dying tree. Project deadlines sneer at us right around the corner and we put unfair stress on ourselves to both reach a deadline and achieve excellence. We cannot be happy and, therefore, productive if we are unable to be flexible. The only way is to accept mess.
The book Art and Fear is chiefly about two things:
One analogy that is given in the book is a pottery instructor who divides his class in two. Half of the class will be judged by quantity and the other half by quality. In the end, it is the quantity group that has the best work through the simple act of constantly learning from their failures. Reflection and planning are crucial but the quantity-based group's ability to accept the mess that comes with failures is what drives their progress. Fantastic! All we need to do is just constantly crank things out and we'll be masters of our medium in no time.
Except for some of us mess instills great discomfort.
At the beginning of the year I went to therapy. I was burnt out from work and other stressors in life. Many sessions later I am diagnosed with Obsessive Compulsive Disorder, which in some ways was a shock and in others not a surprise. Eventually, exposure therapy comes up as a tool to help tackle the anxiety and stress from parts of my affliction. There I was, sitting with my discomfort, watching it, not trying to solve it nor run away from it, and sure enough, the discomfort would melt away with time. I started convincing some part of myself that the discomfort I was dredging up was not based on fact and I found myself able to do things I had been so slow or entirely unable to do for ages.
It has dawned on me that sitting with the discomfort of what you produce is part of learning from the failures.
You can defer some decisions for later and put in rudimentary solutions in the meantime. You will probably save time by making progress in this manner that will allow you to revisit those same problems you deferred. Sure, this may not always be the case for those trapped in feature factories, but that's an organisational issue rather than a personal one. You owe it to your mental health to grow more flexible by accepting mess.
May you the author of 2^N programs.