In my previous two blog posts, I explored two principles that are at the heart of DevOps: systems thinking and amplifying feedback loops. In this post, we’ll discuss the third and final principle, a culture of experimentation and learning, which is the direct and most compelling effect of the first two principles.
The third principle is about empowering the business by creating a culture of learning that promotes experimentation and rewards taking calculated risks. The successful implementation, and the resulting improvement or delivery of new value chains, will boost confidence over the control of the entire system and consequently the business.
Microservices help create this culture in two important ways. First, since microservices are self-contained and decoupled from one another, the impact of changes and their associated risks can be assessed with much higher precision than in traditional enterprise application architectures. Second, the relatively low cost of resources required to change or create a microservice encourages experimentation.
Fast and cheap delivery of features and independence of deployment allow for inexpensive and low-impact experimentation. New processes can be set up and, if necessary, dismantled with few upfront costs. The data collected during these experiments is precious in helping to decide to continue in one direction or steer in another. Coupled with the introduction of feedback loops, advanced techniques like A/B testing are suddenly within reach and can drive real innovation at the business level.
Small Tests, Big Impact
In support of these claims, let’s take a look at the Accelerate: State of DevOps report, an annual study that analyses more than 30,000 surveys correlating the impact of cloud adoption, organizational practices and culture on software delivery performances.
Starting with the 2017 survey, the team behind the report started analysing whether architectures like microservices have an impact on software delivery performances. The results suggest that the biggest contributors to the ability to deliver faster and with a lower change failure rate are whether teams can:
- Easily make large-scale changes to the design of their system without depending on other teams or creating significant work for other teams
- Deliver changes without coordinating with people outside of the team
- Test and deploy their product on demand without requiring an integrated test environment—and during business hours, with negligible downtime
In other words, architectures and teams in high-performing companies are very likely to be loosely-coupled and independent from one another. These characteristics support the ability of teams to get their work done—from design to deployment—without requiring high-bandwidth communication between teams.
Microservice architectures, when implemented successfully, exhibit these very characteristics.
While safeguarding the performance and stability of the overall system thanks to feedback loops that deliver information about the system itself where needed, innovation can advance at a varying pace, comfortable for each team. Ideas that work for one team have the chance to be transferred to the rest of the organization but don’t require baroque coordination to be implemented and tested.
Adopting microservices architecture helps a company to communicate more naturally and efficiently, in a way that aligns with the nature of the business itself. This concept is captured by Conway's Law: ‘Any organisation that designs a system (defined broadly) will produce a design whose structure is a copy of the organisation's communication structure.’
Moreover, the findings in the Accelerate: State of DevOps report suggest that an ‘inverse Conway’s Law’ is also arguably true: in order to improve their performance, organisations should evolve their teams and organisational structure to achieve the desired architecture.
We can conclude that the adoption of microservices has deep relationships with organizational culture and structure. Arguably, microservice architectures optimise the information flow inside the organisation by delivering it to the right teams, on time. These teams are then empowered to make decisions independently and implement well-informed changes, shortening the feedback loops and increasing the pace of innovation. All this, ultimately, propels the business forward.
For a deeper dive, see below to request our white paper, “Microservices for Managers.”