Eric Earl

(SDLC)

Software Development Life Cycle

Presented January 5, 2023

slides available at slides.com/ericearl/sdlc

follow along live at slides.com/d/ZcKbmCY/live

Navigation

(look in the bottom right corner)

Previous topic

Next topic

Out of a topic

Into a topic

Slide Number

10 . 2

Splitting software development work into distinct phases to produce higher quality software and complete the project within time and cost estimates

Today's Models

There are a few more major SDLC methodologies, but I didn't feel they were as applicable to us as the five others being covered today.

Other examples:

  • Continuous Integration
  • Rapid Application Development
  • Shape Up
  • Behavior-Driven Development
  • Chaos Model
  • And more...

Disclaimer

  • Requirements/Specifications
  • Design
  • Implement
  • Test
  • Release
  • Maintain

Commonalities

Waterfall/
Cascade/
Traditional

Each phase must be completed before the next phase can begin and there is no overlapping in phases

  • Requirements up front saves time later
  • More focus on prep and documentation
  • Well-defined milestones/goals

Pros

  • Requires well-defined goals at the start
  • Changing requirements means starting over
  • Less flexible to change

Cons

Iterative

More than one iteration may be

in progress at the same time

  • Don't need complete requirements to start
  • Can get feedback after each iteration
  • Can deliver before all features are implemented

Pros

  • Architecture problems with adding features
  • Can have too much focus on an iteration and not the big picture
  • Difficult to estimate new feature timelines

Cons

Prototyping

Creating incomplete software as a proof of concept.

Revise/Enhance

4

Development

2

Review

3

Basic requirement identification

1

  • Sooner user feedback
  • Discover difficult parts sooner
  • Provides a reference for future development

Pros

  • Usually poor requirements and impractical solution
  • Possible overuse of prototype code
  • Time invested in prototype IS NOT design time

Cons

Spiral

Combination of iterative and waterfall with emphasis on "risk analysis"

About "Risk"

The concept is:

"If [X] happens it will cost $[Y]"

  • Changes may be added flexibly in later phases
  • Balances risk vs time investment
  • Good for medium to long term projects expecting many changes

Pros

  • Continual refactoring can slow progress
  • Milestone timelines are harder to estimate further along the spiral
  • Can be indefinite for poorly defined projects

Cons

Short cycles, iterative and incremental delivery, failing fast, getting feedback, delivering value early.

Most current SDLC practices are Agile in some way.

  • Work can begin with minimal requirements
  • Separating out planners means more informed decisions
  • Early feedback and testing means better product overall

Pros

  • Some work is dropped if requirements change
  • Many stakeholders leads to scope creep
  • Short iterations can lead to worse documentation

Cons

Take-aways

  • Consider project scope before beginning.

 

  • Earlier specifications save overall time.

 

  • Clear processes set clear expectations.

References

Made with Slides.com