1 / 12

eXtreme Programming: An Introduction

Communication. Simplicity. eXtreme Programming: An Introduction. Presentation by: Jon Banta. Feedback. Courage. What is it ?. Agile Software Development Methodology Iterative Lightweight Fewer rules, practices and documents than a heavyweight methodology.

morna
Download Presentation

eXtreme Programming: An Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Communication Simplicity eXtreme Programming:An Introduction Presentation by: Jon Banta Feedback Courage

  2. What is it ? • Agile Software Development Methodology • Iterative • Lightweight • Fewer rules, practices and documents than a heavyweight methodology. • Stresses customer satisfaction and teamwork

  3. When does it work? • Risky Projects • Short timeframes, new technology/concepts • Dynamic Requirements • Frequently changing functionality needs • Small Programming Teams • 2-12 persons, possibly more • Highly Testable Projects • Must conform to automated unit and acceptance Testing

  4. Rules and Practices • Theology can be split into 4 categories • Planning • Coding • Designing • Testing

  5. Planning • Customer Writes User Stories • Same purpose as use cases • Release Planning Creates Schedule • Lays out overall project • Frequent Releases • Prioritized small releases of functionality • Measure Project Velocity • Measure of work actually getting done

  6. Planning (cont.) • Iteration Planning • Meeting sets plan for next iteration based on previous iteration’s velocity • Move People Around • Cross training for flexibility • Stand-up Meetings Every Day • Everyone contributes • Fix XP when Breaks • Change procedures if they don’t fit the project

  7. Designing • Strive for Simplicity • Choose a System Metaphor • System for naming classes/methods • Use CRC Cards • Create Spike Solutions • Code to explore technical problem, ignoring all other aspects (thrown away) • No Functionality Added Early • Refactor Mercilessly Whenever, Wherever

  8. Coding • Customer ALWAYS Available • All phases to write user stories/answer questions • Create Coding Standards • Consistent Code • Code Unit Tests First • Tests written before code • Pair Programming • One person code, one critique

  9. Coding (cont.) • Only One Integration at a Time • Easier to ID new bugs location • Integrate Often • Developers have access to latest version • Collective Code Ownership • Everyone Contributes to all parts • Optimize Last • Bottleneck guesses frequently wrong • No Overtime • Bad for morale

  10. Testing • All Code Has Unit Tests • Tests submitted into Repository with code • Code Must Pass Unit Test Before Release • Create Test When Bug Encountered • Create test before debugging • Frequent Acceptance Tests • Close relationship with quality assurance • All scores published • Customer verifies all results (black box)

  11. Conclusions • The eXtreme Programming method is designed to free developers from the overhead of heavyweight methodologies in order to increase productivity and creativity while still providing a framework for organized software development. • Focuses on getting the customer exactly what they want quickly but with high quality.

  12. More Info • www.eXtremeprogramming.org • www.Xprogramming.com

More Related