The Lava Flow of obsolete technologies and forgotten extensions leaves hardened globules of dead code in its wake.
On a data-mining expedition through a research-originated system, the authors asked developer after developer what a given class did. The answer, again and again: "I don't know what that class is for; it was written before I got here." Between 30 and 50 percent of the code in that system was unowned, and no one would delete it for fear of breaking something no one understood.
Lava Flow is common in shops where proof-of-concept or prototype code moves into production without a clear architecture behind it. The dead sections are expensive to analyze, expensive to test, and expensive to load, and they cost the project the reuse and modularity an object-oriented design was supposed to buy in the first place.
Sound architecture has to precede production code, backed by a configuration management process that keeps the system compliant with that architecture as requirements change. Where Lava Flow already exists, the fix means a system discovery activity: find out what is actually used, delete the rest, and expect a few bugs to surface as dependencies you didn't know about get removed.