|
Feb
19 |
Topic: No Tags
How many of you have experienced the following on a project? The initiative kicks off fairly well, but as time goes on it become apparent that what the customer asked for isn’t indeed what they needed. After some introspection the team comes to the conclusion they must have messed up the analysis, if only they had done a better job of understanding the need, all would have gone well. Sadly this can lead to the negative feedback loop where a team spends more time up front doing analysis, adding time to a project, only to find later on that they still didn’t “get it right”. With the project schedule growing, the business, fearing this will be its one shot to get changes to this specific capability, puts together an ever growing list of requirements, because they believe it will cost them more if they ask for it later. My experience has been that these two trends lead to a nasty pattern that can lead a team to analysis paralysis or with a greatly bloated scope. Ironically, this was done to be more efficient. I would like to say that once a team goes Agile, this problem is solved. As we are doing iterative work now, we don’t need to know everything up front, at least that’s the theory. We can go back as many times as we want and keep improving it, right? In my experience, even if we start an iteration with an flat list of acceptance criteria, the team will frequently find additional things they want to do but can’t fit into the time box. This is not bad, but after the 3rd “improved capability X” story shows up, product owner patience has worn very thin. Unfortunately, it is at this point, that the analysis trap can rear its ugly head. If we are doing the same piece of functionality over and over again, perhaps we haven’t done enough analysis. Maybe if we did more work up front, this pattern could be avoided. There is a grain of truth in this thought pattern, but I have come to appreciate it is a treacherous road to go down. If formal requirements gathering phases can’t figure something out properly, why do we think we’ll be able to do so in a 2-4 week iteration? So how does one balance the need for proper due diligence before taking onĀ story against the risk of opening up a can of scope creep capable of derailing your team’s progress? The best approach I have found is to increment a given feature along some clearly delineated theme as opposed to a list of criteria. Building stories around a specific dimension allows the team to further constrain scope and better manage progress. Generally speaking a given function can be broken down into different smaller parts, of course the challenge is upon which dimension do you break something apart, and how do you best manage those boundaries. In my opinion, this is the real challenge. I offer to you the following techniques I have used, with varying levels of success in no particular order.
Ultimately, we need to remember that is our goal, to get to workable product as fast as possible. Getting basic analysis done is a small, but critical part, of the battle. The product built needs to be put in front of users for feedback. I have seen teams also fall into the trap where something is “not done”, so they don’t want to show it to stakeholders. The challenge of calling something “done” is always a difficult one. By the very nature of iterative work, rarely are we ever complete. Our goal is to keep working to build the best product with the time and resources available. We need to adjust our mentality such that there is not one final truth, but rather a constant journey towards something better. This is something that needs to be communicated beyond the immediate team, so that stake holders and consumers or our products understand that this is a collaborative and iterative process. We should not be frustrated if it takes us two or three times to get something right. Rather, we should plan for it and try to manage in a methodical way to ensure we are truly building up quality and value rather than blowing in the winds of different needs. I hope this list of techniques is useful to you and would love to hear of other ways peole have been able to break down and solidify criteria for stories.
|
||||||
Brian, this was a great piece. Thanks for sharing your knowledge on the Agile development framework.
You are my hero!
~Keisha
I would offer that without first getting something “wrong” the first two times, we never would have figure out the way to do it “right” the third time. The adaptive feedback loop of act-inspect-adapt is intended to give us the opportunity to go back if we see a way to make something significantly better – rather than to waste endless time defining how to get it perfect the first time. The “measure twice, cut once” concept is a good idea for carpentry, but less useful in business and technology.


