EXtreme Programming
BY
R.V.Ramesh
MCA II Semester
Extreme programming
A gentle Introduction:
The first Extreme Programming project was started
March 6, 1996. Extreme Programming is one of
several popular Agile
What is Extreme Programming?
Extreme Programming is a discipline of software development
based on values of simplicity, and courage.
It works by bringing the whole team together in the presence of
simple practices, with communication, feedback enough feedback
to enable the team to see where they are and to tune the practices
to their unique situation.
Process:
Extreme Programming is successful because it
stresses customer satisfaction.
Instead of delivering everything you could
possibly want on some date far in the future this
process delivers the software you need as you
need it.
Extreme Programming empowers your developers
to confidently respond to changing customer
requirements, even late in the life cycle.
Extreme Programming emphasizes teamwork.
Managers, customers, and developers are all
equal partners in a collaborative team.
Extreme Programming improves a software
project in five essential ways; communication,
simplicity, feedback, respect, and courage.
Extreme Programming Overview
Development overview
Purpose
User Stories are used to create time estimates for the release
planning meeting.
They are also used instead of a large requirements document.
User Stories also drive the creation of the acceptance tests.
Extreme:
Taking proven practices to the extreme
If testing is good, let everybody test all the time
If code reviews are good, review all the time
If design is good, refectory all the time
If integration testing is good, integrate all the time
If simplicity is good, do the simplest thing that could possibly
work
If short iterations are good, make them really, really short
Why XP works:
Light-weight: discipline without bureaucracy
Under stress, people do what is easiest
All XP practices have short-term benefits as well as long-term benefits
Development as a Conversation
The code is the documentation
XP is fun
Who benefits from XP?
Programmers:
get clear requirements & priorities
can do a good job
can make technical decisions
don’t work overtime
Customers:
get most business value first
get accurate feedback
can make informed business decisions
can change their mind
Pair Programming
Two people looking at one machine, with one keyboard and one
mouse
Two roles: implementation and strategy
All production code is written in pairs
Implement XP with limited available resources to
revive the project:
• First work in pair and take over the ownership of code
left by senior programmer using one computer in each
• Started to work on each others code in pair. Promote a
code standard. Promote a collective ownership of
project.
• Perform unit test, integration test, and user test
frequently on each implementation.
• Users are consistently available to each programmer on
feedback about changes, requirements
implementations.
• All above had made development, modification, unit
testing and integration testing much easier and faster.
Advantages:
1. notecards
2. group hug
3. ruby on rails
4. Object Oriented
5. gift-based society
Disadvantages:
1. stupid managers wont understand
2. other programmers (Stupid Ones) won't understand
3. expensive, must attend training seminars to receive
certifications,flowcharts, mug. well worth it though
4. wiki not as good as EXTREME
5. you're having too much *Fun*!!, you'll never want
to use rainstick or caddyshack methodology again
Conclusion
It has been found that the intense fear and adrenaline rush
produced by dangerous situations heightens the programmer's
awareness and thus the quality of code produced, albeit at the
cost of reducing the programmer's life expectancy (due to
continuous disintegration).
However, with colleges and universities churning out highly
qualified young programmers at an astonishing rate, this is
considered an acceptable and very cost-effective tradeoff.