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

Software Development Life Cycle

By Eric Earl

Software Development Life Cycle

Have you ever experienced scope or feature creep? Do you want to save time and set clearer expectations with your software projects? What is SDLC and how does it relate? Answer these questions and more with a short journey into what SDLC means and a few key examples of how software development processes are applied to make projects run smoother.

  • 329