Tuesday, March 22, 2011

Giving context

I am in Norfolk and the weather is foggy. And I am thinking about how best to do Release Planning. More specifically, how to plan for a big 2 year project where everyone is used to a waterfall approach.
So, here are some thoughts.

Our problem is like being lost at sea in a fog. We need to get our bearings.

One metaphor is that we need to triangulate.

And, in our situation, we need not only the skipper or captain to understand our bearings. We need everyone participating, eg, everyone on the team doing the estimating, to have their bearings.

Now, also imagine that we are doing this at scale, meaning, for example, with about 28 people in 4 release planning teams. We have done a high-level overview of the 15 key high-level 'features'.

So, within and between features, how do we enable everyone on the team to get their bearings? What are some good practices?

First let's understand the problem better.

One thing is to give them confidence that they basically understand the stories. If they lack confidence, they get scared to estimate. They slow down too much, and, if the stories are too vague, they should 'slow down'. But at the start there is always some vagueness, so we must live with some of that.

As I say, 'if you wait for perfection, you might wait too long.'

One thing is that they need to understand the stories in multiple dimensions. And in all the key dimensions that affect business value and effort (story points).

One thing is that they 'basically' understand the story, but they don't feel compelled to understand 'everything' about the story now. They feel ok to discover much of the detail later.

So, we want context at the high level, including very high level process flows, business value, large epic relationships, etc.

We do NOT need context at the very low level. At the extreme, we would have to do the whole project to discover 'all' that detail.

But, we do also need some 'middle level' detail or context. And each project or effort has to argue about how low is this middle level.

Part of the problem is sharing the explicit and tacit knowledge about what the customers and the firm want throughout the whole team. (i won't try to explain now why the whole team is so important.)

So, here are some suggestions about giving or sharing context.

1. Creating the stories as a whole team. Among other things, the whole team starts to own the stories.

2. Discussing the relative business value of each story as a team. Perhaps with business stakeholders.

3. Seeing all the stories on the wall, and discussing relationships or groupings of stories.

4. Good use of the 'role' in story writing. Gaining clarity about each role. Personalizing each role ('You saw Suzy; this is what she does.').

5. Better use of the 'so that' clause in the story line.

6. Reviewing the stories against the INVEST criteria. Are all the stories 'good enough' by these criteria?

7. More artfully sliced stories can be easier for everyone together to understand. This is a skill that the PO and the team get better at with time. Focusing on the INVEST criteria is a good place to start.

8. Middle level business process flows (middle compared to the big system). Maybe 'high' compared to the big feature.

9. More high level acceptance criteria per story. Eg, 1-4 acceptance criteria bullets. Not necessarily for every story, but maybe just for some of them.

10. Pictures of interrelationships between modules of the big system.
'That info will be here, and we use it there.'

11. Pictures of interrelationships between 'layers' of the system or 'features' or what role 'x' wants.

11. Seeing how stories are grouped, or how they were broken down. 'we had this big epic, and we broke it down into these smaller stories.'

12. Understanding 'what role x is really trying to accomplish here' can be very useful.

13. Reviewing the relative business value of each story. Business value is not just what customers want, but also what the firm needs (eg, lower risk or more revenue).

14. Pictures, pictures, pictures. Drawings, drawings. Discuss them. Again. Use the white board.

15. 'It is not what I know as the PO or BA; it's what the whole team knows that matters.'

16. Some sense of the relative complexity of the business rules in stories.

17. Some sense of the relative number of data attributes (or whatever phrase you prefer) in a story.

18. Some sense of where this story ends and these other related stories begin.

19. Using Planning Poker to determine how much more context is needed. If they have some context and then vote, and the votes are close or quickly become close, then probably no more context is needed.

20. Communication. Doing something, and then asking everyone 'how can we do this better given our situation?' This includes our work, our people, and what information is already available. Often they will end up with something that we meant above, but they want to use different words to express it. Which is of course fine.

Final note (for now): different teams get 'stuck' at different points. This is normal and not a big problem. Unless they can't get themselves 'unstuck'.

No comments: