Software Engineering
Software backward compatibility, undocumented APIs and importance of history etc.
Software morphs. Market realities, changes in technology, adding new features or removing something that is no longer needed, refactoring etc. are some of the valid reasons for initiating a change. However, this is a very costly affair where large software are concerned. LARGE SOFTWARE AND IMPORTANCE OF KNOWING ITS HISTORY