28
XP Loops
Filed under: CODE | Tags: devoxx (3), extreme programming, LinkedIn, xp, xp loops | December 28th, 2008
At Devoxx University day 1, I attended the session: Scrum in Practice by Chery Sylvain and Yves Hanoulle.
This session was divided in two parts, XP Loops and SCRUM. In this blog post I gonna write a recap of the first part.
The abstract of this part:
An XP team behaves in an iterative and incremental way. We describe this behavior in 3 endless loops that the team goes through.
The outer loop is the release loop, which interacts with the outer world, and which will let a predefined amount of requirements come in and working quality software pop out of the team regularly.
The middle loop is the team loop, which handles day to day team activities.
The inner loop is the coding loop, where two programmers, sitting side by side, produce a unit of tested code.
Extreme Programming is a methodology that is very simply to explain. Through the focus on the details, a bigger picture will emerge, where you will be able to see the principles and the values. Each of the practices of Extreme Programming will be discussed briefly. Long enough to give you a good global overview, but only just long enough to leave you with a lot of questions.
They handed out a handout with a schematic overview of the loops. I found the same picture here and used it for this post.

The release loop:
On-site Cusomer + Stories
- Trust and decisions;
- Collaboration;
- Stories including business value and dev. points;
- Communication.
Small Releases + Planning game
- You can not predict the future;
- Feedback and steering;
- Deliver value early and often.
The team loop:
Sustainable Pace + Daily Standup Meeting
- No student syndrome;
- For all involved;
- Respect for people;
- Daily standup (15 min);
- Small steps.
Open Workspace
- 1 team, 1 room;
- Self organizing teams (need coaching in the beginning).
Metaphor
- Shared vision;
- Team == product.
The coding loop:
Pair programming
- Switch keyboard ! (max 30 min/person);
- Talk ALL the time;
- In long term its faster an higher quality;
- Continuous learning;
- Truck number should be high. (How many team members can you afford to lose?)
Unit tests!!
- Quality of work;
- Test driven design/development;
- Technical Excellence.
Refactoring
- Keeping code clean;
- KISS (Keep It Simple, Stupid) for simplicity.
Continuous Integration
- ALWAYS!;
- To avoid 90% ready;
- Be in control.
Collective code ownership
- Everybody can change everything anytime…..as long as you follow the team rules;
- Trust.
Acceptance tests
- DoD (Definition of Done);
- Write this on back of the story index card (by the testers);
- Working software is a measure of progress (Velocity of the team).
Retrospective (not on the diagram, but important)
- Improve yourself;
- Prepare for the next release;
- Team comes up with it;
- Continuous improvement;
- So now and then with bigger team (team + Infra, product owner, dba etc);
- Listen to the team;
- Let the team try things.
For more info about Extreme Programming: http://www.extremeprogramming.org



Artem | December 28th, 2008 @ 22:59 |
Funny coincidence. Just two days ago I was giving a presentation on Agile to students in my Alma Mater and one of the points were the 3 levels of feedback loops built into Scrum
From a helicopter height of abstraction, Agile often looks as little more that a powerful experimentation framework with plenty of feedback loops here and there.
Pingback: Duchess | a Community of Female Java Developers