Software Engineering Process I • SE-2800-03
Ch. 3: Agile Principles (from course textbook) • Topic: why agile? • Ch. 3: Issues with plan-driven • But why would anyone use plan-driven development?
The case for plan-driven development • A380 • >5000 ft2 floor space • up to 853 passengers • One plane: €3e8, or about $4e8. • Inertial reference system: where plane is at, where it’s headed, at what speed • Gimbals, GPS, pressure/temp sensors • 30 people for verification alone, millions of $ • Also have flight control, communications, etc. • Some planning may be helpful!
Agile Principles • Variability and uncertainty • Prediction and adaptation • Validated learning • Work in progress • Progress • Performance • Pair exercise • For your assigned topic, • What does it mean? • Does it make sense to you? • Prepare brief summary
Variability & Uncertainty • Embrace helpful variability to create innovative solutions • Employ iterative and incremental development • Leverage variability through inspection, adaptation, and transparency • Reduce all forms (ends, means) of uncertainty simultaneously
Prediction & Adaptation • Keep options open • Accept that you can't get it right up front • Favor an adaptive, exploratory approach • Embrace change in an economically sensible way • Balance predictive up-front work with adaptive just-in-time work
Validated Learning • Validate important assumptions fast • Leverage multiple • concurrent learning • loops • Organize workflow for fast feedback
Work in Progress • Use economically sensible batch sizes • Recognize inventory and manage it for good flow • Focus on idle work, not idle workers • Consider cost of delay
Progress • Adapt to real-time information and replan • Measure progress by validating working assets • Focus on value-centric delivery
Performance • Go fast but never hurry • Build in quality • Employ minimally sufficient ceremony
Review • The case for the waterfall/predictive models • Advantages of agile • Principles behind scrum • Next: sprints