Software Development Models

Waterfall Model

Software Development Lifecycle Waterfall Model

Agile Development Process

  • Values
    • Individuals and interactions over processes and tools
    • Working Software over comprehensive documentation
    • Customer collaboration over contract negotiation
    • Responding to change over following a plan
  • Principles
    • Highest priority is to satisfy the customer through early and continuous delivery of valuable software
    • Welcome changing requirements
    • Deliver working software frequently
    • Business people and developers must work together daily
    • Build projects around motivated individuals
    • Face-to-face conversation
    • Working software is the primary measure of progress
    • Agile processes promote sustainable development – maintain constant pace indefinitely
    • Continuous attention to technical excellence and good design
    • Simplicity is essential – maximizing amount of work NOT done
    • Self-organizing teams
    • Team reflection on effectiveness

Software Capability Maturity Model

  • Level 1: Initial – no defined software process
  • Level 2: Repeatable – basic processes, code reuse – requirements management, software project planning, tracking, oversight, quality assurance, configuration management
  • Level 3: Defined – formal documented software process – organization process forces and definition, training integrated software manaement
  • Level 4: Managed – quantitative measures, quantitative process management, software quality management
  • Level 5: Optimizing – continuous improvement – defect prevention, technology and process change management

IDEAL Model

  • 1: Initiating – business reasons, build support
    • Set context
    • Build sponsorship
    • Charter infrastructure
  • 2: Diagnosing – analyze current state, recommend changes
    • Characterize current and desired states
    • Develop recommendations
  • 3: Establishing – specific plan of action
    • Set priorities
    • Develop approach
    • Plan actions
  • 4: Acting – develop solutions – test, refine, implement
    • Create solution
    • Pilot test solution
    • Refine solution
    • Implement solution
  • 5: Learning – quality improvement
    • Analyze and validate
    • Propose future actions

SW-CCM vs. IDEAL

“I..I, Dr. Ed, am lo(w)” – II DR ED AM LO (mnemonic)
InitiatingInitiating
DiagnosingRepeatable
EstablishingDefined
ActingManaged
LearningOptimized

DevOps

Development & Operations: interrelationship of Software Development, Operations, Quality Assurance – frequent to continuous releases of software