Yeah, such management is bad and found in multiple places.
Personally I still prefer those to new developers entering the labour market with strong beliefs that the language and tools they used in school will magically solve all issues and then enthusiastically go on and start rewriting all old code. And because they can't be bothered to research business logic or feature requirements, as soon as they run into challenges that their new tool/language won't magically solve, they immediately limit the scope and end up with "new" versions of applications that runs a new codebase but is worse that the old in all ways .
By the it is time to move on to a new employer, leaving all the issues, feature gap and extra layer of maintenance behind.
Oh totally agree on that one. Here's a typical story.
We have a chunk of software which was written circa 1997 in Visual Basic by someone who knew what they were doing. This was very carefully engineered as a verbatim port of something off AS400 written by someone who knew what they were doing. This is a mathematical process which MUST produce a balanced output applying a number of rules and a large volume of data. Over time the dataset has increased from 5,000 things to about 27,000,000 things and the number of rules from 25 to 2,750. If anything is slightly off, we get in deep poo poo. This handles a few tens of billions of dollars worth of numbers to give you an idea.
Roll on 27 years, we have had the following things happen:
- When C# came out, contractors were hired to rewrite it. They rewrote it as a chunk bunch of DataTables which blew the RAM on the machines we had them and also did not balance. They left and were paid.
- About 5 years later, someone apparently competent came along and wrote a complex constraint network driven rules engine in C#. They coded themselves into an algorithmic scalability corner resulting in the job taking 2 hours and left blaming us.
- VB6 was deprecated so we had a mass panic and hired a contractor to port it verbatim to VB.Net with lots of cut, paste and test cases. He left after taking up smoking as a hobby. It limped along next to the old version and any weirdness was fixed by me over the space of a whole year.
- A couple of years later, a new outsourcer was thrown at it. They ran it through a language translator which converted it to C# and charged us a small fortune for lying about the job being a rewrite.
- About 3 years ago, one of our new architects was all over the JavaScript ecosystem like a seagull on chips, so he got his best two guys to try and rewrite it in nodejs. They have zero mathematical knowledge of even basic things like rounding and as I'm sure most people are aware here, the type system in JavaScript for numeric types is a disaster. End game, they could never get anything to balance or run reliably and both the architect and the two developers left.
- 2 years ago we paid a contractor to port it to .Net Core, shovel it into docker and kubernetes where it now has to fire up a dedicated node every time we run it, which takes 4-5 minutes to start then the job takes 20 minutes to run.
It's all crap. Must have blown half a million dollars on it by now.
I'd rewrite it in Go and it'd work, because it'd be roughly a copy and paste, but I can't be bothered as I like an easy life.