In engineering and computing, "stovepipe system" is a pejorative term for a system that has the potential to share data or functionality with other systems but which does not do so. The term evokes the image of stovepipes rising above buildings, each functioning individually. A simple example of a stovepipe system is one that implements its own user IDs and passwords, instead of relying on a common user ID and password shared with other systems.
Stovepipes are
systems procured and developed to solve a specific problem, characterized by a limited focus and functionality, and containing data that cannot be easily shared with other systems.
— DOE 1999[1]
A stovepipe system is generally considered an example of an anti-pattern, particularly found in legacy systems. This is due to the lack of code reuse, and resulting software brittleness due to potentially general functions only being used on limited input.
However, in certain cases stovepipe systems are considered appropriate, due to benefits from vertical integration and avoiding dependency hell.[2] For example, the Microsoft Excel team has avoided dependencies and even maintained its own C compiler, which helped it to ship on time, have high-quality code, and generate small, cross-platform code.[2]
See also
editReferences
edit- ^ DOE. Committee to Assess the Policies and Practices of the Department of Energy, Improving Project Management in the Department of Energy, National Academy Press, Washington, D.C., 1999, page 133.
- ^ a b Joel on Software, "In Defense of Not-Invented-Here Syndrome", by Joel Spolsky, October 14, 2001