Wednesday, 22 July 2015

Eat that elephant! (Agile Planning)

How to eat an elephant? One bite at a time
                                                                      -- Pop Quiz

What is the biggest predator in the Arctic?
It is the polar bear, right at the top of the food chain.

image credit Connie Barclay, US Fish and Wildlife Service; license : public domain
Recently, I read about Dr. Ian Stirling who has put more than forty years of research (hats off!) for this marine mammal. Yes! You read it right. The polar bear is classified as a marine mammal (Ursus Maritimus) because it spends much time in the icy cold waters of the Arctic; hunting for its favorite prey - the Ringed Seals.

Most people, especially children love these furry white giants. Did you know that they have some amazing adaptations to live in the extreme conditions of the Arctic?

Take their oily and furry coat. It serves to waterproof during swimming and protection to the biting cold. They can shut their nostrils while swimming so that the water does not enter it. The thick layer of fat under their fur coat adds further protection to the arctic cold. It may be interesting to know that they are more troubled by overheating, when they run than by the freezing cold.

You can read more about them and their interesting ways of life at Polar Bears International

Planning, working on and tracking an agile project are very much like these adaptations. You would plan and work on small batches and get reassurances through the multiple feedback loops. All of us have a natural ability for this since childhood; say from the time when we first learned to walk. As babies, we would take a few steps (agile is rich with such "baby steps" metaphors), perhaps stumble, sit for some time and try again. We got our feedback from the cheers, the supporting hands and the plush living room sofa.

Agile project planning and tracking are like these adaptations in life; prefer small batches and use multiple levels of feedback. And the best part is that it comes naturally to all of us.

I cringe when I hear someone talking about the agile process "compliance". It is up to each team to suitably adapt the implementation of small batches and the multiple feedback loops in their project situations. Common sense and our instincts are a good guide while adapting.

Let me share the case of a team which had started its transition to agile using Scrum. In the beginning, the product owner had the understanding that requirements were called User Stories in Scrum and tried to fit them in the Post Its (using some rather tiny fonts :). After some training about User Stories and Product Ownership, the team came up with a checklist for User Stories which had items like 
1. Does the story have less than three user acceptance tests? (It is suggested to split if there are more than three user acceptance tests)
2. Is the story estimated for size and the estimate less than 13 story points? (The team used the planning poker)
Even after this, many stories took more than a week to complete and many could not be completed as planned in the sprint. For some completed stories, the user acceptance tests found many issues related to its user experience and implicit behavior.

A retrospective suggested that the product owner would stop himself after writing the second or third acceptance test case for every story. Sometimes, he would just explain these "missed" test cases as some scenarios in the requirement brainstorming.

A checklist of good practices which worked well for some teams may not work as-is for us, in our team and context. What may be more effective would be an understanding (and appreciation) of the aphorisms behind these practices; in this case it is about preferring small batches and using multiple feedback loops.

We can size a user story to check if it fits the small batch size condition visually; by checking whether a story description is within one or two lines or intuitively; sensing that it is bigger if we find ourselves discussing about for more than say 10 minutes in a brainstorm or instinctively; recalling that last time we did something like this took us much longer than two days or reflectively; we did coding for a day and in the daily scrum of the day after, we feel that it is going to take longer than one more day. Agile planning, adjustments and tracking are about such adaptations.

Coming back to our furry friend, the polar bear is a picky eater, like a food connoisseur, in the winter when the seals are easily available. They would eat only the fat of the seal and leave the rest for smaller predators like the arctic fox. However, in late summer as the ice recedes, the seals migrate further north to areas with deeper ice. The polar bear would have to survive the summer by feeding mostly on dead whales that wash ashore. They have even developed a keen sense of smell for finding such food. 

Adaptations are quite wonderful; they fuel the life on.