Technical features that involve improving software quality attributes can be prioritized based on the cost of not addressing them.
One way to look at design is from the perspective of robustness. The ability of software to be resilient in the face of iterative and incremental change is a measure of how well the design meets business demand. This goes well beyond the code’s design into the structural integrity of the supporting infrastructure.
The robustness of a component, application, or enterprise is determined by how quickly it can be acted upon with new knowledge. This has become more important ...