Work Is Water: Beat Developer Infinity by Paying Attention to Flow
This article is for everyone drowning in work. If your to-do list seems infinite and you’re starting to feel burned out, you’ll discover how to think like a river and cultivate a manageable flow.
We are busy removing dams, weirs, culverts, and sluices because we’ve learned that nature has a better way to manage water. They slow the water’s course through the landscape, reducing peak water levels, reducing flooding risk and providing more preparation time when a flood cannot be prevented.
In contrast, human-made watercourses tend to rush the water downstream, where it converges and creates dramatic flooding. If you think about it, this sounds exactly like how we manage work in software teams and in general. To be productive as an individual, we prioritize our tasks and rush them through to completion.
If we were a river, there would be constant flooding in the lowlands. But there’s a catch that makes it even worse. Our work resists gravity and flows in all directions. Often, it eventually flows back to us. That’s why we live knee-deep, waist-deep, or neck-deep in water all the time.
The wicked part of drowning in work is that our water never reaches the sea. The more we bail out, the deeper we get. When you start so much work, it takes forever to finish it. In fact, the more time you spend switching tasks, rebuilding task context, and responding to the overheads of high work-in-progress (WIP), the less time you spend completing stuff.
It’s time to reconnect with nature and discover that you must slow down to go fast.
Slow Is Smooth, Smooth Is Fast
I worked for a company in the financial industry on a software project with a fixed timeline set by regulators. With a long list of work to do, we summoned the developer hustle. We started early, worked through lunch, and stayed late only to see our work move to the next stage and wait.
Developing changes faster made no difference to the timelines and the more we rushed, the more frequently the work came back. Overall, we were making the project take longer.
Intention, mindfulness, and precision will always get you to your outcome faster than pure hustle. Pausing after a task to plan your next move feels like wasting time you could have spent on “real work. But stumbling ever onward to try and complete a to-do list that is effectively infinite sounds like the worst kind of Sisyphean endeavor. And it is.
The moment of clarity in the modern workplace is when you accept that the queue of work can never be completed. We face infinite choices and the tasks that each decision may generate. You cannot possibly do it all. Ever.
Many people respond to infinity by working extra hours, rushing individual tasks, or hiring additional help. This doesn’t work because doubling, tripling, or 10-xing your capacity makes no dent in infinity.
Instead, we need to set the rate at which infinity can enter our work system. We slow down the water, dry our feet, and establish a healthy flow of work.
Working Is Drinking
When I get thirsty, I drink a cup of water. Admittedly, it’s often a less noble choice than water, but it’s still a single cup at a time. It’s not feasible to drink once per month by ingesting 90 liters in one go.
Planning is the same. We need to do it continuously because the need to choose between competing demands is ever-present. Planning after each task may be too much, but planning once a week is likely too little.
There are many ways to manage this, I use a combination of the Pomodoro Technique, Personal Kanban, and Getting Things Done. This helps me look at the work at different planning horizons and levels of detail. You don’t have to use these, but you need something that lets you continuously plan and work with intention.
When planning, the question isn’t how you do all the work. The crucial activity is deciding what you won’t work on. This will be challenging work, as it encompasses the majority of this extensive list of options. It’s a law of nature that choosing to do one thing is, by default, choosing not to do something else. Don’t fight it.
When you perform continuous small-scale planning, it doesn’t take so much time. It also provides a hook for crucial conversations with individuals who attempt to shift work downstream to you. There’s great power in asking, “Is this new work more important than these items I have planned?” You’ll often find it’s not.
How To Slow the Water
We slow the water by having courageous conversations. Sometimes, we must tell people we can’t accept a request because we’re already committed. On other occasions, we collaborate with them to understand priorities.
When I ran software teams, I allowed stakeholders to re-prioritize the upcoming work as often as they liked. Once developers started a work item, we let them complete it. You may use a different default, but this prevents the waste caused by “half a feature”.
This doesn’t just apply to development. Imagine you had a plan to write a book, get it published, and then do promotional book tours, television chat shows, and social media posts to promote it.
Imagine you wrote the book, published it, and didn’t do the promotional work. You may have gotten distracted by your next book idea, so you’ve started writing it and don’t have time to promote the original book. You’ll end up with many books and no sales, when it’s better to have one best-seller than many flops.
The Lean movement puts it this way: Stop starting and start finishing.
Be Intentional
Every single person in knowledge work has a potentially infinite to-do list. Only by being intentional can we slow down the flow of work and have a greater impact. It’s easy to fall into a completionist mindset where you start to believe that applying more effort will somehow get you closer to the finish line, but this is a shared delusion.
You can’t ever be done, but you can choose to work where you can make the most significant impact.