It’s 2018, everyone talks about micro services, devOps, and all these cool stuff. But as we all know, and as I like to say, life is not perfect. Implementing micro services has its pros and cons, today we’re gonna talk about the cons, but not the technical ones. As usual, my posts are short, but direct to the point.
Imagine you are working for a company which has a legacy and the order is to move to micro services. Perfect, right?
Implementing micro services is like implementing agile in an organization. People, including higher positions, must adhere the mindset, it’s a matter of culture. It doesn’t work if you want to implement agile and think waterfall.
Working/rewriting with legacy is always a big challenge.
First thing to do is to know what’s more important and rewrite these things isolating the legacy. You cannot create something new/better, and bring shitty stuff together.
Whenever you are rewriting something, you want this micro service to be reused, so everyone can take advantage of the new micro service and now you have one source of truth. For example, I’m creating a new micro service to do something, from now on, I want everyone else to use it, and I want everyone else to stop looking at the legacy.
But what really happens for organizations that are not mature enough, is:
- Different teams create different micro services that do the same thing— “I need a new micro service and I’ll create my own”;
- Micro services are not reused;
- New micro services are not properly communicated between teams;
- Teams don’t know how to deal with versions;
- People don’t understand that legacy specific data must be cut;
- People don’t adhere the mindset of isolating legacy;
- Different teams don’t communicate with each other;
- Politics overcomes what’s really important;
- Projects have short time, teams are overloaded, unsatisfied and tired;
- Quality is compromised;
In other words, don’t do micro services unless you are really prepared for that, unless your organization adopted the culture. Of course committing mistakes is part of the learning process, fail fast. However persisting doing it wrong is stupidity. We need to learn from the problems that happened, and bosses must look forward for learning and supporting teams.
“Insanity is doing the same thing over and over again and expecting different results.” Albert Einstein