In the past, business systems were built using linear methods (waterfall approaches):
•The work was subdivided in a set of closed phases that were executed in a rigid sequence.
•Every phase had predefined results. This entire result had to be realized before the project could move to the next phase in the sequencc.
•A new phase started only after the previous phase had been signed off.
•Every phase was more detailed and less abstract than the preceding phase and focused on more than one subject. For example, data, rule and user interface aspects were modeled in parallel.
Although linear methods offered a high level of control, they also had drawbacks:
•At an early stage there is usually not be enough knowledge about the problem, but predefined results must be defined at this stage: linear methods wrongly assume that all the business knowledge is available at the beginning and that the only real problem is organizing and controlling the process.
•Users see the finished result only at the end of the project.
•By the time the project end, real business needs have changed compared to the specifications to which the project was executed.
•When specifications change, the entire process must backtrack. As a result, budgets are often not met.