Incremental Development Strategy

The Problem

For large engineering projects, the development process chosen is a key success factor. There are at least two ways for a project process to fail:

  1. The team begins work without thinking carefully or developing a plan. The project work is disorganized, without a clear sense of direction. The plan may be unrealistic, but without a clearly defined path it may be difficult to judge progress and take corrective action.
  2. The team spends a great deal of time preparing a detailed plan, documenting the presumed requirements, designing every aspect of the system as it is initially envisioned, and implementing all project components. When this work is completed (if the team has not run out of time by this point), fundamental project flaws are discovered, but little time is left to make needed changes.

While these are caricatures, they illustrate a real dilemma.

A Possible Approach

One way to reduce project risk and increase the chances of success it to adopt an incremental development strategy. When making an initial overall plan, the project is broken up into a series of deliverable increments, with each increment being a working subset of the final product or system. The knowledge gained in each incremental development cycle is then used to improve the overall project plan and to guide the work in the following cycle(s).

Example of An Incremental Strategy

  • The basic ideas
    • After a certain point, you learn more by doing than by “planning”
    • Important to have clear goals for your work
  • Cycle overview
    • Plan work for cycle
    • Execute the plan
    • Evaluate the results
    • Replan as necessary for next cycle
  • Typical cycle phases
    • Initial planning for next big chunks (“modules”?)
      • Break into smaller “components”
    • For each component
      • Technology investigation
      • Design
      • Design review/inspection
      • Implementation (e.g., code, hardware)
      • Implementation review/inspection
      • Unit (component) testing
    • Integrate components into modules
    • For each module
      • Integration testing
      • Overall review/inspection
      • Documentation update (“as built”)
senior_design/resources/incrementaldevelopment.txt · Last modified: 2010/04/30 20:06 by taylor
 

This website is not owned or managed by the Milwaukee School of Engineering.

© 2003-2010 Dr. Christopher C. Taylor, et. al. • Office: L-343 • Phone: 277-7339 • npǝ˙ǝosɯ@ɹolʎɐʇ • -> RSS <-