B Y :
T A M U R S U L T A N
Z E E S H A N S A T T I
S A D A F B A T O O L
M A R I N A K H A N
Flavors of Agile Software
Engineering
What is Agile??
Ability to move
quickly and easily
Agile Software Development
 Agile development model is also a type
of Incremental model. Software is developed in
incremental, rapid cycles. This results in small
incremental releases with each release building on
previous functionality.
Why Agile?
 The use of the word agile in this context derives from
the agile manifesto. A small group of people got
together in 2001 to discuss their feelings that the
traditional approach to managing software
development projects was failing far too often, and
there had to be a better way.
Why Agile?......
They came up with the agile manifesto, which
describes 4 important values that are as relevant
today as they were then. It says, “we value:
1. Individuals and interactions over processes and
tools
2. Working software over comprehensive
documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
Principles of Agile
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight &
visual
5. Develop small, incremental releases and iterate
Principles of Agile…….
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project
lifecycle – test early and often
10. A collaborative & cooperative approach between
Types of Agile Methods
 Scrum
 XP
 TDD
 Lean
SCRUM
 Scrum is most popular agile framework in the world,
Scrum uses iterative and incremental development
model. Scrum concentrates particularly on how to
manage tasks within a team-based development
environment. Scrum provides the simple framework
of basic tenets to solve problems and deliver good
results - more valuable software faster
Scrum Role
Scrum Roles
 Product Owner:
 The Product Owner should be a person with vision,
authority, and availability. The Product Owner is
responsible for continuously communicating the
vision and priorities to the development team.
Scrum Roles
 Scrum Master:
 The Scrum Master is responsible for ensuring Scrum is
understood and enacted.
 The Scrum Master is a servant-leader for the Scrum Team.
 The Scrum Master helps those outside the Scrum team
understand which of their interactions with the Scrum team
are helpful and which aren’t.
 The Scrum Master helps everyone change these
interactions to maximize the value created by the Scrum
Team.
Scrum Roles
 Team:
 According to Scrum’s founder, “the team is utterly
self managing.” The development team is responsible
for self organizing to complete work. A Scrum
development team contains about seven fully
dedicated members (officially 3-9), ideally in one
team room protected from outside distractions.
Scrum Process
Extreme Programming
 Extreme Programming is a type of agile software
development, it advocates frequent "releases" in
short development cycles, which is intended to
improve productivity and introduce checkpoints
where new customer requirements can be adopted.
The methodology takes its name from the idea that
the beneficial elements of traditional software
engineering practices are taken to "extreme" levels.
Rules of XP
 Planning
1. User stories are written.
2. Release planning creates the release schedule.
3. Make frequent small releases.
4. The project is divided into iterations.
5. Iteration planning starts each iteration.
Rules of XP
 Managing
1. Give the team a dedicated open work space.
2. Set a sustainable pace.
3. A stand up meeting starts each day.
4. The Project Velocity is measured.
5. Move people around.
6. Fix XP when it breaks.
Rules of XP
 Designing
1. Simplicity.
2. Choose a system metaphor.
3. Use CRC cards for design sessions.
4. Create spike solutions to reduce risk.
5. No functionality is added early.
6. Refactor whenever and wherever possible.
Rules of XP
 Coding
1. The customer is always available.
2. Code must be written to agreed standards.
3. Code the unit test first.
4. All production code is pair programmed.
5. Only one pair integrates code at a time.
6. Integrate often.
7. Set up a dedicated integration computer.
8. Use collective ownership
Rules of XP
 Testing
1. All code must have unit tests.
2. All code must pass all unit tests before it can
be released.
3. When a bug is found tests are created.
4. Acceptance tests are run often and the score
is published.
TDD
 Test-driven development (TDD) is a software
development process that relies on the repetition of a
very short development cycle: first the developer
writes an (initially failing) automated test case that
defines a desired improvement or new function, then
produces the least amount of code to pass that test,
and finally refractors the new code to acceptable
standards.
Lean
 Lean is a production practice that considers the
expenditure of resources for any goal other than the
creation of value for the end customer to be wasteful,
and thus a target for elimination. Working from the
perspective of the customer who consumes a product
or service, "value" is defined as any action or process
that a customer would be willing to pay for. Lean is
centered on preserving value with less work.
Conclusion
Agile Framework helps teams to benefit like
 Faster Time to Market.
 Reduce Uncertainty & Risk.
 Increase ROI by focusing on Customer Value.
 Thank you! 

Flavours of agile software engineering

  • 1.
    B Y : TA M U R S U L T A N Z E E S H A N S A T T I S A D A F B A T O O L M A R I N A K H A N Flavors of Agile Software Engineering
  • 2.
    What is Agile?? Abilityto move quickly and easily
  • 3.
    Agile Software Development Agile development model is also a type of Incremental model. Software is developed in incremental, rapid cycles. This results in small incremental releases with each release building on previous functionality.
  • 4.
    Why Agile?  Theuse of the word agile in this context derives from the agile manifesto. A small group of people got together in 2001 to discuss their feelings that the traditional approach to managing software development projects was failing far too often, and there had to be a better way.
  • 5.
    Why Agile?...... They cameup with the agile manifesto, which describes 4 important values that are as relevant today as they were then. It says, “we value: 1. Individuals and interactions over processes and tools 2. Working software over comprehensive documentation 3. Customer collaboration over contract negotiation 4. Responding to change over following a plan
  • 6.
    Principles of Agile 1.Active user involvement is imperative 2. The team must be empowered to make decisions 3. Requirements evolve but the timescale is fixed 4. Capture requirements at a high level; lightweight & visual 5. Develop small, incremental releases and iterate
  • 7.
    Principles of Agile……. 6.Focus on frequent delivery of products 7. Complete each feature before moving on to the next 8. Apply the 80/20 rule 9. Testing is integrated throughout the project lifecycle – test early and often 10. A collaborative & cooperative approach between
  • 8.
    Types of AgileMethods  Scrum  XP  TDD  Lean
  • 9.
    SCRUM  Scrum ismost popular agile framework in the world, Scrum uses iterative and incremental development model. Scrum concentrates particularly on how to manage tasks within a team-based development environment. Scrum provides the simple framework of basic tenets to solve problems and deliver good results - more valuable software faster
  • 10.
  • 11.
    Scrum Roles  ProductOwner:  The Product Owner should be a person with vision, authority, and availability. The Product Owner is responsible for continuously communicating the vision and priorities to the development team.
  • 12.
    Scrum Roles  ScrumMaster:  The Scrum Master is responsible for ensuring Scrum is understood and enacted.  The Scrum Master is a servant-leader for the Scrum Team.  The Scrum Master helps those outside the Scrum team understand which of their interactions with the Scrum team are helpful and which aren’t.  The Scrum Master helps everyone change these interactions to maximize the value created by the Scrum Team.
  • 13.
    Scrum Roles  Team: According to Scrum’s founder, “the team is utterly self managing.” The development team is responsible for self organizing to complete work. A Scrum development team contains about seven fully dedicated members (officially 3-9), ideally in one team room protected from outside distractions.
  • 14.
  • 16.
    Extreme Programming  ExtremeProgramming is a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels.
  • 17.
    Rules of XP Planning 1. User stories are written. 2. Release planning creates the release schedule. 3. Make frequent small releases. 4. The project is divided into iterations. 5. Iteration planning starts each iteration.
  • 18.
    Rules of XP Managing 1. Give the team a dedicated open work space. 2. Set a sustainable pace. 3. A stand up meeting starts each day. 4. The Project Velocity is measured. 5. Move people around. 6. Fix XP when it breaks.
  • 19.
    Rules of XP Designing 1. Simplicity. 2. Choose a system metaphor. 3. Use CRC cards for design sessions. 4. Create spike solutions to reduce risk. 5. No functionality is added early. 6. Refactor whenever and wherever possible.
  • 20.
    Rules of XP Coding 1. The customer is always available. 2. Code must be written to agreed standards. 3. Code the unit test first. 4. All production code is pair programmed. 5. Only one pair integrates code at a time. 6. Integrate often. 7. Set up a dedicated integration computer. 8. Use collective ownership
  • 21.
    Rules of XP Testing 1. All code must have unit tests. 2. All code must pass all unit tests before it can be released. 3. When a bug is found tests are created. 4. Acceptance tests are run often and the score is published.
  • 22.
    TDD  Test-driven development(TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the least amount of code to pass that test, and finally refractors the new code to acceptable standards.
  • 23.
    Lean  Lean isa production practice that considers the expenditure of resources for any goal other than the creation of value for the end customer to be wasteful, and thus a target for elimination. Working from the perspective of the customer who consumes a product or service, "value" is defined as any action or process that a customer would be willing to pay for. Lean is centered on preserving value with less work.
  • 24.
    Conclusion Agile Framework helpsteams to benefit like  Faster Time to Market.  Reduce Uncertainty & Risk.  Increase ROI by focusing on Customer Value.
  • 25.