Steph Egan presented at QCon London the five principles the BBC is following to enable their teams to improve the development and release processes. They saw the mission of their team to be similar to that of productivity apps: to provide more clarity in thought, improved productivity and enable a more joyful professional life. Egan shared techniques, challenges and learnings from their team’s journey, with the major takeaway being that the principles have almost nothing to do with the tools themselves.
She doubled down on this statement by quoting Fred Brookes - No Silver Bullet: Essence and Accidents of Software Engineering:
To set the framing, they underlined that BBC engineering space is more than just radio and TV streaming. Each distributed team is autonomous and responsible for infrastructure, technology decisions and deployments. In what followed, they provided a deep dive into each of the principles.
We share knowledge and make things which could be improved, visible
One of the key parts of enablement was improving the practices and knowledge. As open-source licence compliance was one of the areas with the lowest awareness within the development team, they started their journey from there. Rather than enforcing governance and having failed builds, they focused on getting the teams to understand why it is important. In Egan's words:
We left teams in control of their builds and focused on educating them on what licencing means, what situations can be problematic and how to handle them. We put all the decision-making in their hands and respected the decision that they made.
The enablement team worked as consultants, making sure each team got what it needed. The extracted wisdom for the principle:
- Provide information over rules
- Bring information to teams via tools and workshops
- Provide hands-on support that teams can call on
We build and foster communities and relationships
Understanding where teams are having problems is key to helping them solve them. To accomplish that, they created an organisation-wide community of practice around development and release practices. The community has multiple mechanisms, including presentations, discussions and retrospectives. Both sides benefited from the open communication channel.
Besides engagements on broad topics, the organisation created guilds where individuals can experiment with different technologies and practices. The guilds provide more of a future-oriented focus on where the teams want to go next. The recommended techniques to be used:
- Regular knowledge-sharing communities
- Cross-team communities for in-depth learning and exploration
- Be visible where other teams are
We respect other teams’ time and uniqueness
To ensure that the teams get what they need, the enablement team started by understanding the initial pain points. Among others, the consumers of the tooling complained about long documentation that had to be read, tools that did not work out of the box for their particular need, or the use of terminology or jargon that was hard to understand. At points, some teams built their tools. Building on top of their learnings, they are using now the following guiding techniques:
- Remove ourselves as the bottlenecks
- Excellent documentation
- Keep what teams interact with simple
- Provide a variety of options to accommodate other teams
We radiate a sharing mindset through collaboration
More than having teams building their tools, they wanted to have further support from around the organization. The tools became internal open source, to which anybody could contribute. To encourage this, proper documentation about contributions was put in place, together with the guidance to merge any pull requests from the teams. The techniques around these principles boil down to:
- Prioritise contributions to anything we build
- Work with other teams doing similar things and make an effort to tie things together
- Support and encourage usage of other teams’ tooling
We aim for long-term improvements
Initially, the team worked on quick wins to gain support, but the engagement was not always positive. Currently, they focus on a blend of short and long-term improvements, making sure that the teams will receive the support when they most need it. They manage to prioritise and balance between the two by using the following:
- Measure a project's success over longer periods
- Keep records of your progress and review it to smooth out the rollercoaster
- Tackling the bigger picture tends to bring more success - there probably aren’t any quick fixes
The presentation was closed with the same quote from Fred Brooks:
There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.
Egan suggested that establishing and sharing principles throughout an organization can have a lasting impact.
They concluded that even if the silver bullet is yet to be found, the techniques mentioned focused on collaboration and respect and have proven to be effective in moving the organisation forward.