Session - 12: Extreme Programming
Session - 12: Extreme Programming
Extreme Programming
1
Extreme Programming
Adoption Strategies: XP recommends adoption like
this
• Pick the worst project or problem.
• Apply XP until solved.
• Repeat.
If all the XP practices can't be swallowed at once, Beck recommends starting with:
• whole team together in a common project room
• test-first development
• acceptance tests written/owned by customers
• Planning Game
• pair programming
2
Extreme Programming
Fact versus Fantasy
3
Extreme Programming
Strengths versus "Other"
Strengths:
• Practical, high-impact development techniques, many of which are easily and sustainably
adopted by developers (e.g., continuous integration, test-driven development).
• Emphasizes customer participation and steering.
• Evolutionary and incremental requirements and development, and adaptive behavior.
• Programmers estimate the tasks they have chosen, and the schedule follows this, not vice
versa (i.e., scheduling is rational).
• Emphasizes communication between all stakeholders.
• Emphasizes quality through many practices. Test-first development, continuous integration, and
team code ownership are examples.
• Clarifies what is an acceptable system by requiring the customer to define the acceptance
tests.
• Daily measurement, and developers are involved in measuring and defining what to measure.
• Every iteration, developers get practice (during the Planning Game) identifying tasks and
estimating them, leading to improvement in these vital skills.
• Frequent, detailed reviews and inspections, as all significant work is done in pairs. Inspection is
strongly correlated with reduced defect levels.
4
Extreme Programming
Strengths versus "Other"
Other:
• Requires the presence of onsite customers (or proxies).
• Relies on oral history for knowing the design and requirements details.
• The XP practices are interdependent and mutually supporting.
• No standard way to describe or document the software design as a learning aid.
• Some developers do not want to do pair programming.
• Many projects will need a set of documents other than code. XP does not define
what these may be, and thus each project may create ones with similar intent,
but varying names and content.
• Lack of architecture-oriented emphasis in the early iterations. Lack of
architectural design methods. XP advocates claim simple design and refactoring
lead to the same goal.
5
Questions
1. Write History of Extreme Programming.
2. List out Strengths of the Extreme
Programming.
3. Identify activities involved in Extreme
Programming.
4. Differentiate pair programming with normal
programming.
5. List out Adoption Strategies in XP
6