12
eXtreme Programming: An Introduction Presentation by: Jon Banta

EXtreme Programming: An Introduction Presentation by: Jon Banta

Embed Size (px)

Citation preview

Page 1: EXtreme Programming: An Introduction Presentation by: Jon Banta

eXtreme Programming:An Introduction

Presentation by: Jon Banta

Page 2: EXtreme Programming: An Introduction Presentation by: Jon Banta

What is it ?

• Agile Software Development Methodology

• Iterative

• Lightweight– Fewer rules, practices and documents than a

heavyweight methodology.

• Stresses customer satisfaction and teamwork

Page 3: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 4: EXtreme Programming: An Introduction Presentation by: Jon Banta

Rules and Practices

• Theology can be split into 4 categories

– Planning

– Coding

– Designing

– Testing

Page 5: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 6: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 7: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 8: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 9: EXtreme Programming: An Introduction Presentation by: Jon Banta

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

Page 10: EXtreme Programming: An Introduction Presentation by: Jon Banta

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)

Page 11: EXtreme Programming: An Introduction Presentation by: Jon Banta

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.

Page 12: EXtreme Programming: An Introduction Presentation by: Jon Banta

More Info

• www.eXtremeprogramming.org

• www.Xprogramming.com