I agree. I imagine the beginning of the end is, the agile standup/sprint process. Instead of addressing the code as a whole, we're reduced to picking at one piece at a time in isolation. No development without a customer issue to justify it! Especially the new guy.
And to come in after a couple of years of this, and find a code base that is a pile of individual pieces in a loose spaghetti wad, is so absolutely disillusioning. You want to fix it; you know what needs to be done; but you have to add this field to this structure so some UI element can report some crap that hardly anybody cares about instead.