When we consider traditional project management and software development
approaches, several disadvantages are immediately evident. For one, the huge effort
required during the planning phase of a traditional project is often so all-encompassing
that half (or more) of the resources for the project are expended before any development
work even beings. Furthermore, requirements definitions are often so labor intensive
and protracted that the requirements for the project have changed before development
even begins.