Table 4: A Comparison of Software Development Methods

Method / Description / Best Used For / Advantages / Disadvantages /
Waterfall / ·  Uses independent development phases that are completed sequentially
·  Serial, “big-bang” solution with one long cycle times / ·  Programs where the requirements are very well understood at the onset of the project
·  Functionality to be delivered is mature and static
·  Best fits with Model 5, though also Model 1 (not described here) / ·  Typically low risk of not meeting contractual requirements if applied correctly
·  All functionality is delivered at the same time
·  Easiest delivery schedule management / ·  High risk of user dissatisfaction
·  Requires a complete set of requirements at the onset
·  Difficult to incorporate user feedback
·  Experimental code or prototypes are discarded after use
Incremental / ·  Development phases can be completed concurrently
·  Generally 60-80% of product is initially delivered with incremental deliveries delivered later / ·  Projects where all requirements are not known at beginning of project
·  Best fits with Models 2, 3, and 6 / ·  Users can provide feedback earlier
·  Developers have opportunity to identify potential problems earlier
·  Does not require a complete set of requirements at onset of project
·  Overlapping deployments or tasks produce usable functionality earlier / ·  Schedule with concurrent tasks is difficult to manage
·  If well managed, project can be delivered earlier
·  Experimental code or prototypes are discarded after use
Agile / ·  Customer satisfaction is highest priority
·  Can be thought of as both a set of software development best practice as well as a software development method
·  Requirements are prioritized, multiple, rapidly executed Increments are developed and capabilities are released to the customer as soon as possible
·  Prototypes may be used as a starting place
·  It utilizes a modular, open-systems approach.
·  Documentation is kept to an absolute minimum / ·  Small- to mid-sized applications
·  Best fits with Models 3, 4, 6 / ·  Customers get a workable product more quickly
·  Less documentation, more usable code
·  Continual involvement of the end user
·  Developers are able to easily course correct
·  Scope creep virtually eliminated / ·  Requires dedicated on site customer collaboration
·  Difficult to resolve Agile’s lack of documentation required and the DoD’s statutory and regulatory documentation requirements
·  Difficult to price because all requirements are not scoped at beginning of project