Microservices, love them or hate them, they are a concept that does allow a humongous project to be divided into smaller manageable duties. This is a perfect approach for software development because it allows autonomous teams to work faster, reducing the management of red tape and bureaucracy. It's a simple statement, but when tasks are split into their simplest form, they are easier to complete. Teams can focus better, innovate better, work closely and be motivated by their speed and empowerment. But what are the subtle benefits software developers stand to gain by using microservices?
"organisations which design systems ... are constrained to produce designs which are copies of the communication structures of these organisations" - Conway's law.
This is one of the main reason organisations are moving to microservices but what benefits does this give?
It allows a very large project to be segmented, worked on separately and the components brought together during implementation.
Different departments or capabilities do not have to wait for others to complete their task prior to designing, constructing and re-iterating their part.
It decreases bureaucracies because there is a massive amount of ownership placed on the service team - "you built it, you own it".
Teams can use the technology they want to achieve the task.
However, we believe the most important benefit you gain from the microservice approach is clarity and simplicity.
Teams thrive when they understand the task and its defined with clarity and simplicity.