The ebbs and flows of writing software

Michael Francis
3 min readAug 4, 2022
A colorful laptop
Photo by Joshua Woroniecki on Unsplash

Have you ever noticed how cyclical productivity and creativity are when writing software? I’ve been at this job for nearly 30 years, yet I am still surprised that leaders expect consistent output from ALL their developers. Instead of treating them as individuals, we often treat the engineers as resources, like a production line. I’ve often remarked that writing software is more of an art than a science and yet that is not the way we look at

In more recent times, it has become en vogue to measure this directly through such measures as story points. We even report on these through the daily standups, heralding great teams that produce a steady output, hitting their goals every two weeks; we even have ceremonies to celebrate this progress. On the surface, these processes appear to work well for many teams, but I ask you, are we getting the most out of the individual?

I should clarify that I’m not anti these processes, I’ve had very successful teams run agile scrum at scale, what I am questioning is whether this works for everybody.

The problem is not every programmer works this way; it would never have worked for me. I’m horribly inconsistent; I can write thousands of lines of code one week, and the week after, I may only write a few. For weeks at a time, I have ‘coders-block’ where I can barely put my hands to the keyboard. And then there are stretches when everything seems easy, design and code flow from my hands. I’m in the zone when not having to context switch to a project update meeting. If you look at my overall velocity, it’s up there with the other coders, but it doesn’t fit the mold.

For me, the short cycles are reasonably predictable, a high-velocity period followed by a slump. It’s a bit like running a race; you train consistently before, push to complete the race and then recover after. There are longer cycles as well, and these longer cycles seem more aligned to creativity than productivity. While the productivity cycles run over a couple of months, the creativity cycles are closer to a year in length. Sometimes I can push and deliver on a shorter cycle, but I mostly have to accept that I need some downtime and space to think.

Thankfully, I’ve done very well in my career, and these days my time on a keyboard is much less important than my time designing and writing. I don’t know how I would have done today, though. We didn’t measure output in this way, we allowed space for experimentation, for learning. Suppose people expected me to produce at a steady rate weekly. Would I have burnt out? Would some of the innovations I came up with not have happened? Would I still be in this field?

My ask to you; do you have people in your team that work a little differently? Do you have people who ebb and flow? Perhaps we need to unlock these people and give them the space to succeed alongside the steadier coders. So, when you do your one-on-ones, take some time to figure out who your creatives are and find a way to support them.

Product thinking or Poker thinking? | by Michael Francis | Medium

--

--