Agile Development Ultimate Slides
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Agile Development Ultimate Slides






Total Views
Views on SlideShare
Embed Views



1 Embed 5 5



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Agile Development Ultimate Slides Presentation Transcript

  • 1.
    • Agile development
    • Extreme Programming (XP)
    • Abder-Rahman Ali
    • M.S.Software Engineering
    • DePaul CTI
    • [email_address]
  • 2. Just before we begin…
    • Agile development is a:
    • Software development process model .
  • 3. Software development Process Task (1) Task (2) Task (3) . . . Task (n) Goal HIGH QUALITY SOFTWARE Action
  • 4.
    • In other words…
  • 6. Software development Process Models
  • 7. Nature of Software Change
  • 8. Change in what?
    • Software being built (i.e. requirements).
    • Team members.
    • New technology appearing.
  • 9. Implications …
    • Change is the HEART of software.
    • Support for changes should be built in everything we do in software
  • 10. So, what is Agility?
    • A rapid and effective response to change .
  • 11. So, what is Agility?
    • Effective communication among stakeholders.
  • 12. So, what is Agility? Drawing the customer into the team .
  • 13. This yields to…
  • 14. Rapid & incremental delivery of software.
  • 15. An Agile team…
    • A team that is able to appropriately to changes.
  • 16. Extreme Programming (XP) Planning Design Test Coding Release The XP Process The most widely used Agile process, and it is originally proposed by Kent Benck.
  • 17. Planning
  • 18. Design
    • KIS Principle
    We just want the design to provide an implementation guidance for the story as it is written ---nothing less, nothing more. Don’t try to design extra functionality because you assume it will be required later.
  • 19. Design
    • CRC Cards
  • 20. Design
    • Spike Solutions
    1- A design problem occurs. 2- Create a PROTOTYPE of that portion of the design. 3- Implement and evaluate the prototype. Intent: To lower risk when true implementation starts.
  • 21. Design
    • Refactoring
    Changing a software system in such a way that: 1- The internal structure is improved. 2- The external behavior is not altered (not changed). Design occurs CONTINUOUSLY as the system is constructed. Also means:
  • 22. Testing TEST FIRST
  • 23. Testing Unit tests are written before the code. Tests are run to ensure that our software fails . A good test case is one that ensures that the software fails. Test is rerun until it passes .
  • 24. Testing
    • All unit tests are executed daily .
    This can raise warning flags early if things are going wrong.
  • 25. Testing
    • Acceptance tests (customer tests):
    They are specified by the customer. They focus on the overall system features and functionality that are visible and reviewable by the customer. They are derived from user stories.
  • 26. Testing Fixing small problems every few hours takes less time than fixing huge problems just before the deadline. Fact:
  • 27. Coding Pair Programming
  • 28. Coding Two people work together at one computer to create code for a story. This provides a mechanism for real-time problem solving and real-time quality assurance . Keeps the developers focused on the problem at hand. As pair programmers complete their work, the code they develop is integrated with the work of others.
  • 29. Coding ROI
  • 30. Coding ROI
  • 31. Release Project Velocity The number of stories that we performed in this release.
  • 32. When to use XP? Dynamically changing requirements. Risky projects. Small development groups (up to 100). Non-fixed price contract.
  • 33. XP Rules…
    • Planning
    • User Stories
    • Release Planning
    • Small Releases
    • Measure Project Velocity
    • Divide project to iterations
    • Iterations Planning
    • Move People around
    • Stand up meeting
    • Designing
    • Simplicity
    • CRC cards
    • Spike solutions
    • Refactor
  • 34. XP Rules…
    • Coding
    • Customer available
    • Code standards
    • Test-Driven
    • Pair Programming
    • Sequential change integration
    • Integrate often
    • Collective code ownership
    • Don’t optimize early
    • No overtime
    • Testing
    • Unit test everything
    • All tests pass before release
    • Bug == new test
    • Acceptance tests
  • 35. We Must Ask Ourselves… Do we need Agile or any other Software Development Process models in our lab?
  • 36. Questions?