Introduction to Agile
Manifesto for Agile Software Development
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
What is Agile?
The source of the word Agile is from
Latin and it means quick and well-
coordinated in movement; nimble or
sprightly.
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.
Agile Software Development
 Adaptive planning
 Evolutionary development
 Early delivery
 Continuous improvement
 Rapid & flexible response to change
The Birth of
Agile Software Development
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”
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
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
Where Waterfall Best Fit ?
Adaptive
Risk-
Base
Waterfall Adaptive
Technology
Uncertainty
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
2001
17 software developers met
at the Snowbird resort, Utah
published the “Manifesto for Agile
Software Development”
Manifesto for Agile
Software Development
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/
Individuals and interactions
self – organized teams
motivation
co-location interactions
pair programming
Working Software
Working software is more useful and
welcome than just presenting
documents to clients in meetings
Customer collaboration
Requirements cannot be fully collected
up front, therefore continuous customer
or stakeholder involvement is very
important.
Responding to change
Software development methods are
focused on quick responses to change
and continuous development
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
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
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
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
Efficient Communication
Every team should include a customer representative
Customer representative review progress and re-
evaluate priorities, to optimize the return on
investment
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.
Built In Quality = Enhance Agility
Continuous Integration with auto unit/acceptance testing
Pair Programming, Test-Driven-Development
Design Patterns, Domain-Driven Design
Code Refactoring
THAT’S ALL

Introduction to Agile Software Development

  • 1.
    Introduction to Agile Manifestofor Agile Software Development
  • 2.
    Avidan Hetzroni Enterprise AgileCoach, 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? Thesource of the word Agile is from Latin and it means quick and well- coordinated in movement; nimble or sprightly.
  • 4.
    What is AgileSoftware 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
  • 6.
    The Birth of AgileSoftware Development
  • 7.
    1970 Dr. WinstonWalker 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 StandishGroup 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 ProjectsFailed?  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 BestFit ? Adaptive Risk- Base Waterfall Adaptive Technology Uncertainty
  • 11.
    1990’s Lightweight methodsstart 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 developersmet at the Snowbird resort, Utah published the “Manifesto for Agile Software Development”
  • 13.
  • 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/
  • 15.
    Individuals and interactions self– organized teams motivation co-location interactions pair programming
  • 16.
    Working Software Working softwareis more useful and welcome than just presenting documents to clients in meetings
  • 17.
    Customer collaboration Requirements cannotbe fully collected up front, therefore continuous customer or stakeholder involvement is very important.
  • 18.
    Responding to change Softwaredevelopment methods are focused on quick responses to change and continuous development
  • 19.
    Principles Behind AgileManifesto 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 AgileManifesto (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 AgileManifesto (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 andEvolutionary 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 teamshould include a customer representative Customer representative review progress and re- evaluate priorities, to optimize the return on investment
  • 24.
    Short Feedback Loop Teammembers 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
  • 26.