One approach to transitioning development teams to
Extreme Programming (XP) is to first
transition the programming staff completely. The XP Programmer Team Week
gets a big jump on that process by immersing an on-site team of programmers
in all of the XP programmer practices:
One Team: Everybody works closely together in an open space.
Pair Programming: Every line of code is written by two programmers
at one computer.
Shared Codebase: All of the code is available to all of the team.
No person or pair owns code.
Continuous Integration: Pairs commit defect-free code back to the
repository several times per day.
Test-driven Development: Programmers use test-first to drive
simple design, and to support refactoring.
Refactoring Ruthlessly: Programmers clarify and simplify the
code as they go, whenever the tests all run clean.
This exercise does not use user stories, the Planning Game, iteration
metrics, constant customer communication, or other XP customer-facing practices. The focus
is entirely on programmer practices and programmer interaction.
A non-agile team of programmers using the XP programmer practices together
for an entire week experiences new levels of team cohesion, productivity,
code quality, order, knowledge exchange,
and pride in their work. The goal is for participants to 'fall in love' with this new way
of working, becoming reluctant to go back to the old way.
Management can witness these new levels of productivity and increased morale
for themselves, simply by hanging around in the work area.
The momentum from the exercise carries over into
overall organizational commitment to go Agile.
Preparation and setup for the XP Programmer Team Week are critical.
On Day One of the exercise, the team of programmers must be able to drop right into a
completely prepared environment, ready to go.
We therefore provide a prepared example codebase, requirements, and technical tasks.
For off-site versions of the course, we also provide the physical space and
prepared workstations. For on-site version of this course,
Adaption and/or client staff spend between one and two days
beforehand preparing them. Specifically, the course requires:
· Physical space: A team-friendly workspace, including
pair-friendly workstation arrangements, and access to lots of
whiteboard space.
· Software infrastructure: Each workstation needs
full installations of a refactoring IDE, JUnit; a build system; code repository access; etc.
Note: Course contents are subject to improvement without notice. :-)
|