Lava flow (programming) explained

In computer programming jargon, lava flow is an anti-pattern that occurs when computer source code written under sub-optimal conditions is deployed into a production environment and subsequently expanded upon while still in a developmental state. The term derives from the natural occurrence of lava which, once cooled, solidifies into rock that is difficult to remove. Similarly, such code becomes difficult to refactor or replace due to dependencies that arise over time, necessitating the maintenance of backward compatibility with the original, incomplete design.[1]

Causes

Lava flow can occur due to a variety of reasons within a software development process:

Consequences

Unrefined code that becomes part of the software’s infrastructure increases the complexity of the system and the codebase becomes increasingly difficult to understand and maintain. It leads to:

Impact on Teams

Development teams often experience the impact of lava flow when team members cycle in and out:

Mitigation Strategies

Several practices can mitigate the effects of the lava flow anti-pattern:

Notes and References

  1. Web site: Lava Flow. https://web.archive.org/web/20160331005850/http://perldesignpatterns.com/?LavaFlow. dead. March 31, 2016. Perl Design Patterns Wiki. February 4, 2018.
  2. Web site: The Lava Layer Anti-Pattern. Code rant. Mike Hadlow. December 15, 2014. January 7, 2016.