Without the use of dependable software complexity metrics, it can be difficult and time consuming to determine the architectural hotspots where risk and cost emanates. The Benefits of Software Complexity Analysis Software complexity is a major concern among organizations that manage numerous technologies and applications within a multi-tier infrastructure. Every piece of code must be assessed to determine how it will affect the application in terms of robustness and changeability. It can also make specific modules difficult to enhance and to test. Left unchecked, non-essential complexity can get out of hand, leaving behind a poor TCO equation and additional risk to the business.Įxcess software complexity can negatively impact developers’ ability to manage the interactions between layers and components in an application. Accidental complexity is the additional complexity introduced by poor design or a lack of complexity management. Essential complexity is the unavoidable complexity required to fulfill the functional requirements. Fred Brooks, in his landmark paper, 'No Silver Bullet - Essence and Accidents of Software Engineering,' asserts that there are two types of complexity.