Extreme Programming (XP)

CSE4033 - IT Project Management | Module 4: Agile Project Management

Learning Outcomes

By the end of this section, you will be able to:

What is Extreme Programming (XP)?

Extreme Programming is an Agile software development methodology that aims to produce higher quality software and higher quality of life for developers. XP emphasizes:

XP Values and Principles

Communication

Team members communicate continuously through practices like pair programming, daily standups, and informative workspace.

Simplicity

Design the simplest solution that works today. Avoid speculative "future-proof" designs that may never be needed.

Feedback

Get feedback quickly through practices like continuous integration, test-driven development, and short iterations.

Courage

Have the courage to refactor code when needed, to throw away code that isn't working, and to speak up about concerns.

Respect

Team members respect each other's contributions, value each other's opinions, and work together effectively.

Interactive XP Practices Explorer

Key XP Practices

Select a practice to learn more about how it works in XP:

Pair Programming
Test-Driven Development
Continuous Integration
Refactoring

Pair Programming

How It Works

Two programmers work together at one workstation
One writes code (Driver), one reviews each line (Navigator)
Roles switch frequently
Pairs rotate regularly across the team

Benefits

Higher code quality
Knowledge sharing
Fewer defects
Better team cohesion

Test-Driven Development

How It Works

1. Write a failing test for new functionality
2. Write minimal code to pass the test
3. Refactor the code while keeping tests passing
Repeat for each small unit of functionality

Benefits

Comprehensive test coverage
Simpler, focused code
Design emerges from tests
Regression protection

Continuous Integration

How It Works

Developers integrate code frequently (multiple times per day)
Each integration verified by automated build
Includes running all automated tests
Fast feedback on integration problems

Benefits

Early detection of integration issues
Reduced integration risk
Always-ready deployable code
Improved team communication

Refactoring

How It Works

Restructuring existing code without changing behavior
Done in small, safe steps
Supported by comprehensive tests
Performed continuously, not as special project

Benefits

Improved code readability
Reduced complexity
Easier maintenance
Better architecture emerges

XP in Practice

When to Use XP

XP works best in these situations:

XP vs. Scrum

Aspect XP Scrum
Focus Engineering practices Project management
Iterations 1-2 weeks 1-4 weeks
Key Practice Pair programming Sprint planning
Customer Role On-site customer Product owner
Complementary XP provides engineering practices Scrum provides management framework

Test Your XP Knowledge

Extreme Programming Quiz

1. What is the correct order of steps in Test-Driven Development?

Code → Test → Refactor
Test → Code → Refactor
Design → Code → Test
Code → Debug → Test

2. Which XP value encourages designing the simplest solution that works today?

Communication
Feedback
Simplicity
Courage

3. In pair programming, what is the role of the "navigator"?

Writing all the code
Reviewing each line of code and thinking strategically
Documenting the process
Managing the schedule

4. Which of these is NOT a core practice of XP?

Continuous integration
Small releases
Detailed upfront architecture
Collective code ownership

Further Learning Resources