Maintenance and Advantages of Microservices

MicroServices

It makes it possible to onboard new developers faster because they have far less to learn to be an effective end.
It minimizes the risk of rather than just a few scattered individuals, has concentrated expertise.
if you need expertise in a particular area, it’s easy to find for a microservice team working in this way. The team’s effectiveness is boosted because
they can make the isolated architectural decisions that make the most sense in their narrowed context.


Often in a monolithic codebase, there’s pressure to make the patterns and abstractions consistent across the entire code base,
forcing a one size fits all mentality that may not be appropriate By narrowing a team’s focus. They can make decisions
that make sense for them and isolate the impact of those decisions. There’s no pressure to force solutions to each unique
problem into existing patterns. And there’s no pressure to consider if the next new technique might need to become the new right way for everything.

Teams working in this wake and self-organized making the decisions that make the most sense for them without needing to acquire
permission or buy-in from the larger organization. Also, isolating teams create efficiency in the way that each team manages
their work. Some teams may maintain micro Service with strict performance constraints when their service breaks. It’s an emergency.
In the global Mantex case, all 80 developers are exposed to those kinds of emergencies because the entire application is centrally managed.

The unfortunate part of that is that those developers are exposed to those emergencies, even if they don’t have the skils, experience, or
context to help address the problem in those emergencies. Fast response time is crucial in other areas of global Mantex. Much of
the work requires a deep understanding of data and analytics. We’re analyzing images for inappropriate content, using natural language processing
to identify potentially threatening speech and tuning the advertising relevance algorithms require careful analysis and a slow, methodical workflow

The firefighting way of working in the former case on the left, where quick response time is more important than having the best answers.
is very different than the deep analysis workflow of the ladder on the right, where it’s appropriate even preferred to take extra time to get.
The best answer is possible. By isolating teams and their respective domains of responsibility, those teams can self organize with the
appropriate processes and tools for their respective styles of work. And if your organization can become more effective
when organizing their software, development efforts into microservice is first and foremost. This creates an organization where much of the
decision making can be decentralized. The impact of many decisions can be isolated to a single microservice. And so it makes sense for
that decision making authority to be delegated to the team that is responsible for the microservice. By decentralizing decision making, it
prevents a single person or group of people from becoming a bottleneck.

Of course, some decisions have border scope in this case, those kinds of decisions should generally correlate to create a simple decision. Heuristic, if a decision requires changes to
microservice, is API or might require a new microservice, then it requires architectural oversight and guidance. And relationships between micro Service’s need to weigh in on the
decision. And finally organizing around Micro Servicej’s can boost productivity by emphasizing an environment that creates intrinsic
motivation. In his book, Dr author Daniel Pink describes three elements that are essential in creating motivation in knowledge work like software
development

The first element of Autonomy describes having control over how you do your work
The second purpose is the idea that your work is meaningful and has intrinsic value
to you. And third mastery, that is, you achieve expertise in your work. Organizing around MicroService allows us to amplify two of these three elements of
motivation by delegating decision making authority. We create autonomy, and by concentrating expertise, we create
mastery. In contrast, developing software in a monolith can often sabotage autonomy and mastery, which can have catastrophic
effects on motivation and productivity.

Read also:
Advantages of Microservices