Skip to main content

Search...

Resilience in Software Projects: Follow the Bug Trend

Resilience in software projects starts with accepting bugs rather than avoiding them. What bacteria and moths teach about trends and testing hypotheses.

• • Updated: • 9 min read
Cover of the expert talk on 'Resilience in Software Projects: Follow the Bug Trend' with Anna Melbinger and Richard Seidl.

Resilience in software projects means working with uncertainty instead of trying to avoid it. Two strategies help: watching trends rather than single values, so changes in direction show up early, and planning deliberate steps that don’t lead straight to the goal but produce knowledge. The greater the uncertainty, the more gaining information matters compared with efficiency.

Key Takeaways

  • Bug trends tell you more than individual bugs, because they show whether a system is getting worse or recovering, without you having to chase every single case.
  • Standing still doesn’t make a system robust: freezing it instead of adapting it uses up the resources where it stands and loses out in the long run.
  • A deliberate step away from the direct route, such as the 90-degree turn moths make when looking for a mate, optimizes the quality of information rather than efficiency and reaches the goal faster.
  • Hypotheses are only useful if you set out to falsify them: actively looking for a refutation cuts off whole branches of a decision tree instead of working through all of it.

Resilience in Software Projects: What Nature Knows About Uncertainty

Nature has had a lot of practice at dealing with uncertainty, and that is where resilience in software projects can learn from it. Animals live in large ecosystems, interact with other species, and their environment keeps shifting. Volatility there is the normal state of affairs.

That skill is becoming more important in software projects and companies. The geopolitical situation hits markets directly, the range of possible methods and technologies is enormous, and many teams struggle with where to start at all. Anna Melbinger, a physicist with ten years of experience in IT projects, draws a parallel: the processes nature has worked out over a very long time are almost always about staying robust and coping with change.

This is not the same as bionics. Aircraft wings modeled on bird wings, the lotus effect, swimsuits inspired by shark skin: that is the mechanistic approach, building something that looks like nature. The more interesting question is how. Don’t copy the form, copy the strategy biological systems use to make decisions when the signals are poor.

Uncertainty Is a Given, Not a Defect

You can’t develop uncertainty away. In software testing, there is a belief that good development produces no bugs. That is nonsense. Systems are too complex, and some uncertainty always remains.

AI makes this more pronounced. Besides real bugs, there are hallucinations, faulty behavior that is built into the system itself. Trying to avoid that means fighting the wrong battle. It makes more sense to accept uncertainty as a fact and adopt methods that work with it.

Agile methods rest on exactly this idea. At its core, inspect and adapt is an attempt to build adaptability and a willingness to learn. At the basic level, that works. Anna argues, though, that the principle has to reach much further, all the way up into management decisions, instead of stopping at the edge of the team.

Look at changes, not snapshots. Some bacteria want to swim toward a source of sugar but can’t measure the difference between their front and their back. It is simply too small. Their solution is to start swimming and measure the change as they go.

If things improve, meaning more sugar or fewer toxins, the bacterium keeps swimming in that direction for longer. If things get worse, it changes direction sooner. Every now and then it changes direction on purpose, so it doesn’t end up in a dead end. What counts is not the absolute reading at one point but the direction of the change.

For projects, this has a simple and often underrated consequence: trends say more than single values. Chasing individual bugs in project management gives you very little to go on. The bug trend, by contrast, shows whether things are tipping or whether the team is fixing issues faster than new ones come in.

“I think bug trends are sometimes far more useful than the bugs themselves.”

(Anna Melbinger)

Burndown charts already work this way, and Anna argues for using the principle more often. A velocity trend often says more than velocity on its own, because you can see at a glance where things are heading. People process visual trends quickly and immediately recognize whether something is getting better or worse. Her practical advice: put a few more trends on your dashboards.

The bacteria strategy holds a second lesson. Standing still is not the same as being robust. If you believe robustness means not moving and not changing, you are heading for trouble. The bacterium that stays put eats up all the sugar where it is and dies. Here, movement is how information gets generated.

How Moths Show That Deliberate Detours Pay Off

Sometimes the fastest way to a goal is a deliberate step sideways. Male moths find a mate purely by following pheromones drifting through the air. Wind and obstacles turn that into an extremely noisy signal.

Unlike bacteria, moths don’t just follow the direction. Every so often they make a deliberate 90-degree turn and move off to the side. Mathematically, they are actively optimizing the information they get. They are testing how good their current direction really is.

Picture it on a hill. The bacterium slowly spirals its way up. It notices that things are improving, but it takes forever. The moth turns 90 degrees, notices that the ground falls away here, concludes that uphill must be the other way, and gets there much faster.

Which strategy fits depends on the situation. For the moth, the outcome is binary: if it misses, there are no offspring. Its environment is extremely noisy, and the risk of missing the target is high. The bacterium is content as long as it finds something to eat and things keep improving.

Translated to projects: sometimes it is worth doing something that doesn’t lead directly to the goal, purely to gain knowledge. We tend to push for efficiency at every step. A deliberate step sideways runs against that reflex and can still get you there faster.

Two concrete examples:

  • When customer feedback contradicts itself, don’t optimize in one direction at random. Build a small mock-up first to find out what the actual problem is.
  • When a retrospective produces conflicting signals, don’t act on either one right away. Often both sides mean the same thing, for very different reasons.

Optimize for Knowledge First, Efficiency Second

Which mode is right depends on how uncertain things are. When uncertainty is high and the risk of missing the goal is large, moth mode is the right choice: gather information before you optimize. Anna calls this infotaxis.

In practice, that means not thinking in milestones and project plans at the start, but in decision points. What lies beyond a decision point often can’t be planned properly yet. The aim is to have enough information to decide.

Once the team is on track and knows the playing field, it is time to optimize. That is when improving sprint velocity and working on the details pays off. Not before. There is no ready-made template for this. Both modes are real, and you have to decide actively which one you are in and switch between them on purpose.

Form Hypotheses in Order to Disprove Them

Work with hypotheses, but aim to falsify them. Some people avoid hypotheses because they are afraid of becoming biased. That misses the point. Quickly form a hypothesis that explains what you are seeing, and then try to prove it wrong.

The benefit shows in complex situations with huge decision trees. You don’t walk through the entire tree. Instead, you ask the questions that cut off a whole branch if the hypothesis falls. That saves a lot of legwork.

It takes courage, because a wrong hypothesis gets exposed quickly, and that can be uncomfortable for a moment. Karl Popper laid the groundwork for this approach. If your goal is, at best, to fail, you are left with whatever survives, and that is where you can go deep and optimize.

Frequently Asked Questions

Can uncertainty in software projects be eliminated through better development?

No. The idea that good development produces no bugs does not hold up in practice because systems are too complex for that. A residual degree of uncertainty always remains. With AI, malfunctions that are intrinsically embedded in the system, such as hallucinations, are added to the mix. Anyone who tries to develop their way out of this is fighting the wrong battle instead of learning methods that work with uncertainty.

How does learning from biological strategies differ from classical bionics?

Bionics copies the form: airplane wings modeled after bird wings, the lotus effect, swimsuits modeled after shark skin. That is the mechanistic approach. More interesting for projects is the “how”, that is, the strategy by which biological systems make decisions based on poor signals. What is transferred is not a component, but a process for dealing with volatility.

A single value shows a snapshot; a trend shows the direction. Chasing individual bugs yields little meaningful insight; the bug trend shows whether the situation is taking a turn for the worse or whether the team is resolving issues faster than new ones are arising. A velocity trend is often more meaningful than velocity alone because people grasp visual trends immediately.

Does a system become more robust if you avoid changes as much as possible?

No. Stagnation is not the same as robustness. Those who freeze a system instead of adapting it consume their resources in place and lose out in the long run. Here’s an analogy: A bacterium that stops moving consumes all the sugar in its current location and dies. Movement here serves primarily to generate information.

What should you do when faced with conflicting customer feedback or conflicting signals during a retrospective?

Don’t optimize one of the two directions at random. With customer feedback, it’s worth starting with a mini-mock to analyze the actual problem. In the case of conflicting retro signals, neither option should be implemented immediately: Often, both sides mean the same thing but are focusing on entirely different underlying causes.

How can I tell whether my team should gather information or increase efficiency?

Uncertainty and risk are the deciding factors. If uncertainty is high and there’s a significant risk of missing the goal, the rule is: gather information first, then optimize. In this case, you think in terms of decision points rather than milestones and project plans. Once the team is on track and knows the playing field, sprint velocity and detailed work are what count. There’s no one-size-fits-all template.

Doesn’t hypothesis-driven work lead to bias?

This concern misses the point as long as the goal is to disprove the hypothesis. It makes sense to quickly formulate a hypothesis that explains what you’ve observed and then actively search for counterevidence. In large decision trees, a rejected hypothesis cuts off an entire branch. That takes courage, because your own mistakes quickly become apparent in the process.

Share this page

Related Posts