Breaking from the Waterfall
My experience as a developerLeading development teams and
managing software projectsDifferences 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
DocumentationDisciplineClearly defined milestonesPredict problems before they occur
Problems are rarely fully understoodResistance to changeMistakes made at previous steps
“trickle down the waterfall”Response to problems that can’t be
known before completionNo feedback loopRoyce’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 LoopQuick response to change (with less
investment)Continued learning about the
problemTake advantage of what is learned at
each iterationAlways have a complete functioning
system
Less focus on documentationDifficult to implementTendency to start coding before
planningCommunication overheadRequires a very efficient change
control mechanismRequirements are always at risk of
changing
Test Driven Development Unit Testing Continuous Integration Automated Testing
Pair ProgrammingSoftware Tools
Pivotal Tracker
Questions?