System Development Life Cycle (SDLC)
There are two general approaches to the SDLC
Predictive Approach to the SDLC
Waterfall model
Assumes project can be planned in advance and that information system can be developed
according to plan
Requirements are well understood and/or low technical risk
Adaptive Approach to the SDLC
Iterative model (as see in this text)
Assumes the project must be more flexible and adapt to changing needs as the project
progresses
Requirements and needs are uncertain and/or high technical risk
Most projects fall on a continuum between Predictive and Adaptive
Traditional Predictive SDLC
Typically have sequential Phases
Phases are related groups of development activities (planning, analysis, design,
implementation, and deployment)
Waterfall model
SDLC that assumes phases can be completed sequentially with no overlap or iteration
Once one phase is completed, you fall over the waterfall to the next phase, no going back
Tradition IS Development Phases
More flexibility, but still assumes predictive planning and sequential phases
, Newer Adaptive SDLC
Emerged in response to increasingly complex requirements and uncertain technological
environments
Always includes iterations where some of design and implementation is done from the beginning
Many developers claim it is the only way to develop information systems
Many IS managers are still sceptical due to apparent lack of overall plan
Adaptive Approaches
Incremental development
Completes portions of the system in small increments and integrated as the project progresses
Sometimes considered “growing” a system
Walking Skeleton
The complete system structure is built first, but with bare-bones functionality
A Generic Adaptive Approach
Six Core Processes go across iterations
Multiple Iterations as required
Methodologies, Models, Tools, and Techniques
Methodologies
Provides guidelines for every facet of system development: What to do when, why and how
Specifies an SDLC with activities and tasks
Specifies project planning and project management models and reporting
Specifies analysis and design models to create
Specifies implementation and testing techniques
Specifies deployment and support techniques