Agile development - Although the waterfall model has traditionally been the one used for large scale software development projects, it has often been criticised as being too rigid and too slow a process, resulting in projects where the software specification had to be changed substantially during the lifetime of the project, or software became out of date before it was even complete. In theory the analysis stage should result in a software specification which can then be used throughout the rest of the project, but in practice this is often unrealistic.