“Software Engineering at Google”, Fergus Henderson2017-02-06 (, )⁠:

We catalog and describe Google’s key software engineering practices.

2.11. Frequent rewrites: Most software at Google gets rewritten every few years.

This may seem incredibly costly. Indeed, it does consume a large fraction of Google’s resources.

However, it also has some crucial benefits that are key to Google’s agility and long-term success. In a period of a few years, it is typical for the requirements for a product to change substantially, as the software environment and other technology around it change, and as changes in technology or in the marketplace affect user needs, desires, and expectations. Software that is a few years old was designed around an older set of requirements and is typically not designed in a way that is optimal for current requirements. Furthermore, it has typically accumulated a lot of complexity.

Rewriting code cuts away all the unnecessary accumulated complexity that was addressing requirements which are no longer so important.

In addition, rewriting code is a way of transferring knowledge and a sense of ownership to newer team members. This sense of ownership is crucial for productivity: engineers naturally put more effort into developing features and fixing problems in code that they feel is “theirs”.

Frequent rewrites also encourage mobility of engineers between different projects which helps to encourage cross-pollination of ideas. Frequent rewrites also help to ensure that code is written using modern technology and methodology.

[cf. “Why Google Stores Billions of Lines of Code in a Single Repository”, Big Ball Of Mud.]