Agile Practices can undermine agile principles
Saturday, November 18th, 2006In a post about context switching Dmitri Zimine inadvertently shows how a strong commitment to specific Agile Practices can undermine the agile principles.
The story is how a development iteration was screwed up by the organisation’s attempts to expedite an unexpected request from Sales. The story is hypothetical and is there to make a point so the characters actions seem a little extreme.
I will summarize the post:
- A two week iteration has just left planning and development is starting
- Sales Guy comes up with urgent request
- Sarah the Developer makes a vague, non-committal estimate for two hours
- Development Manager suggests not doing it because iteration is already planned
- Project Manager uses the “its just two hours” to push the work
- Sarah ends up spending three days on the work - iteration is “dead”, developers are demoralized, commitment to agile practices is damaged.
Dmitri’s view of what should have happened: Sarah is left alone. Development Manager offers the Project Manager two options:
- “No” : Put the request in for the next iteration (effectively waiting 4 weeks for feature).
- “Drop Everything” : Cancel the whole iteration and re-plan with this on top.
What principles do I feel have been sacrificed here?
- Individuals and interactions over processes and tools
- Customer collaboration over contract negotiation
The Development Manager’s basic problem was that he did not interact and collaborate, he had negotiated a process up front and stuck to that process. He also failed to use any opportunity to gather more data to help him make a better decision.
There are a couple of injections that could have been made.
Developer gives a non-committal two hours estimate:
injection: “Lets time box this, have a look for an hour then come back with something firmer. Ask Cassandra (another experienced, but more pessimistic, developer) to look at it with you)”
outcome: We get a better estimate, hopefully nearer the correct order of magnitude, Sarah has some backup when she makes the re-estimate.
Project Manager uses “It’s just a couple of hours”
injection: We’ll lets see, have you discussed this with the sponsors? They need to know that they may loose something for this. We should have a better estimate in an hour, can you schedule the call for then?
outcome: The business stakeholders who have a better idea of the financial impact will get to make an informed decision.
With those two injections the positions move. If Sarah and Cassandra come back with “two to four days” then the stake holder’s discussion will be more focused. If all the business sponsors still agree this is really more important then a re-plan is not out of the question but everyone will know that it is a significant event.
Context is important:
- Does this Sales Guy do this to you every iteration? Is this the first time in a year?
- Is this totally out of the blue? As Development Manager its good to know what’s hot with the sales team.
- The Project Manager does not seem to have bought in to the process? Why not?
No one likes expediting, it always causes disruption and should be seen as an exception. If it is the norm you really are in trouble. It will happen from time to time, for sound reasons and your process should be able to absorb it.
Any development system is a Complex Adaptive System and one of the requirements for a successful Complex Adaptive System is that it does not violate the Law of Requisite Variety which says: “The larger the variety of actions available to a control system, the larger the variety of perturbations it is able to compensate.”
The development Manager had two reactions to the request: “No” or “Everybody drop everything! we have to re-plan the entire iteration because Sarah has to do a couple of hours on something else”.
These seem unreasonable to me.
However, after the injections we get: “The business sponsors don’t think its worth a two to four day disruption, we’ll do it in the next release” or “Everybody drop everything! we have to re-plan the entire iteration because something really important has come up that is going to take several days.”
If we were not doing Scrum we might even be able to shuffle the plan “in flight” but that’s a different discussion. If the team has a rotating firefighter role can they do it? There are nearly always options.