A co-worker shared this blog post from the Advent calendar. It makes sense, organization complexity is the best predictor of bugs. Also also interesting, low code coverage is crucial and not enough to find bugs.
In my experience, organizations that are highly bureaucratic tend to be slower moving and have significant burn out for developers. It seems like a downward spiral. The more bureaucratic, the more developers leave, and the more different developers touch the code. As organization complexity grows, the more bugs that are created the more an organization wants to stiffen its processes.
I can see how microservices really help reduce organization complexity. Ideas from large companies like Amazon, where it’s “two pizzas per team” and no more. Or “your build, you run it” to increase sense ownership in products. Or theories like “Conway’s Law” that imply how small vertical teams enable microservices.
In a way having small teams within a larger organization, helps teams reduce the organizational complexity.
- By reducing the number of developers working on the code
- Decreasing the distance between the decision maker on the product and the developers
- Increasing the sense of ownership and clear sense of purpose within the team
No wonder microservices are aimed to increase business value. Compared to highly bureaucratic organizations with large software teams, microservices are a much better alternative.