Your SlideShare is downloading. ×
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Agile Development Ultimate Slides
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Agile Development Ultimate Slides

2,761

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,761
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
122
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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…
  • 5. THE ROADMAP THAT YOU FOLLOW
  • 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?

×