Delivery is King

Improving Software Delivery

Photo of author

By David O'Donoghue

The Power of Flow Metrics

This article is the fifth in a series of related articles that started with Engineering Leaderships Biggest Challenge – Friction with Business Stakeholders. In the previous four articles, I frequently discussed topics that hinder engineerings ability to improve software delivery in organisations. Recognising that many of these issues stem from broader business decisions and not the engineering team, I highlighted the necessity of making these issues transparent and effectively communicating them to stakeholders with the help of flow metrics. 

One of the key motivations behind the development of Delivery Flow was to equip engineering teams with the ability to identify the source of delivery performance problems. When stakeholders voice concerns or dissatisfaction with the frequency and volume of deliveries, these delivery insights enable engineering teams to effectively “push back”. The data illustrates that numerous delivery challenges are often the result of demands or decisions made by stakeholders, rather than originating within the engineering team itself. Sharing the data appropriately removes negative delivery perceptions and cultivates a sense of collective responsibility for resolving such issues.

Nevertheless, it is essential for engineering teams to approach delivery concerns with careful consideration. Contemplate the possibility that the frustrations expressed by business stakeholders may indeed be justified; their perceptions regarding insufficient delivery could be accurate, and the underlying issues may stem from within engineering. Gaining insights into the performance of your delivery system and identifying areas that require enhancement represents the most effective strategy for addressing these concerns.

Dealing with Business Stakeholder Frustrations

Hearing colleagues question the effectiveness and competence of the engineering team can be disheartening. Even worse is when criticisms are not aired directly and frustrations between groups start to fester. As an engineering leader, it is essential to navigate this challenge proactively. Here are some steps you can take to help prevent these issues.

Develop Your Data

Instead of feeling defensive about such suggestions, engineers should embrace them. We need to regularly ask ourselves: Are we truly being effective and efficient? This introspection should be part of our daily routine. Ideally, we should have access to flow data that allows us to form fact-based arguments. If that data is unavailable, stay calm, maintain an open mind, and start taking proactive steps to develop your flow data. Meaningful insights will follow. 

Own the Problem

When faced with delivery concerns, it’s essential to take responsibility. Ideally, engineering identifies and communicates the issues before stakeholders become aware of them. This requires a proactive approach to assess the current health, efficiency, and effectiveness of your delivery system and nothing does this better than the subjective insights delivered by flow metrics. Without data, you are dependent on your interpersonal communication skills and your ability to negotiate with stakeholders effectively. These skills are hugely valuable but showing issues and subsequent improvements via data is so much stronger than by word of mouth. If you do this, you shift perceptions away from “Delivery is slow” and highlight engineerings commitment to continuous improvement instead.

Solve Engineering Issues First

It’s essential not only to avoid negative perceptions but also to foster positive ones. Before addressing the issues that require support and input from the business, I strongly recommend tackling the problems that are in-house engineering issues. Flow Metrics can help you to identify and categorise these issues. While there may be some exceptions to this statement, it is generally advisable to show that the engineering team is proactively addressing its internal challenges before tackling issues that require broader ownership. This approach minimises the leeway available to those outside engineering when the time comes to tackle the issues where stakeholders are part of the problem and the solution.

Reduce Waste

Typically, our processes contain significant waste. When it comes to improving software delivery, reducing waste is a significant strategy that is often overlooked. I frequently encounter teams with a flow efficiency score below 50%. This means that on average, after work has started on an item in the delivery system, that item spends more than 50% of its time sitting idle. That is, nobody is actually working on it for that time. There are various reasons why this can happen. There may be too much demand relative to the capacity of the team. Architectures, team structures and processes may be creating excessive dependencies. Ideally, you should be reducing or removing waste, queues and dependencies within your delivery system. In order to do this you need to be able to identify these issues. Measuring how work flows through your delivery system is the best and most effective way to discover these problems. 

Smaller Deliveries More Frequently

Delivery builds trust and removes friction with business stakeholders. Therefore, the more frequently we deliver, the more trust we are building. Break work up into the smallest meaningful deliverables and deliver this work independently. Rather than waiting for everything to be done, smaller deliverables create a strong sense of activity and progress towards a goal. They also reduce average cycle time and place value in the hands of customers sooner.

There are many additional reasons why working in smaller batches delivers significant benefits such as accelerating feedback, reducing risk, reducing overhead and increasing motivation. I will refer you to Don Reinertsen’s excellent book, The Principles of Product Development Flow for more details on the benefits of working in small batches.

Processes & People

When we need to achieve more delivery, business stakeholders may suggest that we can “Deliver more by doing more”. Another common response is to throw more people at the problem. As we seen in When Engineering is a Black Box and Balancing Delivery Investment, these approaches seldom provide the desired outcome. Another frequently asked question that emerges when we try, but fail, to deliver more is, “Do we have the right people? There is nothing wrong with this question provided it is asked after process problems have been identified and fixed. Bad processes negatively impact peoples motivation, performance and their ability to improve software delivery in your organisation. Fix your processes before you try to fix your people.

Conclusion – Delivery is everything

This may seem obvious but it is worth stating anyway. Nothing removes frustration and builds trust between engineering and business stakeholders like delivery. The more you do it, the less likely you are to experience negative perceptions from your business partners. This is obvious, right? But yet, it still amazes me how many times I see engineers get in their own way when it comes to improving software delivery. As a group of people, we tend to seek perfection. We can be dogmatic about our craft and find it hard to make pragmatic trade-offs. 

Ultimately, we are judged on our ability to deliver. Understand how work flows through your process on the way to delivery. Then you will be in a position to engineer solutions for optimal results and maximum delivery. The big picture is simple: 

  1. Understand the current performance of your delivery system using flow metrics. 
  2. Know the location and cause of current delivery issues. 
  3. Make a plan to improve.
  4. Execute the plan.
  5. Go back to step 1 as issues may change and evolve over time. 

Just achieving step one greatly enhances engineerings ability to tackle negative delivery perceptions. Achieving all five steps creates a data driven, continuous improvement, feedback loop that leaves no room for negative perceptions or frustrations. Instead, it creates an environment where engineering and stakeholders invest together in a delivery machine that can drive the future growth and success of your organisation.