It’s hard to imagine worse advice. Software design principles lead you to good architecture. Focus on autonomy, proper partitioning, and sound design and you get what you get. If you target monoliths out of some misguided attempt to reduce cognitive load, you will only create unnecessary entanglement. If you try to target “microservices” with N services per team or other arbitrary target, you will end up missing boun…
Just read the author’s bio. This is a person that appears to have zero software design experience writing an article telling you to ignore software design and just respect your team configuration. I call this Conway’s Confusion.
It's not microservice or monolith; it's cognitive load
21–30 of 195 posts
Re: It's not microservice or monolith; it's cognitive load
#22Earlier quoted context omitted.
Just read the author’s bio. This is a person that appears to have zero software design experience writing an article telling you to ignore software design and just respect your team configuration. I call this Conway’s Confusion.
The entire purpose of microservices is to comply with Conway.
Re: It's not microservice or monolith; it's cognitive load
#23I used to complain about overly complex software, until I realized the problems themselves were very complex. There was/is no way around complexity, and pushing for early simplicity causes more problems than it solves. People need to accept that encoding 1,000 if else statements (software engineering) will be complex no matter how you spin it. Just design the software upfront for what you will need, like a profession…
We call that waterfall :)
Re: It's not microservice or monolith; it's cognitive load
#24I see. So, RAID drives, failover servers for redundancy, and generators (or at least UPS batteries) for power — but push your team to their maximum load.
Re: It's not microservice or monolith; it's cognitive load
#25I used to complain about overly complex software, until I realized the problems themselves were very complex. There was/is no way around complexity, and pushing for early simplicity causes more problems than it solves. People need to accept that encoding 1,000 if else statements (software engineering) will be complex no matter how you spin it. Just design the software upfront for what you will need, like a profession…
And it can be really hard to tell the difference
Re: It's not microservice or monolith; it's cognitive load
#26It's pure vanity for a startup to think they will become the next AWS by adopting hard service-based contracts between teams.
Re: It's not microservice or monolith; it's cognitive load
#27Earlier quoted context omitted.
Just read the author’s bio. This is a person that appears to have zero software design experience writing an article telling you to ignore software design and just respect your team configuration. I call this Conway’s Confusion.
The entire purpose of microservices is to comply with Conway.
Re: It's not microservice or monolith; it's cognitive load
#28I used to complain about overly complex software, until I realized the problems themselves were very complex. There was/is no way around complexity, and pushing for early simplicity causes more problems than it solves. People need to accept that encoding 1,000 if else statements (software engineering) will be complex no matter how you spin it. Just design the software upfront for what you will need, like a profession…
> Just design the software upfront We call that waterfall :)
Re: It's not microservice or monolith; it's cognitive load
#29Earlier quoted context omitted.
i work in legacy code over abstraction gives more headaches than having to check manually when you need to change the software and the person who write it isn't in the company in the last five years, because the software is full of constrains that you don't known, and when you need to change something basic the whole software collapse(because of the interdependence of the componentes).
Right but thats just bad programming. If they had used no abstraction it would also be a nightmare.
Re: It's not microservice or monolith; it's cognitive load
#30The moment you adopt service based teams with service based managers, say goodbye to engineers caring about working product. Say hello to cross team meetings and project management every time you want to ship a feature. It's pure vanity for a startup to think they will become the next AWS by adopting hard service-based contracts between teams.
My current job is working with around 20 other engineers on an extremely bloated and coupled monolith. I'd love to be able to separate myself and my team from others by an agreed-upon interface.
Yes, "agreed-upon" is certainly doing some heavy lifting there, but I don't think it's realistic to expect that
> cross team meetings and project management every time you want to ship a feature
is somehow avoidable in tech?