Problem Solved: Formula to figure out How Much Detail is Required with Agile Requirements
WARNING: Shameless plug for my session at Agile2014 ahead. I recently got the priviledge to listen to Alistair Cockburn talk to a small group at the VersionOne offices. He told the story about Kent Beck and how the idea of how the user story on notecards was born (I've read about this before, but it was great hearing it from Alistair). He talked about how the card was just that // a card with a title that reminded the developer and the target customer/user what they were building, maybe there were a few notes jotted down on the card. The narrative about the story wasn't captured on the card // the details were verbally communicated because the developer and customer were all in close proximity of one another — they did this crazy thing, they simply walked down the hallway and talked. In addition to this story, Alistair spoke about his experiences with a team that had development in Singapore and the business folks and architecture worked in the states. The company was having challenges with the team in Singapore at getting things done efficiently and, in some cases, getting things done right. It seemed like there was an inordinate amount of time that had to be spent on discussing requirements and getting questions worked out. The company decided to send some of the business and architect team members to Singapore to work out some improvements. When they did // the quality and productivity went up. When they returned, it took just a couple weeks before productivity slipped and all gains were lost. The reason for these results seems obvious // timezones, communication barriers, and not being able to have impromptu conversations can have a great impact on how well teams understand the requirements especially since a lot of conversations capture the specifics. Hearing these two stories triggered some ideas in my head, and I thought — why can’t there be a simple formula we can use to gauge the amount of detail (words) we capture in a story to make it work. Through some hard work — I've now have that formula. Here are some factors that I think go into figuring this out:
- Complexity / just how well does the team understand the story and how hard the team thinks it will be, either from experience or flat out guessing. Usually captured as story points.
- Difference in Timezones / the number of hours that separate us greatly impacts how fast communications can happen, especially if the communications occur near the bookend points of the day.
- Auditing Requirements / audits are generally costly and require an additional amount of documentation overhead.
- Multiple Offices / when people are in different buildings, it raises the amount of details that have to be captured.
- Offices on Different Continents / although this somewhat relates to timezones, there is also the fact that people speak different languages. Even if they all agree to use english as the primary business language, there's still slang, accents, and even cultural differences that impact communications.
How Long the Team has Worked Together / knowing each other is key, we figure out accents, we are able to exchange less verbal words, and we learn how to work with one another // what level of information is required to work effectively as a team. So I reached out to some friends and the folks at Tagri Tech, and with their help // here's the formula we came up with: Amount of Words in Story = (Complexity * (1+ max absolute difference between timezones) * (1 + # of annual audits) * (Total # of locations * # of continents)) / (# of quarters the team has worked together) And here's the formula in action: Multiple simulations have been ran and I found that the formula works in less than 0.01% of the situations. The people I've been working with at Tagri Tech’s statistics analysis department have ascertained that every team is different, and every product is different // this means that no matter how much documentation you have // the people involved in creating the documentation or the target consumer of the documentation really are not going to read it. They found that while some documentation like compliance reporting and end user documentation are necessary, much of the collaboration level docs are only consumed by the person that created it. Ultimately, Teams will generally work together to figure out how much details are truly required to facilitate working effectively. If your teams are having challenges with how much documentation is required within Agile Software Development projects, then please come to Agile 2014 and check out my session on Friday at 9AM in the Sanibel room, we'll talk about some ways teams can workout their own formula. Update: Hopefully you read all the way to the bottom of this post and realize, this is just a ruse, a joke, a farce, me not being serious. My point is, agile is hard and the concepts of documentation around building software makes it difficult as well. The right amount of details in our requirements is a trial/and/error thing, sometimes you'll have too much details and at times too little.