Courage and Respect are 2 of the 5 XP Values; and Energized Work (aka Sustainable Pace) is one of the Primary Practices. I want to share a work ethic that would seem to be opposite of these values and practices; I will then demonstrate how it is actually just another way to implement XP practices and how this work style has these value built in.
I was recently involved in a task which required me to work very long hours (12-16 hours a day); not only that, I was working on the weekends as well. I was not alone in this endeavor, I had a team of 3 working with me. We had been at it for almost a week now. This goes directly against the popular notion of "Energized Work" practice of XP.
This practice states that developers should not work more than 40 hours a week. And any overtimes should not be followed by more overtime in subsequent weeks. The way to interpret this is that programmers should only work while their brains are working at their 100%.
Respect and Courage
These values depict faith in in your fellow team members and having enough trust level in their abilities. They also depict persistence: the ability to not give up on a problem; the ability to return to the problem the next day and solve it.
The Other Viewpoint
Let’s get back to my work week last week. There is no way that I could be doing any kind of ‘Energized Work’, right? Wrong, says I. Energized Work means that you should be doing your best work when working. This is normally true if you are doing a long term project. However, if you are doing a short term Proof of Concept of sorts, then it is possible to give your 100% even while working insane hours. The reason is that you know that this is only a short term effort.
But this knowledge is not enough for you to keep giving your best. The other thing that keeps you going in such assignments is the challenge involved, the team, and the inherent desire to beat the problem which keeps you from quitting and keeps you going at close to a 100%.
This allows you to put a very high level of work, which fulfills the Energized work requirement. You continue to toil because of the software, and not because of the job. Since you are working in a team you have to learn to respect each other’s work because and lack of respect might jeopardize the whole objective; so you end up trusting your fellow team mates, and they usually end up justifying that trust. And finally, the reason you don’t take a break is because you are so highly persistent, thus displaying Courage.
Wrapping it up
Like anything else there is more to XP than meets the eye. Books can only teach you so much and one should try to go beyond what the words say and try to understand the spirit and motive behind those words. Most of the time guidelines are to cover 99% of the scenarios and if you fall in the 1%, it doesn’t mean that you cannot follow the spirit behind XP. The point I am trying to make is that XP can be adopted (should be adopted) to your style and requirement of work even if it doesn’t conform to the traditional model.
What are your experiences in adapting XP to your style of working? Do you agree that the case described above can be categorized as XP?