Project and Development Approaches

Traditionally, the Systems Development Lifecycle (SDLC) and Project Management (PM) methodologies have followed a waterfall or gated approach. Depending upon the project and project organization, the methodologies may be adapted using waterfall, iterative, incremental or agile approaches. These adaptations will occur if the project is broken into its own phases, or if prototyping is introduced.

visual representation of information collected below

The diagram above is from course notes by Aguanno, Kevin, 'Agile Bootcamp for Project Owners & Business Stakeholders', 14 February 2012, GenXus Management Consulting.

Waterfall/Gated

This approach is typically used when the project has a well-defined scope, small risk, and minimal feedback cycles are required throughout the life cycle. The approach requires sign off for the entire project scope at each phase (i.e., analysis and requirements, design & development, test, implementation, maintenance) of the life cycle. Typically, requirements cannot change when testing occurs. This approach may work for small, tried-and-true projects such as applying a bundle, but it does not typically work for larger projects. The waterfall approach is a “big bang” deployment; meaning, everything (e.g. A,B,C) goes live at once (e.g. at the end of three months).

Iterative

This approach is typically used when the scope is somewhat fuzzy and clear requirements are not available, or there is a high risk of requirements changing. The approach captures user feedback earlier using modeling techniques (e.g. screen mock ups) appropriate for the project. The feedback from each iteration is used to improve, or build on, the result of the next iteration. The iterative approach is a “big bang” deployment, meaning everything (e.g. A,B,C) goes live at once (e.g., at the end of three months).

Incremental

This approach prioritizes solution features and builds the solution in order of priority.  It allows for a phased approach to implementation where the highest priority features are implemented first (although the option still exists to go live with all phases at once, if desired), reducing project risk and increasing quality while still accommodating significant changes throughout the project. It enables technical and solution design risks to be eliminated early. For large project, quality is higher because testing occurs earlier. For example, high priority feature A goes live at the end of month one, medium priority feature B goes live at the end of month two, and lower priority feature C goes live at the end of month three.

Agile

This approach incorporates both iterative and incremental. In the example above, A part of feature A can go live early in the first month, a part of feature B can go live in the second third of the first month, and a part of feature C can go live at the end of the first month. The three "features", i.e., A1, B1 and C1 are evolved and enhanced and delivered through out the second month and by the end of the the third month all features are fully functional and delivered.

To determine the approach that should be used, one should ask whether the process is driven by frequent feedback, if the delivery should be “big bang” or "phased", if a high volume of change is expected, and if the project will invest heavily in quality. Regardless of the approach, the phases of the systems life cycle still include analysis/requirements, design/development, testing, implementation and maintenance.

Descriptions above adapted from course notes by Aguanno, Kevin, 'Agile Bootcamp for Project Owners & Business Stakeholders', 14 February 2012, GenXus Management Consulting.