222:
31:
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
65:
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:
32:
difficult to refactor or replace due to dependencies that arise over time, necessitating the maintenance of backward compatibility with the original, incomplete design.
263:
107:
Reluctance among new developers to refactor unfamiliar code, leading to further complexity as they add rather than clean up
163:
287:
256:
194:
237:
282:
249:
70:
17:
8:
229:
104:
Loss of knowledge about aspects of the system's code when original developers leave
73:
which can stifle innovation and prevent adoption of newer, more efficient solutions
233:
142:
80:
that accumulates over time, resulting in higher costs of change and maintenance
77:
276:
43:
can occur due to a variety of reasons within a software development process:
47:
Pressure to meet deadlines leading to temporary solutions becoming permanent
50:
Inadequate documentation which prevents understanding of the code’s purpose
171:
135:
128:
84:
28:
124:
Promoting good documentation practices for clear understanding of code
56:
Frequent changes in the development team leading to loss of knowledge
87:
or improving the system due to fear of breaking dependent components
221:
20:
53:
Lack of automated tests which makes refactoring risky
116:Several practices can mitigate the effects of the
96:Development teams often experience the impact of
274:
138:as an integral part of the development lifecycle
257:
27:is an anti-pattern that occurs when computer
192:
264:
250:
111:
275:
141:Maintaining a comprehensive suite of
216:
100:when team members cycle in and out:
131:to catch suboptimal practices early
13:
91:
14:
299:
193:Mike Hadlow (December 15, 2014).
220:
60:
186:
156:
1:
195:"The Lava Layer Anti-Pattern"
149:
236:. You can help Knowledge by
7:
10:
304:
215:
168:Perl Design Patterns Wiki
145:to reduce risk in changes
35:
288:Computer science stubs
71:backward compatibility
112:Mitigation Strategies
127:Encouraging regular
18:computer programming
245:
244:
174:on March 31, 2016
295:
266:
259:
252:
230:computer science
224:
217:
210:
209:
207:
205:
190:
184:
183:
181:
179:
170:. Archived from
160:
303:
302:
298:
297:
296:
294:
293:
292:
273:
272:
271:
270:
214:
213:
203:
201:
191:
187:
177:
175:
162:
161:
157:
152:
143:automated tests
114:
94:
92:Impact on Teams
63:
38:
12:
11:
5:
301:
291:
290:
285:
269:
268:
261:
254:
246:
243:
242:
225:
212:
211:
185:
154:
153:
151:
148:
147:
146:
139:
132:
125:
120:anti-pattern:
113:
110:
109:
108:
105:
93:
90:
89:
88:
81:
78:technical debt
74:
62:
59:
58:
57:
54:
51:
48:
37:
34:
9:
6:
4:
3:
2:
300:
289:
286:
284:
283:Anti-patterns
281:
280:
278:
267:
262:
260:
255:
253:
248:
247:
241:
239:
235:
232:article is a
231:
226:
223:
219:
218:
200:
196:
189:
173:
169:
165:
159:
155:
144:
140:
137:
134:Prioritizing
133:
130:
126:
123:
122:
121:
119:
106:
103:
102:
101:
99:
86:
83:Obstacles to
82:
79:
75:
72:
69:The need for
68:
67:
66:
55:
52:
49:
46:
45:
44:
42:
33:
30:
26:
22:
19:
238:expanding it
227:
202:. Retrieved
198:
188:
176:. Retrieved
172:the original
167:
158:
129:code reviews
117:
115:
97:
95:
64:
61:Consequences
40:
39:
24:
15:
178:February 4,
164:"Lava Flow"
136:refactoring
85:refactoring
29:source code
277:Categories
204:January 7,
150:References
76:Increased
199:Code rant
118:lava flow
98:lava flow
41:Lava flow
25:lava flow
36:Causes
21:jargon
228:This
234:stub
206:2016
180:2018
16:In
279::
197:.
166:.
23:,
265:e
258:t
251:v
240:.
208:.
182:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.