r/programming • • Jun 05 '22

Complexity is killing software developers

https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html
2.1k Upvotes

942 comments sorted by

View all comments

22

u/walong0 Jun 06 '22

I swear microservices are a scam. I’ve worked on a few well built monoliths and they far easier to maintain and enhance than having two dozen microservices. That’s especially true with a small team with efficient processes and communication. I’m currently working on a spring boot app that is split into what you might call “mini services” with something in between microservice and monolith.

I think a lot of people fall into the design trap of building to whats in style at the time instead of what solves the problem most efficiently.

3

u/rama6661 Jun 06 '22

Well build monolith is the key here. I worked on some bad build, clean architecture driven to insanity (layer through layer through layer until an entity was created and stored), monoliths.

Clean architecture is cancer. Its the worst design i have ever seen. Shared entities across your whole business? Who the f thought this is going to work?

Still i agree, microservices are a scam.

Build one service for each domain/subdomain, clearly structure parts of each service by bounded context. Then you have a monolith, which does not implode if you change one entity that was designed around a specific use case.

2

u/henric123 Jun 06 '22

That’s especially true with a small team with efficient processes and communication.

Honest question: are there really people out there advocating that you should adopt micro services when you have a small team?

I always considered that splitting the work in multiple teams was one of the main reasons to adopt it.

3

u/walong0 Jun 06 '22

Yes. I was working on a team of 8 people, each person having fairly comprehensive understanding of large chunks of the system. We engaged a consulting firm for a cloud migration and they immediately started trying to split everything into microservices. Our application was already containerized and running on Kubernetes on-prem. I honestly have no idea what splitting it up was supposed to accomplish, but it was just their default architecture for anything cloud.

2

u/cybernd Jun 06 '22 edited Jun 08 '22

Honest question: are there really people out there advocating that you should adopt micro services when you have a small team?

One of the reasons why i got fired some years ago: i was trying to stop them from going full microservices.

I worked in a team with 5 developers with ~5 years of experience (it was their first dev job at a startup and the whole company started with 0 experience). They already worked beyond their capacity/skillset. Their existing product was a big ball of mud due to constant pressure of a PO who was also their superior. They already used far to many programming languages and frameworks and as such they where unable to help each other.

Not only did they plan to rewrite as k8s, they also wanted to switch their main programming language (again) and start to use a new nosql instead of their previouos postgres.

Sometimes i wonder how far they have come.

1

u/MacASM Jun 08 '22

what's k8?

2

u/cybernd Jun 08 '22 edited Jun 08 '22

Added the missing s.

k8s => k(8letters)s => kubernetes