DevOps: From silos to service-centric teams
Since October 2015 I have been part of the Atos Scientific Community and, in that role, I have been working with my colleagues towards the publication of Journey 2020. In Journey 2020 we decided to detail some of the challenges that large traditional organisations can face when trying to adopt DevOps and, in doing so we ended up making a reference to Conway’s Law:
“Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”
So how is this law, identified by Melvin E. Conway over 45 years ago, relevant to DevOps today?
DevOps promotes smaller, more frequent releases of software into production. To achieve this at scale we see the microservice architectural style as an important enabler, because individual microsevices can be deployed independently of each other. This is because each microservice is a full-stack application which includes any required data-storage, middleware and other software components that it needs to operate.
Now imagine a highly siloed organisation, in which teams are organised around technical specialties. Perhaps you have a database team, a middleware team and a front end team. Applying Conway’s law we see that the application architecture will tend to mirror this structure and so we end up with large database, middleware and front-end components. Usually, delivering new functionality will require changes to all three, therefore needing coordination between all three teams and usually a single (big) deployment.
To scale DevOps we see a need to build teams around the business requirements that need to be met (something we call autonomous cross-functional teams). Once organised in this way, teams will naturally tend towards a microservice architecture which, in turn, enables more frequent delivery of smaller increments of software. But the benefits do not stop there: this structure promotes the autonomy and accountability of each team to deliver business value. It enables incentives (both implicit and explicit) to be aligned with this delivery of business value. And if you are wondering how to manage teams structured in this way, Enterprise Service Planning is proving to be a successful approach.
Of course, organisational structure is not the only challenge that can be faced when trying to implement DevOps, and in Journey 2020 we describe the other areas that we consider critical for success as well as looking at how we think DevOps is set to evolve into the future.
Nonetheless, the perhaps surprising fact is that Conway’s Law, an observation made before the invention of the Internet (let alone the arrival of Cloud and Containerisation), still provides an extremely valuable insight for any business looking to implement DevOps at scale.