I recently read a blog post on Hacker News justifying why new hires always pushed to rewrite old applications. The premise of the article went something like “reading code is an inherently difficult task, more so than writing your own code”. Although I agree with this statement I feel there is much more being overlooked when discussing large-scale code bases. This rather simplistic explanation ignores the improvements and advancements in technology that have occurred in the last few years. I would wager that these advancements are adopted early on by engineers with time on their hands (people waiting to be hired) and not by seasoned veterans stuck “churning” the backlog.
More to the point, software evolves at a rapid pace. Smart people consistently find better ways to do difficult tasks, and this is what changes the game (or so to speak) every few years. When a new hire offers to improve on a process or project employers should view this as an opportunity to rediscover their technology stack. Let someone new look at the problem; their approach may provide some insight into your design decisions for better or worse. All in all, the Software Development Life Cycle (SDLC) is as much of a risk game as it is a procedural effort. Knowing when and what risks to take is the true test of leadership.