Lava flow (programming)

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. 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.[1]

Changes in the development team working on a project often exacerbate lava flows. As workers cycle in and out of the project, knowledge of the purpose of aspects of the system can be lost. Rather than clean up these pieces, subsequent workers work around them, increasing the complexity and mess of the system.[2]

Lava flow is considered an anti-pattern, a commonly encountered phenomenon leading to poor design.[3]


  1. ^ "Lava Flow". Perl Design Patterns Wiki. Retrieved February 4, 2018.
  2. ^ Mike Hadlow (December 15, 2014). "The Lava Layer Anti-Pattern". Code rant. Retrieved January 7, 2016.
  3. ^ Brown, William J.; Malveau, Raphael C.; McCormick, Hays W. "Skip"; Mowbray, Thomas J. (1998). Hudson, Theresa (ed.). AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. New York: John Wiley & Sons. pp. 87-95. ISBN 0471197130.