On Accountability in Software Development

  1. Variation in production processes
  2. How to tackle variation in software delivery

Variation in Production

You can expect variation in any production system, and it won’t be different in technology.

What about Software Delivery?

Variation is especially important in software delivery. It is a field where expected (common cause) variation is quite high. Software is naturally complex.

Why is it a challenge?

The chart above is easy to understand. But in practice, when there is tension about delivery, it’s easier to find simpler causes. Causes which can create a push for more predictability.

What’s the alternative?

This is not to say that teams should not aspire for predictability. They should and need to, after all we do work within business constraints.

  • Establishing better quality: Automated regression testing, continuous integration and deployment, alerting. These are all ways to safeguard development and make it easier to spot problems. With that reducing the complexity of delivering new code.
  • Reducing code size and complexity: Taking time to simplify the system. Refactoring, splitting your system in smaller parts, removing unused code and features. All those make the system less complex and more predictable to work on.
  • Simplifying solutions. Productive product teams focus on the customer problem they are trying to solve, iterating on the solution. It enables more effective technical solutions that reduce the rate in which complexity increases.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Francisco Trindade

Francisco Trindade

848 Followers

Born in Brazil. Living in NY. Engineering at Braze. Previously Meetup, Yourgrocer.com.au (co-founder) and ThoughtWorks.