A risk is a potential problem that can raise project cost, delay delivery, or increase the chance of failure. In software development, risks often appear when teams build components without a shared architecture or plan. section 3.1
Risk management connects delivery goals with requirements and maintainability. Overcomplicated code is a risk because it becomes harder to understand, update, refactor, and support, especially when new colleagues join the project. section 1.2.1
A fractured application plan
Imagine separate teams independently building a database, networking, GUI, and application layer without common design guidelines. Their components may work alone but fail to combine, forcing the project toward a costly restart. Testing reduces other project risks by checking behavior through black-box, white-box, functional, and integration approaches. section 3.1 section 15.1
Figure 1.3 Maintainability cost vs. complexity
Use the maintainability-cost relationship to see how increasing complexity can turn into a long-term project risk. section 1.2.1







