Jump to content

Lava flow (programming)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 69.64.197.254 (talk) at 20:25, 1 February 2007. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 http://perldesignpatterns.com/?LavaFlow]: Lava Flow is "when code ... spews forth and becomes permanent, it becomes an architectural feature of the archeological 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."

In computer programming, production is a form of solidification and constant revisions. This causes the original code to solidify, turning the snapshot developmental state into a fixed final state that can no longer be modified.

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.