||It has been suggested that this article be merged into No Silver Bullet. (Discuss) Proposed since July 2014.|
Accidental (or incidental) complexity is that complexity which arises in computer programs or the development process which is deemed not essential to the problem being solved. While essential complexity is inherent and unavoidable, accidental complexity is caused by a suboptimal approach to the problem's resolution. The distinction was introduced by Fred Brooks in his paper No Silver Bullet — Essence and Accidents of Software Engineering.
While sometimes accidental complexity can be due to mistakes such as ineffective planning, or low priority placed on a project, random accidental complexity may occur as a side-effect of solving any given computer problem.
Accidental complexity is to be minimized in any good architecture, design, and implementation; excessive accidental complexity is an example of an anti-pattern.
- Holt, John (2004). UML for systems engineering: watching the wheels. IET. p. 8. ISBN 978-0-86341-354-4.
|This computer science article is a stub. You can help Wikipedia by expanding it.|
|This computer programming–related article is a stub. You can help Wikipedia by expanding it.|