The document introduces Agile software development, which originated from a need for more flexible approaches compared to traditional waterfall models. It describes how in 2001, 17 software developers published the Agile Manifesto which values individuals, collaboration, working software, and responding to change over rigid processes and documentation. The manifesto led to principles like frequent delivery, collaboration between business and technical roles, self-organizing teams, and valuing working software over documentation.
2. Avidan Hetzroni
Enterprise Agile Coach, Trainer &
Blogger
Certified Scrum Professional
Certified SAFe® Program Consultant
Six Sigma Green-Belt
B.Sc. System Engineering, BGU
www.avidanhetzroni.com
3. What is Agile?
The source of the word Agile is from
Latin and it means quick and well-
coordinated in movement; nimble or
sprightly.
4. What is Agile Software Development?
Agile Software Development is a set of
Values and Principles for developing
software.
Solutions evolve through the collaborative effort
of self-organizing cross-functional teams.
5. Agile Software Development
Adaptive planning
Evolutionary development
Early delivery
Continuous improvement
Rapid & flexible response to change
7. 1970 Dr. Winston Walker Royce
Managing the Development of Large
Software Systems from which the Waterfall
life cycle model was mistakenly drawn
“I believe in this concept, but the
implementation described above is risky and
invites failure”
8. 1994 The Standish Group
The CHAOS Report a survey of 365
respondents.
Only 16.2 % of projects are completed on
time, on budget and with all features and
functions as specified
9. Why Software Projects Failed?
Upfront Requirements wish we had time to
understand…
Change will be small … and manageable
We can deliver on time … enough “space” to recover
Integration will go well, we have a good design
Software Development is predictable and repeatable
process
10. Where Waterfall Best Fit ?
Adaptive
Risk-
Base
Waterfall Adaptive
Technology
Uncertainty
11. 1990’s Lightweight methods start evolved
1991: Rapid Application Development
1994: Unified Process
1994: Dynamic Systems Development Method
1995: Scrum
1996: Extreme Programming
1996: Crystal Clear
1997: Feature Driven Development
12. 2001
17 software developers met
at the Snowbird resort, Utah
published the “Manifesto for Agile
Software Development”
14. Agile Manifesto (a.k.a. Agile Values)
“We are uncovering better ways of developing software by doing it and helping others do
it. Through this work we have come to value:”
Individuals and interactions
OVER
process and tools
Working software comprehensive documentation
Customer collaboration
Responding to change
contract negotiation
following a plan
“That is, while there is value in the items on the right, we value the items on the left more.”
source: http://www.agilemanifesto.org/
18. Responding to change
Software development methods are
focused on quick responses to change
and continuous development
19. Principles Behind Agile Manifesto
Our highest priority is to satisfy the customer through early and continuous
delivery of valuable software
Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage
Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale
Business people and developers must work together daily throughout the
project
20. Principles Behind Agile Manifesto (cont’)
Build projects around motivated individuals. Give them the environment
and support they need, and trust them to get the job done
The most efficient and effective method of conveying information to and
within a development team is face-to-face conversation
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely
21. Principles Behind Agile Manifesto (cont’)
Continuous attention to technical excellence and good design enhances
agility
Simplicity--the art of maximizing the amount of work not done--is essential
The best architectures, requirements, and designs emerge from self-
organizing teams
At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behavior accordingly
22. Iterative, Incremental and Evolutionary
Minimize up-front planning and design by breaking
product work into small increments
Iterations are 2-4 weeks where teams are working in all
functions: planning, analysis, design, coding, unit
testing and acceptance testing
Minimize overall risk and allows product adoption to
changes by demonstration to stakeholders /customers
23. Efficient Communication
Every team should include a customer representative
Customer representative review progress and re-
evaluate priorities, to optimize the return on
investment
24. Short Feedback Loop
Team members frequently evaluate their progress
toward their team's iteration goal.
Take corrective actions, if necessary.
Remove any roadblocks or impediments.
25. Built In Quality = Enhance Agility
Continuous Integration with auto unit/acceptance testing
Pair Programming, Test-Driven-Development
Design Patterns, Domain-Driven Design
Code Refactoring