Lava flow (programming)
From Wikipedia, the free encyclopedia
In computer programming jargon, lava flow is a problem in which computer code written under sub-optimal conditions, is put into production and added to while still in a developmental state.
From the Perl Design Wiki: Lava Flow is "when code ... spews forth and becomes permanent, it becomes an architectural feature of the archaeological variety. Things are built atop the structure without question and without hope of changing what is beneath them. The existing code is seen as an historical curiosity."
Often, putting the system into production results in a need to maintain backward compatibility (as many additional components now depend on it) with the original, incomplete design. For example, see NSAPI.
Lava flows are often exacerbated by changes in the development team working on a project. As workers cycle in and out of the project, knowledge of the purpose of aspects of the system can be lost, and rather than clean up these pieces, they are worked around, increasing the complexity and mess of the system.
Lava flow is considered an anti-pattern, a commonly encountered phenomenon leading to poor design.