Software Development Overviews
Home>Development Approaches>Waterfall Development
Waterfall Development 
Waterfall development is an approach to software development that breaks a project into finite phases. Each phase is performed in order, and each depends on the completion of preceding phases.

Under the waterfall development method, each portion of work is evaluated separately and is often performed by different teams. There are various schools of thought about what the actual phases should be, but the progression always relies on heavy up-front planning.

Here's a common breakdown of the waterfall development process:
Evaluate the problem-This is where the concept is born.
Identify deficiencies with existing solutions and gather information.
Propose a solution-Present a detailed description of the solution, including pros and cons and the problems the software will address. Finalize timelines, budgets, work breakdown structures, and other supporting documentation. Most importantly, identify and analyse requirements.

Design the architecture-Once the proposal has been accepted, create models of the solution, including workflow and dataflow diagrams, module and functionality layouts, and any other descriptions required by the solution. A vigorous review process usually accompanies this phase.

Develop the code-Use the blueprints created in previous phases to write, debug, and unit-test the code. Next, integrate the code and test portions of the system. Finally, test the entire system. This cycle isn't complete until all tests have passed.

Deploy and use the system-Roll out the resulting functionality and provide training and documentation to users as needed.

Maintain the solution-Support and upgrade the software when necessary and fix post-production bugs.

Below are listed the stages of development used by large scale projects in a waterfall development process. These stages cover, requirements, design, coding and testing.   Documentation and Quality Assurance stages are also listed to show their work in parallel
Advantages
Predictability of release based on detailed requirements and detailed designs.
Highest Quality is achievable because all required use cases can be individually tested.

Disadvantages
Not suited to short deadline based projects due to long development cycles.
Not appropriate for an environment with constantly changing requirements.
Large overhead due to large number of artifacts (documents, designs and plans).

Testing at end of project can reveal basic flaws if requirements or design are not thorough.  Load and Capacity must be tested early to avoid issues.

Recommendations
Use for large development project teams with large requirements and quality based requirements for deliverables. Useful when customers are large institutions. Not recommended for time constrained projects.

Description Taken From
http://www.zdnet.com.au/builder/manage/project/story/0,2000035082,20266893,00.htm

Example Waterfall Development Process

Example Waterfall Development Process

 

Development Stage

Documentation Stage

Quality Stage

Initiation

Project Start

 

 

 

Initial Project Plan

 

 

 

 

 

 

Requirements

Business Requirements

Documents Required

Quality  Requirements

 

Use Cases

   Training Required

     Number of users

 

UI Design

   Installations Required

     Transactions per hour

 

Services Requirements

  Administration Required

     Number of Use Cases

 

Project Plan 1

 

 

Design

High Level Dev Plan

Documentation Plan

Test Plan Design

 

Detail Design

Documentation Outline

Test Plan Inventory

 

Project Plan 2

 

 

Coding

Coding

Documentation Begins

High Level Test Plans

 

Code Complete

 

Load Testing

Integration

 

 

Capacity Testing

 

Integration Testing

 

Integration Testing

 

UI Freeze

 

Detail Test Plans

 

 

Documentation Draft

Automated Test Creation

 

QA Acceptance Test

QA Acceptance Test

QA Acceptance Test

Test

 

Documentation Complete

 

 

QA Cycle 1

 

QA Cycle 1

 

Beta

 

Beta

 

QA Cycle 2

 

QA Cycle 2

Ship

GA ship date

 

GA ship date