Jump to content

Lava flow (programming)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 66.45.123.11 (talk) at 23:06, 2 January 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, usually written under less than optimal conditions, is put into production and then built on when still in a developmental state.

The name comes from the nature of lava flow from a volcano, where the outermost lava is constantly cooling off and hardening, while new lava continues to be pushed through the incomplete outer layer. Eventually, the entire mass settles and hardens, but the process involves continuous changes to the outer layer.

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 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.