Software Development Process Does Not Matter
Process interests me. Refining and improving a process to make work more joyful and productive matters to me. But, what has become clear over the past thirty years is that in software development, process just doesn’t matter. Seriously. It doesn’t. It might just be because I’m becoming a software punk revolutionary, but I suspect not.
The reason it doesn’t matter is this simple fact: Any process used with good intent works better than any process used with bad intent.
There are two general factors that affect intent. The team and the management. You can deploy quaductionism to simplify this as shown below:
What does good intent look like at the team level? The team is self-motivated by the desire to deliver working software. This is their primary driver.
They don’t want to stuff their CV full of the latest buzztech. They aren’t striving for individual advancement or recognition. They are not interested in complexity for its own sake or bragging rights with their industry peers.
Here’s an example. A developer opens the admin screen to test their new feature, and they realise that you can’t keyboard-navigate to the fields. That means users are being excluded based on their input device. That’s not good… so they make the fields keyboard navigable. A keyboard user in Brighton signs in and smiles when they manage to complete the task they wanted to achieve without having to wrestle with a peripheral device.
What does good intent look like at the management level? The managers create a strong vision and operate against the whole system to create a healthy environment for the team.
They don’t want to directly control the team’s decisions. They don’t tell the team how to do their job. They don’t need to be asked for permission when the team wants to do the right thing™.
It’s hard to provide great examples here as there are few thinner lines that exist in the workplace. Concrete examples fail to illustrate the craft of this role, because a manager who obtains code coverage metrics may do so with good or bad intent. A manager who gives feedback or course corrections may do so with good or bad intent. It’s not what you see, it’s the intagible swirling of thoughts that are invisibly behind the action that reveal the intent. Despite this, if you are team with good intent, you know when you’re being managed by someone with bad intent. Without doubt.
Warning signs might include demands for the asymptotic, checkbox exercises against the intangible, and demands that only sound reasonable if you are insane (for example, “I want 100% of potential test cases executed”).
Intent in General
Where there is bad intent, we need to follow the breadcrumbs. Often, there is a negative spiral at play. If a team appears to be operating with bad intent, what management practices might be encouraging it? For example, it’s common to find individual objectives behind a lack of collaboration; everyone is competing with each other for some scarce reward.
When a team acts with bad intent, it is rarely in isolation of the manager acting with bad intent. The intent on the one side is driving the intent on the other. This can then cycle infinitely as the team under-performs and the manager pulls levers that only result in worse performance.
When a manager acts with bad intent, it is a little more likely they are doing it in isolation of the team. You will find instances where team good intent is stifled by bad manager intent far more often than you’ll find managers with good intent being crushed by a team acting ill. Where you do find this unusual situation, it’s not uncommon to find the team are still stampeding from prior management with bad intent.
In both cases, intent should not be assumed. You need to look behind the curtain, as they did in Oz, to find out the real human story. However, the use of the word intent here should not be personal or judgemental. It does, however, need to be changed.
What This Means
We have four quadrants in play. Only one of them works. The top-right quadrant, the one titled “virtuous circles”, is the only good place to be. The team and the management are all acting with good intent.
On the top-left, a team with good intent is being stifled by the management. On the bottom-right a manager acting with good intent is being defeated by the team.
Finally, in the bottom-left zone we have a feeding frenzy. The team and management are eating each other alive and the users are undoubtedly suffering.
A team in the virtuous circles quadrant will outperform a team in the feeding frenzy quadrant no matter which process they are using I’m serious. A virtuous circles Waterfall team will beat a feeding frenzy Scrum team. Every time. Insert the name of your favourite process. It still applies. In most cases, the virtuous circles team will beat all the other quadrants. As time goes by, it becomes ever more likely they will beat the other three.
Virtuous circle organisations will change their process over time and it will get better. Feeding frenzy organisations will also change their process over time; and it will get worse.
Process evolution works in this way. It adapts the goals. The goal or a virtuous circles organisation is to deliver working software that is relevant to their users, whereas in the feeding frenzy everyone is optimizing for their individual survival.
This might mean the process converges on a common agile way of working in a virtuous circles organisation; but only if that’s what works. We don’t need to debate that here because we know that process doesn’t matter, in the same way that gravity doesn’t matter to water. It looks to us, as observers, like it matters, but the water is just doing its own thing. It doesn’t need to be told to go downhill, or to flow around obstacles.
One last thing. If you have nailed one of the two requirements of a virtuous circle organisation, it’s easy to fool yourself into thinking the job is done. Don’t be complacent, though, as the two half-way states are temporary. You either work your way up, or you naturally decay. Without effort, you move down and left. Great teams are killed by management with bad intent (either the fire in their eyes dies, or they leave) and ace managers are worn down by teams with bad intent until they leave or become bad managers. It’s thermodynamics. Almost.
So, pay attention to the intent behind the actions of teams and managers and seek the virtuous circles. The process doesn’t matter.