Microservices architecture has become popular over the last several years. Many organizations have seen significant improvements in critical metrics such as time to market, quality, and productivity as a result of implementing microservices. Recently, however, there has been a noticeable backlash against microservices. In this three-part article, I discuss typical antipatterns with implementing microservices, followed by solutions and suggestions for how to avoid these antipatterns. Part 1 and Part 2 discuss the many antipatterns that my colleagues and I have encountered and suggestions for better approaches. Part 3 introduces ways to quantify benefits of microservices.
Part 3: Quantifying the Benefits of Microservices
When done right, microservices can offer significant, quantifiable benefits. Here I describe the benefits of microservices architecture and translate them to quantifiable business metrics, specifically by looking at critical metrics and the impact microservices can have.
But first let’s look at some real-world numbers resulting from successful microservices implementations that we have been a part of:
- Employee Engagement – increased by 20-50%
- Time to Market – reduced from months to days (or even hours)
- Production Incidents – reduced by 50-80%
- Productivity – improved by 20-50%
- Utilization – increased by 2-3x
- Cost to Maintain – reduced by 30-80%
- Non-Labor Cost – reduced by 20-50%
Two other areas are worth mentioning: customer satisfaction and business KPIs. While we do not have concrete numbers to share, we have seen significant improvement in both areas on a case-by-case basis, each company having their own ways of measuring these areas.
In order to quantify the benefits of microservices, we need to establish metrics that are critical to software organizations, then see how microservices architecture impacts them.
Below are the most critical categories of metrics for software organizations, followed by concrete metrics that can be utilized:
- Business KPIs (Key Performance Indicators) – business specific metrics, such as conversions, revenue, etc.
- Customer Satisfaction – NPS score or equivalent
- Employee Morale – employee engagement score or equivalent
- Time to Market – hard to measure directly. Often, proxy metrics are used instead: age of code being deployed to production, frequency of production deployments.
- Quality – production incidents, production availability
- Productivity (cost of unit of work to implement new functionality)
- If projects are monetized – Cost to Implement (primarily, labor)
- If projects are not monetized – a proxy metric of Utilization (percentage of time spent coding vs. other activities)
- Cost to Maintain – cost to maintain existing functionality (primarily, labor)
- Non-Labor Cost – cost of servers, software, etc.
Note that these are outcome metrics: they should be used to measure ongoing health and impact of initiatives, and not as execution targets.
Impact of Microservices
Microservices, when done right, can significantly improve critical metrics:
- Non-labor cost improves as physical resource utilization is right sized, and commodity hardware and cheaper software are used
- Cost to maintain improves because smaller/simpler services are easier to evolve and maintain and because the quality of these services is better
- Productivity improves as churn is decreased due to decentralization/decoupling, development teams closely collaborating with business, and automation
- Quality improves due to simpler code, smaller scope of changes, technical excellence practices, automation of software delivery and operations, resilient and scalable architecture
- Time to market improves due to decentralized execution and automation of software delivery
- Employee morale improves as people spend more time on meaningful, value-producing work and from working on small stable teams with a sense of ownership and purpose
- Customer satisfaction improves due to improved quality and improved flow of valuable features stemming from development teams collaborating closely with business
- Business KPIs improve with customer satisfaction and due to business learning and adjusting faster to market conditions
Quantifying the Impact
In order for businesses to make investment decisions about microservices architecture, they need to be able to quantify its impact in terms of financial metrics – primarily, cost and revenue.
While some metrics can be used directly – Non-Labor Cost, Cost to Maintain, Productivity, Business KPIs – others require translating into financial metrics.
The following financial metrics can be used to measure the impact of the remaining metrics:
- Customer Satisfaction – Revenue per Customer, Cost of Customer Acquisition
- Employee Morale – Revenue per Employee, Cost to Hire
- Time to Market – Cost of Delay
- Quality – Revenue per Customer, Cost of Customer Acquisition, Cost of Downtime
Microservices has been experiencing a lot of press lately – and for good reason. It’s a powerful tool that, when done right, can have a significantly positive impact on critical metrics. In this series, I hope to have made clear that the benefits must be balanced with the risk, complexity and investment necessary to do it right. Too often businesses seek out shortcuts to implementing microservices architecture and are surprised by the problems that arise and the unintended outcomes. Doing microservices properly requires investment in architecture, delivery, and organizational models – and now you know just how to do these things in a way that will yield real and positive business outcomes.
Thank you to reviewers and contributors to this article: Matt Lancaster, Paulo Villela, Ryan Keawekane
The author Stas Zvinyatskovsky will be hosting Agile Amped podcasts at the upcoming Deliver: Agile conference in Nashville.