Extreme Programming (XP)
Extreme Programming (XP)
• If Testing is good:
• Continually write and execute test cases – Test Driven Development
• If Design is good:
• Everybody will design daily. – Refactoring
• If architecture is important:
• Everybody will work at defining and refining the architecture (Metaphor)
• Simplicity
• Build something simple that will work today.
• May not pay attention for tomorrow.
• Feedback
• System Staying out of users is trouble waiting to happen.
• Courage
• Don’t hesitate to discard code
Pair Programming
driver, writes code while the other, the observer or navigator, reviews
An agile software development technique in which two programmers work together at one workstation.
While reviewing they come up with ideas of improvements and adding features.
One writes the test cases and other writes the code that satisfies the test case.
Continuous integration
Practice of integrating a code several times a day and automating the testing of code.
Less time can be spend on debugging and more time in adding new feature.
The planning activity (also called the planning game ) begins with
listening.
Planning of,
– XP team
– Analysis of “stories” written by customer
The customer assigns a value (i.e., a priority) to the story based on the overall business value
of the feature or function
Members of the XP team then assess each story and assign a cost —measured in development
weeks—to it.
more than three development weeks, the customer is asked to split the story into smaller stories
and the assignment of value and cost occurs again
Cont…
three ways:
1. all stories will be implemented immediately (within a few weeks),
2. the stories with highest value will be moved up in the schedule and implemented first,
or
3. the riskiest stories will be moved up in the schedule and implemented first.
Release date (commitment)
2. Design
Coding
“Pair Programming”
4. Testing
Unit Testing