Mar 24, 2022
We have highlighted many areas of quality software development. However, the stovepipe enterprise is a maintenance anti-pattern. This situation occurs when we build a system that has a high maintenance cost. Even worse, maintenance often requires to be done quickly and more as a patch than a build. Therefore, we produce a house of cards that becomes more fragile as time goes by.
Stovepipes are historically a form of a kludge. Wood-burning stoves needed a way to get rid of the exhaust, and it goes through the pipe. However, the material often wears down a stovepipe quickly, and it is patched with whatever materials are available rather than replaced. We see this in software solutions when we have high maintenance areas of the architecture. That frequent touching of the system can introduce bugs and reduce the overall quality. Stable is better today, but it also makes it likely we will have working software tomorrow.
There are a few typical results from this anti-pattern. One is the constant requirement for coding (bugs or enhancements) to an area of the solution. Another is a form of fire-fighting approach to parts of the system. In the latter case, we regularly see issues in code sections and have to do a quick fix rather than refactor or redesign. The solution itself is essentially flawed in this case, even though it does the job.