Waterfall: Lack of flexibility, no risk analysis, limited user involvement
Agile: Poor documentation, requires consistent interaction between user and programmer
Extreme Programming: High cost of two people working on one project, teamwork essential, end-user may not be able to be present
Spiral: Expensive to hire risk assessors, lack of focus on code efficiency, high costs due to constant prototyping
Rapid Application Development: Poorer quality documentation, fast pace may reduce code quality