This chapter presents research that can help projects and organizations determine whether and when to use Agile methods versus architecting approaches to software development. Even when the managers of software or software-intensive projects appreciate the importance of architecting, they all have limited resources to spend and frequently ask, “How much architecting is enough?” (See How Much Architecting Is Enough?.)
To provide practical guidelines for this inquiry, this chapter summarizes and ties together two sources of evidence that I and other researchers have accumulated across 40 years of software practice, and discusses some insights for software that have been drawn from these inquiries. The questions we’ve researched can be framed as follows:
By how much should you expect the cost of making changes or fixing defects to increase as a function of project time or product size?
How much should you invest in early architecting and evidence-based project reviews before proceeding into product development?
In this context, “architecting” does not refer to producing the equivalent of blueprints for the software, but to the overall set of concurrent frontend activities (site surveys, operations analysis, needs and opportunities analysis, economic analysis, requirements and architecture definition, planning and scheduling, verifying and validating feasibility evidence) that are key to creating and sustaining a successful building ...