Skip to main content
Back to News
Lessons learned: Delivering software programs (part 5)

Lessons learned: Delivering software programs (part 5)

4 October 2024
  • Software Engineering

By Stephen McCarron, Head of Forecasting Engineering

This is the fifth blog in a five-part series from our Head of Forecasting Engineering on the complexities of software program delivery – and the practices that more often predict a program’s likelihood of success.

Communication

Poor communication is often a telltale sign of a struggling transformation program. And when the communication isn’t working well, it’s likely that other important parts aren’t working either.

That’s because bad communication management has consequences like limited user feedback, reduced buy-in and support from stakeholders, poor and slow decision making, inefficient builds and wasted effort.

Added to that, communications failures are often difficult to diagnose at a localised level; so being able to identify issues early is crucial.

For ideal comms, the aim is to ensure everyone involved in the project has the information they need to perform their role most effectively. There are costs associated with keeping everyone up to date – and they obviously needs to be considered too.

In this blog I’ll discuss the different paths of communication that are required and possible ways they can be achieved, along with some anti-patterns that I’ve seen along the way.

1. Outcomes and intents for delivery teams

Everyone working on the project needs to understand what they’re trying to achieve and why we’re trying to achieve it. This means not just having clear understanding as the project commences but repeating the message regularly.

Sometimes the initial intent can get lost as work progresses and micro adjustments to the teams’ thinking compound into something that can deviate widely. Therefore it’s vital to check in regularly and reiterate the message, including include any adjustments or changes that have happened in the interim.

Try to do this with the whole team, not just with one or two representatives of the team; the longer the distance the message has to carry the more chance there is of it adjusting along the way.

2. Outcome or prioritisation changes

As the project develops, goals adjust as new insights emerge. Decisions that will affect any team need to be communicated effectively and most crucially the teams impacted need to be properly consulted to ensure they continue to understand why these changes are in place so that they can continue to deliver optimally.

As with (1), repeat these messages. An anti-pattern I see is when the message is not repeated – particularly if not everyone gets it first time round.

3. Delivery teams understanding broader technical developments

Delivery teams need to be kept aware of technical decisions that are happening in parallel in other delivery teams.; particularly where this is a dependency.

Of course, not every micro decision is relevant but often there is overlap between some work that may need to happen, whether it be a common library or tool, or an innovation in a means of achieving things, or common awareness of a gotcha that has already been overcome elsewhere. This means that cross-team communication needs to work well.

There are various means to achieve this – sometimes this happens organically, other times there might need to be check-ins or showcases. Be prepared to help find new ways to make this thread work as the project continues and look for ways to know if it isn’t working. Remember the sooner any information is received the sooner teams can adjust to it.

4. Upward information for decision making (and intervention)

The program governance team needs to be aware of any issues that will impact wider delivery and be able to assist in resolving them as soon as they can. Any lag in getting this can be damaging, particularly if the issue has a wider radius than just the team that uncovered it.

There are various ways to achieve this. Typically over-bureacratic methods can be counter-productive, either being too slow or preventing direct feeds. The ideal state is where there is a channel where the teams can push information to, accompanied by a culture where they are comfortable doing so. It is better to get too much information than too little.

A pattern that can act as a safety net for this is to have regular standups with representatives from each team to discuss issues and outcomes. Note that it should not act as the single method of coalescing, other channels should still exist, and it is ESSENTIAL to have a psychologically safe environment in those forums.

5. Stakeholder and sponsors reporting

Sponsors need to be regularly engaged and kept informed of progress and costs. There will be times when, if impactful enough, decisions need to be escalated to them. More generally, being kept abreast of costs, timelines and key decisions at regular intervals will allow them to remain an important participant.

It is best to pre-agree with stakeholders how they’d like this to happen. Regular progress meetings and emails can work, but try to agree a method that allows for quick decisions on the rare occasions when they need to be escalated.

6. Customers and Users

Customers, as with sponsors, should be regularly updated on key progress and ideally given opportunity to interact with any parts that they will use as early and as often as possible to generate good feedback.

They need to be in a two-way conversation around those parts that most affect their workflows. Keeping them comfortable and happy with the outcomes that impact them will require regular showcases, releases and demonstrations, allowing for their feedback to adjust and improve the workflows.

7. Interdependencies

Where teams aren’t operating fully autonomously, slowdowns tend to follow. Proper communication between teams with interdependencies owill help reduce those slowdowns substantially.

Ideally, the bulk of the interactions here will happen as close to the teams as possible; good inter-team relationships, with regular communication is preferable to a spoke and hub model. Every extra hop in the communication path will increase the chances of slowing down and misinterpretation.

8. General comms and morale

Keep everyone informed of what’s going on; that means staff generally and certainly all participants in the project. Do these updates regularly, reiterating the outcomes. You cannot over communicate here.

Keeping morale and momentum going will help keep everyone engaged and enthused. Most projects will go through spells where things feel more difficult to achieve but keeping honest, yet positive messaging throughout will help with this. People who feel they share in the program’s success will help push it through any difficult times.

And to help with this, take every opportunity to celebrate success, regardless of how small it might seem. That can take many forms, from calling out the success, to lunches, cakes and doughnuts.

Lessons learned: Delivering software programs (part 1)

“Achieving alignment and clarity on the goal of a project allows everyone to make better decisions, decisions that align best with the outcome.”

Catch up on part one

Catch up on the rest of the series!

1. Alignment on outcomes

Ensuring everyone is shooting for the same thing

Read part one
2. Addressing uncertainty

Removing complexities early

Read part two
3. Constant adaptation

Adjusting quickly when the state changes

Read part three
4. Compartmentalising

Breaking down problems into smaller, independent units

Read part four
5. Communicating

Ensuring everyone is up to date with the ever-changing state

Latest News

James Maynard on Prime Numbers: Cryptography, Twin Primes and Groundbreaking Discoveries
  • 19 Dec 2024

We were thrilled to welcome James Maynard, Fields Medallist 2022 and Professor of Number Theory, at the Mathematical Institute in Oxford, on stage for the latest Distinguished Speaker Symposium last month. James’ talk on Patterns in prime numbers hones in on unanswered questions within mathematics and the recent developments that have brought the solutions to those problems closer to reality. Hear more in his exclusive interview with us.

Read article
Going 15 Percent Faster with Graph-Based Type-checking (part one)
  • 19 Dec 2024

Hear from Florian, Open-Source Software Engineer, on the challenges and breakthroughs behind Project Velocity, an internal initiative aimed at enhancing the .NET developer experience.

Read article
Cliff Cocks on the Origins of Public Key Cryptography
  • 18 Dec 2024

Cliff Cocks – instrumental to the development of public key cryptography during his time at GCHQ – was the first of our speakers at the latest Distinguished Speaker Symposium. Learn more in his exclusive interview with us.

Read article

Latest Events

  • Technology Innovation and Open Source

Open UK: State of Open Con 2025

04 Feb 2025 - 05 Feb 2025 Sancroft, Rose St, Paternoster Sq., St Paul's London EC4M 7DQ
  • Quantitative Research

Italian PhD Prize Award Ceremony 2025

22 Jan 2025 - 24 Jan 2025 Palazzo Madama, 00186 Roma RM, Italy
  • Data Science

Seminar: MPhil in Data Intensive Science – University of Cambridge

13 Feb 2025 The Old Schools, Trinity Lane, Cambridge CB2 1TN

Stay up to date with
G-Research