Why your previous developer was terrible: When a new developer comes onto a project, they often find a bunch of stuff to change right away and seem to be hyper-productive right out of the gate. It’s a matter of fresh perspective, and the ability to view the project with the perspective of the current moment in time, without understanding that the application was development in many moments in time, each with their own idiosyncrasies and variables.
It’s what I call the “curse of the present.” When you, as a developer, look at the choices used to build a particular application, you’re blown away at the poor decisions made at every turn. “Why, oh why, is this built with Rails when Node.js would be so much better?” or “how could the previous developer not have forseen that the database would need referential integrity when they chose MongoDB?”
But what you may not realize is that you are seeing the application as it exists today. When the previous developer (or team) had to develop it, they had to deal with a LOT of unknowns. They had to make many decisions under a cloak of opacity. You are cursed with the knowledge of the present, so the system seems like a hackjob of bad decisions.
So much truth here.