The SDLC provides a logical approach to managing a sequential
series of tasks. However, a drawback to using a traditional SDLC is
that project risks may not be adequately controlled if tasks are
completed in a strictly sequential manner. For example, using a
traditional SDLC methodology, users define functional requirements
and pass them to system designers. Designers complete the designs
and pass them to programmers. If programmers subsequently discover
improved ways to provide the functional requirements, the designers
must redo their work. However, if programmers are involved in the
planning and design phases, they may be able to identify
improvements earlier in the process. Therefore, to enhance the
effectiveness of project activities, organizations should employ
methodologies that involve all parties in each project phase.

Development techniques such as spiral, iterative, and modified
SDLC methodologies address many of the shortcomings of a
traditional SDLC. Full descriptions of the newer methodologies are
beyond the scope of this document. However, examiners should be
aware that the newer methodologies are more risk focused and
involve the completion of project phases in repetitive (iterative)
cycles. Iteration enhances a project manager's ability to
efficiently address the requirements of each party (end users,
security administrators, designers, developers, system technicians,
etc.) throughout a project's life cycle. Iteration also allows
project managers to complete, review, and revise phase activities
until they produce satisfactory results (phase deliverables).