Breaking from the Waterfall [email_address]
My experience as a developer Leading development teams and managing software projects Differences between the academe and the industry
Waterfall/”SDLC” What is it? Advantages and disadvantages Agile and Iterative Development What is it? How it differs from waterfall Advantages and Disadvantages Discussion
“ Traditional” approach to software dev’t Sequential Design Process Planning, Analysis, Design, Implementation, Support 1970:  Paper   by Winston Royce Focus on documentation and detail Have a plan (or plans) and stick to it “ Measure twice, cut once” Developers standpoint: clear, but flexible
Planning Analysis Design Implementation Support
Perfection at every step No progress until each step is completed Documentation Discipline Clearly defined milestones Predict problems before they occur
Problems are rarely fully understood Resistance to change Mistakes made at previous steps “trickle down the waterfall” Response to problems that can’t be known before completion No feedback loop Royce’s example
Cyclic software development Plan-Do-Check-Act Methods: Agile Scrum Extreme Programming RUP RAD Develop a system in cycles and smaller (functional) portions at a time
 
Feedback Loop Quick response to change (with less investment) Continued learning about the problem Take advantage of what is learned at each iteration Always have a complete functioning system
Less focus on documentation Difficult to implement Tendency to start coding before planning Communication overhead Requires a very efficient change control mechanism Requirements are always at risk of changing
Test Driven Development Unit Testing Continuous Integration Automated Testing Pair Programming Software Tools Pivotal Tracker
Questions?

Iterative Development

  • 1.
    Breaking from theWaterfall [email_address]
  • 2.
    My experience asa developer Leading development teams and managing software projects Differences between the academe and the industry
  • 3.
    Waterfall/”SDLC” What isit? Advantages and disadvantages Agile and Iterative Development What is it? How it differs from waterfall Advantages and Disadvantages Discussion
  • 4.
    “ Traditional” approachto software dev’t Sequential Design Process Planning, Analysis, Design, Implementation, Support 1970: Paper by Winston Royce Focus on documentation and detail Have a plan (or plans) and stick to it “ Measure twice, cut once” Developers standpoint: clear, but flexible
  • 5.
    Planning Analysis DesignImplementation Support
  • 6.
    Perfection at everystep No progress until each step is completed Documentation Discipline Clearly defined milestones Predict problems before they occur
  • 7.
    Problems are rarelyfully understood Resistance to change Mistakes made at previous steps “trickle down the waterfall” Response to problems that can’t be known before completion No feedback loop Royce’s example
  • 8.
    Cyclic software developmentPlan-Do-Check-Act Methods: Agile Scrum Extreme Programming RUP RAD Develop a system in cycles and smaller (functional) portions at a time
  • 9.
  • 10.
    Feedback Loop Quickresponse to change (with less investment) Continued learning about the problem Take advantage of what is learned at each iteration Always have a complete functioning system
  • 11.
    Less focus ondocumentation Difficult to implement Tendency to start coding before planning Communication overhead Requires a very efficient change control mechanism Requirements are always at risk of changing
  • 12.
    Test Driven DevelopmentUnit Testing Continuous Integration Automated Testing Pair Programming Software Tools Pivotal Tracker
  • 13.