I’ve noticed an interesting phenomenon take place with development projects at work, it happens when someone new steps in to take over a legacy system.

Most projects generally have humble beginnings. Someone is tasked with a from-scratch implementation, often under the worst of circumstances, but ever thing has to start somewhere. Later, after the original engineer has moved on, someone new steps in to carry on development, and no time is wasted heaping criticism on what was done before. I know I’ve been guilty of this.

The problem is that it is so easy to forget that you are coming to the party after the fact, with the benefit of everything that was learned during the earlier iterations. No doubt if your predecessors had it all to do over again, they’d likely do things very differently.