Today Joel Spolsky criticized the agile software development methods a hypothetical story by Dmitri Zimine.The story tells about Sarah the programmer, that had to spoil the whole two week iteration by complying to the urgent two hours long request of her project manager.
The issue that bothers Joel and makes him suspicious about the agile camp is the fact that the request could be really urgent and failing to implement it really soon might have cause a huge sale loss.
Well, the agility is really about agility and there are several options of handling the urgent requests:
1. If external requests come more or less constantly (e.g. if developers have to support the old projects) team can plan for loosing couple of days of the every iteration for the support stuff
2. As Dmitri correctly noted and Joel somehow missed, there is a possibility to cancel the iteration and to focus on the external request if it was really important. The only thing the agile process facilitator (e.g. Scrum Master) has to do is to carefully explain the potential losses to the product owner or whoever is deciding on what is more important. There are extremely urgent requests that must be handled as soon as possible, just be aware that it might delay the main project two weeks, not just two hours
3. If the team iterations are not mini-waterfalls, but rather team develops the committed code feature by feature, there might be a possibility not to cancel the whole iteration, but to cut out the not yet touched features, complete the iteration as soon as possible and switch to that very important request.
There are very many situations when two hours can waste two weeks. However, there are situations when these two hours just have to waste two weeks. Agile processes don’t mind, they just want the decision maker be informed about the consequences.