Agile Development sounds great, but it depends on the ability to determine the details of scope as the system is developed,
driven by feedback from customers and users. Much software development is done under contract, where there is often a requirement
to determine the details of the system early in the development process.