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.