I know well what agile development is. Nothing in the world gives better working environment for creating marvelous new systems, than a well formed XP team – your pair programming buddy will definitely tell you if you are on a wrong track. The atmosphere is great, the team is One. Match that with a rigoristic approach to testing, visibility and user involvement, and you have a bullet proof recipe for producing word class software.
But distributed agile – whats that? After having met the dutch-indian company Xebia at JAOO 2008, which claims to have mastered the tricks and secrets of Distributed Agile Development, so that a team can be distributed around the globe, and still experience this very special atmosphere of hyperproductivity, I was intrigued and determined to find out.
This should be obvious – you need in the beginning of a project to see each other in the eyes, the team has to be formed – thats called co-location.
We have a small project, 3 developers in total, so I buy a ticket to Delhi, and get a business visa in the passport.
The first thing that strikes me is the long office hours.
Second experience is the xtreme service. For a poor european, used to ‘self-service’ the indian way of delivering service feels overwhelming. I counted over 100 people employed, just to make my morning commute to the office painless.
Third experience is a quiet yoga studio, with drop in-classes all the evenings.
I am thrilled to meet the team, we have been conversating a couple of times previously via Skype – it is such a heart warming feeling finally to meet them. After day 1 we have a good overview of the architecture, have filled walls, whiteboard and glasspanes with the mandatory UML diagrams, updated the electronic backlog and are ready to start work.
People are smiling, engaged, inquisitive. I am surprised by their level of proactiveness, and intelligent inquiries, foreseeing possible problems weeks in advance.
The team spirit starts to soar – yes, we can do it.
XP over the wire
All good, we have been co-located, but the whole idea behind distributed agile is … well, distributed.
Back in Denmark, days are passing by in a productive buzz.
I see a message blinking from Sunil. He is stuck and needs help on some configuration issue. We exchange code snippets back and forth, after a few minutes the problem is solved. Next day he has generalized the solution, and helped unstuck me.
Skype chat is on all the time when we work.
Each morning we have a video session on Skype to get updates, and plan next days work. The time difference gives the Indians a head start on the days tasks.
After a couple of days we discover, that we have accelerated development speed, and actually surpassed the sprints goals.
You wouldn’t be able to tell from velocity charts, that this team has been distributed.
- Things take time.
- Accommodate for Sprint 0
- Set up good facilities for Skype calls … yes, Skype makes it possible