Introduction to Building the Right Software
What's in this chapter?
Every software development project begins with requirements. These requirements may be stated explicitly, such as the need for a payroll system to initiate direct deposits twice each month so that employees can get paid, taking into account the salary rate for each employee, minus any deductions for taxes and other withholdings. Or requirements may be more implicit, even abstract, such as the need for a video game to be fun and enjoyable.
In some software development projects, requirements are stated up front, before any code is written. In these software development projects, coding can only begin after the requirements have been finalized. This is traditionally referred to as a waterfall approach to building software. With a waterfall approach, the outputs from one phase of the development lifecycle flow into the inputs for the next phase (requirements flow into architectural design which flows into coding which flows into testing and so on).
With agile software development projects, there is an explicit recognition that requirements will likely change and evolve over time, even during the lifespan of a single software ...