3 ms·
I think the key here is to make sure you minimize these costs. For example, if you decide to make a microservice every time you want some independently-useful
by jrockway 4y ago
I think the key here is to make sure you minimize these costs. For example, if you decide to make a microservice every time you want some independently-useful feature, you'll have to set up CI, get a domain name, get an internal cert, get permission to route packets at production priority, have a privacy review, get a launch review, etc. If that's the org, then you never want to be making a microservice. Shove everything into your monolith (and hey, maybe let other teams do that too and share some of the operational burden). Be adaptable; find the processes that are time consuming and make sure that you only go through them once. Make sure that if you impose process, it has value.
The other side of the coin is that all these processes exist for a reason. If an outage costs you a billion dollars, it's financially great if you're filling out paperwork and having meetings instead of checking in features that break production.
The key is to be adaptable. Observe what is a necessary waste of time, and get it done and out of the way. Observe what is an unnecessary use of time, and work around it. And, accept that you can't always win. Sometimes it's socially imperative to do something that's objectively a waste of time (status meetings), so you have to do it.
(Why do they make it so hard to get work done at big companies? No idea. I could never go back. Not being productive at work isn't worth the extra money they pay you. Kind of sad when you think about it.)