A friend of mine at IBM Research told me the following experience from his early career.
He was hired to join the MVS development team in Poughkeepsie (or Endicott?) right out of school.
He got the "new kid" assignment - maintaining the JCL interpreter. 500K lines of H Assembler (might have been G Assembler ... disremember).
The job was to take bug tickets, analyze them, and respond with either a fix or a rejection.
After a bit of this he thinks to himself, "Self, this is a programming language, but badly implemented in assembler with lots of copy-paste crap." He had studied computer science in college, so he knew something about compiler implementation.
So he builds a set of parser tables using what he learned from the Dragon Book and implements a new JCL interpreter in PL/1 (or PL/S?). About 20K LOC.
The new JCL interpreter is faster, though that doesn't really matter. More importantly, it also closes hundreds of bugs that arose from the fact that many of subcommands had suboptions with variant implementations, even though they were *supposed* to be the same suboption.
So, come annual review time he gets the most negative possible score. Why? Because he produced -480K lines of code.
So he transferred to the Research Division where his skills were more valued and where I met him.