120 likes | 252 Views
This presentation by Jon Banta introduces Extreme Programming (XP), an agile software development methodology that emphasizes communication, simplicity, and teamwork. Designed for risky projects with dynamic requirements, XP leverages iterative processes, frequent releases, and rigorous testing. Key practices include customer collaboration, user story development, pair programming, and collective code ownership. XP aims to enhance productivity and creativity by minimizing overhead and maximizing customer satisfaction while delivering high-quality software. Learn how to effectively implement XP practices in your development team.
E N D
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. • Stresses customer satisfaction and teamwork
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
Rules and Practices • Theology can be split into 4 categories • Planning • Coding • Designing • Testing
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
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
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
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
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
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)
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.
More Info • www.eXtremeprogramming.org • www.Xprogramming.com