Posts Tagged INVEST (mnemonic)
Many Agile coaches have their own list of top failure modes. My favorite one is Mike Cohn’s: “How To Fail With Agile: Twenty Tips to Help You Avoid Success“.
But I also want to publish my winning list of things that impact teams and undermine their trust in business and Agile (combined from experience gained observing different teams at different times, so no particular team is meant here 🙂 ).
So tips are written from the Product Owner perspective:
1. Argue in front of team at Sprint Planning. Let them see you were not capable to decide what you want to build them. Moreover, involve them into arguing. This will demonstrate how your (PO) team misses integrity;
2. Demonstrate that being on time does not matter: interrupt meetings with calls, side talks and questions. Leave the room occasionally and be late regularly. Doing this will make it almost impossible to demand on-time delivery from the team;
3. Continuously fail to deliver INVEST stories and integrity in sprint goal/product backlog. Let stories w/o details thought through, so that team feels you had not invest enough time to prepare them. This will also make it easier for team to fail delivering outcome of that stories to you, will make things more ambiguous, so that no one will understand where is failure or what was wrong and will never learn from it, so that improvement will not be feasible;
4. Ignore team signals on complex stories (the ones that are above ~13 story-points, the ones that are risky, big, and usually need to be analyzed and split into smaller chunks in advance). Just let big stories that have big doubts, leading to easier underestimations, over-commitments, sprint failures, causing less team confidence, further under-commitments and wastes of all kinds;
5. Present deadlines ignoring reality “I do not care how you do it, it MUST be done”. With this “masculine” management style you can always push things forward as Agile teams just delivery chain, so they must obey and no matter what they think and capable of;
6. Never share the Product Vision and mid-long term roadmap with the team (just keep it secret);
7. Ignore technical debt (just concentrate on #5);
8. Bombard team with in-sprint questions and “Can you do it now please?” tasks. Explain them that SCRUM is good but now we need to be more “FLEXIBLE”. Moreover, assign tasks to team members without talking to entire team. Demonstrate that you were not been able to plan things for an iteration, this will ruin team trust that they are working on most valuable things and completely undermine their ability to deliver;
9. Never groom your backlog just leave it to the sprint planning meeting when it is already too late. This will lead to long and stressful discussions as you will have to do it mid-planning,will drain team energy, lead further to fatigue, wrong estimations, poor planning and sprint failure;
10. Always try to find something that team did wrong to pin point and focus on blaming. This is proper way to avoid Kaizen and let team protect themself by “storytelling”;
“If you can not measure it, you can not improve it.” Lord Kelvin
I’d like to continue with “Getting them…” topic (see previous post “Getting them READY: user story life cycle and “Epic Box” principle“). Today we’ll be getting them (stories) through Sprint Planning Meeting (SPM)…
Assuming all stories are INVEST and backlog is prioritized according to value, return-on-investment, risk, etc..
Then it comes to sprint Planning Meeting (SPM) itself…
Here are steps that will help you to get stories through:
1. Be prepared
As Product Owner (PO) you should be quick with decisions as some estimates may be quite “surprising”. I recommend have “plan B” on every story in mind (see Negotiable from INVEST of previous post) as pre-decision what acceptance criteria (AC) it is possible to live without or separate and your idea of estimation prepared.
2. Present it. Sell it!
Start with presenting the goal of the sprint, follow up with idea behind the story and the problem it solves. Do it in the way to get team buy in. Of course it is your responsibility to decide what is important and what is not, but knowing WHY this is important is vital for correct story implementation and has positive effect on team’s feeling of urgency. Be ready for questions and address them with patience.
3. Applicably question
You should be ready to question estimates if they go beyond your expectation. This is important as empowers “constructive conflict” between parties (team and PO). But please keep in mind that you should be very careful doing this as it should not look like putting a pressure on team.
For instance, instead of asking “Why this is 13 (20, 40, …) story points?” that implies hidden context and will most likely lead to a defensive and broad technical answer you will not benefit from, ask “What makes it 13 for you?” or “How I could split this story so it takes less?” or “What AC make it like that?”, etc.., which is more direct question and assumes no hidden context. Most likely you will be provided with non-technical answer and will be able to judge on “expensive” functionality.
3. “Decode” estimates and implement PO Kaizen
Estimation process is valuable feedback to PO on stories quality and granularity and it makes sense to use it right. Why? Because as PO you will learn to improve your stories and size them the way it will lead to fast, stress-free sprint planning meeting as prerequisite for successful sprint.
How to “decode” team estimates
Here is my hint: as you know user story point is relative measure of work, but to me estimates have also different meaning that “signals”, I suggest to be interpreted by PO as follows (assuming that same team estimates continuously using same baseline):
- 0 USP (orange) – you may have no idea about your product, this functionality is in place;
- 1/2, 1 USP (yellow) – small (usually cosmetic) improvement. It is OK to group several such improvements in a single story if they contribute to the same WHY clause of story description;
- 2-3 USP (light green and green)– small to medium size functionality. All is well 🙂
- 5 USP (green) – medium size functionality. All is well 🙂
- 8 USP (dark green) – big size functionality, any way to make it easier or split into smaller? But all is well still:)
- 13 USP (orange) – do you understand WHY this cannot be smaller/indivisible?
- 20 USP (dark orange) – you should have very STRONG reason of having such a story. Make it smaller and simplify;
- 40 USP (red) – no way this will be done during a sprint. Understand what makes it that big and split;
- 100 USP (dark red) – damn big amount of work/ambiguous acceptance criteria/big doubts, serious problems, etc;
When turning those signals into color scheme planning poker logically turn into sequence, reflecting “estimate temperature”:
4. Track time
Besides, I recommend to track time spent per user story discussion (use hourglass or timer, or ask your scrum master to facilitate). My observation of sprint planning over 2 years proved that team usually able to estimate ~10 user stories per hour as average (3 teams of ~ 15 people in total). Of course it depends on the size of team and many other factors, but to me if a story takes more than 10 minutes to discuss, PO shall do something with it (question what causes doubts, remove story from planning completely or partially).
5. Ask for feedback
Asking for short feedback at the end of sprint planning also helps to improve. It’s good idea to hand over paper with INVEST acronym reminder where team members place comments on stories and quickly feedback to PO in the last 5 minutes of SPM, referring to particular quality of INVEST and particular story that had not meet this requirement. This is timeboxed to 5 minutes and helps to improve quality of SPMs a lot.
To be continued…
I would like to start with describing what cycle user story goes through before it becomes READY for sprint planning meeting and how PO handles this cycle.
For sure there are many best practices to get stories READY and write proper stories. Instead of focusing on story-writing itself, here I will cover PO workflow to them ready.
So, here are my 5 cents…
Assumption: user stories are part of shaped big wish (called epic), that is part of Agile release/roadmap and takes place on “storymap” that had been presented to development team some time ago.
What does this means?
This would mean that:
- Value brought by an epic (and future user stories) is clear to everyone;
- Possible big “underwater” problems it may cause surfaced (reworks, performance, missing data, uncertainty, etc.);
- High level estimates are given to an epic;
- Big questions are addressed;
As next step PO prepares epic further, splits into particular stories, sizes each of them and “hones” acceptance criteria (aka satisfaction criteria). To proceed we need to know what does INVEST mean.
What is INVEST?
Things PO should keep in mind when doing story-writing and story-splitting is “INVEST” rule. It stands for:
- Immediately Actionable – so that team can start working on it immediately;
- Negotiable – so that can be quickly made smaller/bigger by removing/adding scope of acceptance criteria (AC);
- Valuable – so that everyone understands what value it brings to an end user;
- Estimable – so that it can be estimated with user story points or ideal hours;
- Sized to Fit In – so that estimates fit in established iteration length;
- Testable – so that has understandable and achievable acceptance criteria;
Splitting an epic
Then it comes to the split itself. I suggest doing the following way:
1. Have a pencil and paper talk with your PO peer(s) on the epic before splitting:
- define overall description (As a WHO I want WHAT so that WHY);
- agree on the way to reach WHAT (draft acceptance criteria, aka AC);
- write AC down. You will end up having many AC, e.g. 30 or more;
2. Request, get and provide stories with everything that makes them immediately actionable (e.g. designs, data, clarifications, everything that has to do with 3rd parties, etc.);
3. Define story split logic, so that they all can be worked on quite independently and placed in a sequence that satisfy following criteria:
- upper stories do not require functionality of lower stories (and lower stories do not impede implementation of upper stories);
- functionality is split logically, trying to keep stories ~same size (remember, best sizing of stories is 3-8 user story points);
- upper stories allow user to see maximum valued functionality first;
4. Define each story description and split overall AC accordingly. Keep in mind that at this point new stories will pop up (I call them “conjunction stories”). The rule is easy to understand.
Epic Box Principle: “As soon as you start emptying virtual box of epic functionality, removing and shaping story after story out of it, you will find out something that is still there and was not your initial plan”.
If your plan was to split epic into 4-5 stories, you may end up with 7-8 or so. That is one of the reasons that explains why usually epic level estimates are smaller than sum of estimates of all corresponding stories.
Important hint: do not hesitate to split as combining is way easier. Splitting is good exercise because enforces to think through value->solution again and discovers potentially hidden problems, functionality etc. Another effect of splitting bigger stories into smaller is reducing doubt (and therefore risks) team will have associated with big story. It turns afterwards into saving user-story-points…
Therefore, it’s way better to have detailed backlog rather then let team estimate their doubt wasting story points on your inability to think through solution and side functionality that may popup during implementation of bigger chunks.
Remember: as PO you are in charge of what team does next and need to have stories prepared accordingly.
5. Peer review all stories with your colleagues after you consider them as READY to see what is missing, question how each AC may be interpreted, best guess on possible estimation;
6. Re-do steps 2-5 until stories are INVEST and READY for sprint planning meeting (SPM);
To be continued … (“Getting them through sprint planning….”)