But opportunity cost might not really turn out to be a real factor.
Code is a liability, we only would like to think that our code is worth keeping, but the reality is it drags us down by definition: more code requires more manpower to support, this is objective truth.
In the old system a lot of things were really slow. I know that now half year in we already have a couple of problems solved that required me and a small team’s half a year work to solve and right now Im working on a problem that almost was not solvable at all before, I’m planning it infractructurally solved by the end of the year.
Other teams say they threw away a lot of grabage that grew with the old implementation and kept only “the good parts”.
A lot of work done by the teams is now offloaded to the infrastrucutre.
We have remote IDE for everyone from day one instead of build-inside-docker-do-what -you-want because old build system could not be and never was thrown away overnight.
Fixing the interface boundaries is a strong case for it despite all of the downsides (mostly opportunity cost, I'm thinking).