First, a quick refresher about those terms I used.
Hang on, what ways?
If you’ve read some DevOps literature, you’ve certainly come across Gene Kim’s Three Ways, his core principles underlying the DevOps approach. These ways are
- Systems Thinking: always considering the system (e.g. your product) as a whole, not just the fraction of the whole you’re concerned with
- Amplify Feedback Loops: actively seeking out and creating feedback loops, carrying information from “right” to “left”, upstream in the development process
- A Culture of Continual Experimentation and Learning: well, exactly that: actively finding and welcoming opportunities to try new things – and accepting the occasional disappointment
And what abut that Mr Conway?
Conway’s law states that organisations always create products whoes architecture is similar to the organisational structure itself.
consider their mutual influence
This means that if you want to create an onrganisation that allows the Three Ways to flourish, you need to create an organisation that enables this.
For example, for many of my big corporate clients, any single engineer can’t know the entire prodct value stream. The system kind of disappears out of the fog of corporate red tape, the engineer and her colleagues do their part, and then the process takes the thing along to nebulous downstream stages.
… how is even the smartest engineer supposed to keep the entire system in mind under such circumstances? How is she supposed to offer feedback upstream, or accept feedback from downstream, if she can’t actually know what lies there?
Even worse, in many cases part of the value stream (operations is the typical example) has been outsourced to a separate company, perhaps half a world away. This doesn’t merely impede visibility and flow of information (the first and second ways), but it also all bot makes impossible the third way: coninuous experimentation.
After all, if the supplier has a contractual obligation, it would be against their own interest to rock the boat, try something new, risk worsening something. There’s very likely no reward for improvement, but there will be contract penalties for messing something up!
… There’s no escaping Conway
This has all been a very lengthy way of saying: if you’re serious about adopting DevOps, you’ll inevitably find that you have to rethink your organisation.