dinsdag 26 december 2017

Magic estimation

Barry Overeeen describes a method for estimating a large number of Program Backlog Items (PBI’s) called “magic estimation”. Last week I facilitated a workshop for a project for my current employer with this method and I’d liked to share my findings with you. Before sharing the findings, I’d like to describe the method as I employed it.

  • The product owner planned the meeting, and I asked him to prepare the session by making one sheet for every user story. I mailed him a MS word file with the layout.
  • The meeting had been scheduled to start at 11 o clock.
  • I printed the poker numbers 0, ½, 1, 2, 3, 5, 8, 13, 20 and 40 on A4 sheets and spread them out along the wall, as well as a sheet marked "?" for items which were not clear.
  • I provided for white board markers in 4 different colors.
  • I made a planning for the one hour session:
    • introduction 3 minutes,
    • round 1 10 minutes,
    • explanation by product owner 15 minutes
    • round 2 15 minutes
    • Discussion of large differences 10 minutes
    • Round 3: 5 minutes

Two things went completely wrong. First, the product owner had not prepared a document with all the user stories as I had requested by mail. Probably my fault, I should not just have mailed him, but also called him. He did had set up a separate meeting with me 1 hour ahead of the estimation workshop (excellent idea), but due to train problems he arrived 15 minutes late. He did have a product backlog, but this was not entirely up to date. In the end he had just 9 user stories to estimate. Problematic was that these items were not entirely clear.
Second, management had scheduled a two hour meeting just before our estimation workshop. They failed to finish their meeting in time. As everybody badly needed a coffee break, after 2 ¼ hours, we started nearly half an hour late.

Round 1:
I explained the 6 team members the rules for round 1:
  • One existing user story, which they were building, was designated as a 5 point references story.
  • There is a stack of PBI’s, physically as A4 sheets.
  • Participants were to pick one sheet at a time, estimate it in silence, without discussion, write down their estimate on the sheet in the field “round 1” and put the sheet down at the appropriate poker points sheet.
  • I assigned colors: designer green, developer black, tester blue. This team was not really t-shaped, so I wanted to be sure that at least two disciplines had a say on the estimate.
  • Anything that was not clear, was to go onto the ? mark stack

Round 2:
After the explanation of the questions by the product owner, and I gave instructions for round 2:
  • Again work without discussion
  • Check the work of others, especially that of other disciplines;
  • If you have a different estimate, write your estimate in the “Round 2” box and move the sheet to the appropriate stack.
  • Sheets were allowed to go to the ? stack.
I did not apply the rule that an item could not be moved more than once. Participants assumed that each discipline checked every item at least once, which I allowed. Two new items were moved to the question mark stack.
Most items had just a small difference. These were given to the product owner.

The product owner explained them, and the team preferred to continue after lunch.

After lunch we had sort discussion on the remaining PBI’s. The people with the most and least point for each item explained their motives and we agreed on a new estimate.

I found a number of pitfalls with this method:
  • PBI’s are not clear enough. This translates in fair amounts of time for the product owner to explain.
  • PBI not well prepared by product owner;
  • Developers play on safe. Developers know better than anyone else that programming takes more time than expected, and never believe any statement that they will not be held responsible for the estimate they make.
  • Developers put everything on “not clear”;
  • In depth discussions during clarification by product owner.
  • Participants taking sheets form the stack may result in situations where some team members pick up more sheets than others. Dividing sheets among the team members is probably better.
Something I had not foreseen, was that people noted risks. We noted these risks on the sheets.

Reactions by the team were rather positive.

maandag 31 juli 2017

That Guy - This Guy - an agile retrospective method

This morning we tried something new during our biweekly retrospective. The method I used was based on "That Guy - This Guy", from the book "Fun Retrospectives, by Paulo Caroli and Taina Caetano, but with a twist.

Let me describe the method in some detail before explaining my expansion.
Before starting and welcoming the participants ( I think there were about 7 of us), I drew this illustration on the whiteboard.

I explained:
"Try to recall co-workers from past teams - NOT your current team. Picture in your mind two of them. 'That guy' was terrible. The instant you get the message that you will be in the same team again as he she, you start having nightmares, you start screaming about jumping from the roof or you decide to solicit at a competitor. Instead, 'This Guy' rocks. The instant you hear you will be in the same team again, you start thinking about throwing a party, and phantasize about a promotion."
"I request you to write notes about the qualities of such a person. As for 'That Guy', plz don't mention any names. Not even a hint. And what I said about Guys, also applies to Gals."
When everyone had written their sticky notes, they put them on the blackboard. We discussed them and grouped them.
All sticky items had, on my request, been put above the dotted line.

The second phase I appended as the original method, in my humble opinion, lacked action items. I presented two options to the group, and later realized there was a third.
1. Choose one of the properties listed under "That Guy" or under "This Guy", on which you want to work during the next sprint. Note it in your agenda for reference during our next retrospective in 2 weeks.
2. Choose one of the properties listed under "That Guy" or under "This Guy", on which you want to work during the next sprint, and stick it on the board, thus sharing it with the rest of the team.
The first option is very safe. Some participants preferred the first, safe option. The team deliberated about which of the two options, and finally choose the second option.

Afterwards, I realized there was a third option:
3. Choose a teammate, and let him/her indicate what (s)he sees as a weak point which you might like to work on. Note that this remark is intended as a gift, not as a criticism.
If you want to present the third option, you should realize that this may be sensitive. Teammates might feel a remark as criticism. It takes a lot of courage to choose this item. It may easily be (mis)used by team mates to finally throw out irritation which has built up in the team over weeks or months. If you are not confident about your skills as an agile coach to handle such a situation, simply don’t present the third option. The intention of the third option is to give your teammate a gift: give them your insight on what aspect of his behaviour your teammate might grow most or best.

donderdag 11 mei 2017

Agile voting

Of course you want consensus. But building consensus takes time, but sometimes consensus is hard to obtain. Sometimes you don’t have the time to talk on and on, or everybody is bored. Sometimes we need to vote.

Here is a one pager with ways to vote.

Three dots
Give every participant 3 dots. These dots may be post-its, or coins, but are usually made with a highlighter
Every participant distributes his/her dots among the options: one for three different options, all three dots for one option, as the voter sees fit.
The option with most dots is chosen (or top 2, or top-3)
You can vary the number of dots as you see fit.

Fist of five
Every participant is asked to raise his/her fist in the air.
Vote leader mentions option and counts from 5 to 0. On 0, every participant raises 1 to 5 fingers simultaneously.
Participants raise 1 to 5 fingers.
Note number of votes and continue with next option.

Roman vote
Everybody votes at the same time in the way on an option in the way that the roman emperors decided on the fate of a defeated gladiator in the arena: thumb up or thumb down. Keep track of the number of thumbs up/down and choose after all options have been voted on.

List all options.
Hand every participant as many cards from a set of planning poker cards as there are options. Thus, if there are 5 options, each participant gets the cards 0, ½, 1, 2 and 3.
Participants distribute their cards over the options, one card per option.
Item(s) with highest score(s) is(are) elected.

You can find references to the methods described above at the end of this post. Here are two new methods, which I intend to try out in the near future.

Put your money where your mouth is!
Prepare by making small bags with 1 x 50 cent, 2 x 20 cent and 1 x 10 cent
Hand one bag to each participant
Participants distribute their coins over the options, taking turns. Optionally, they may explain to their team mates why they vote as they do.
Option with most money is valued highest.

Prepare a sheet with 4 lanes consisting of up to 12 squares each. Make one marker for every option, mark it with a short one word name.
Hand every participant the cards 0, 1, 2, 3, and 5 from a set of planning poker cards.
Participants take turns to move the markers to the finish by playing one of their cards and moving the marker the number of indicated squares.
Voting ends at the end of the round in which the first item crosses the finish line.
Two or more items may cross the finish in the same round, furthest option wins.

http://www.innolution.com/resources/glossary/dot-voting - dot voting
http://agileforall.com/learning-with-fist-of-five-voting/ - fist of five
https://plans-for-retrospectives.com/en/?id=99 – planning poker voting
http://www.wall-skills.com – roman voting

zaterdag 22 april 2017

The story of a feature

In their book “Fun retrospectives”, Paulo Caroli and Taina Caetano describe an activity “The story of a story”. Last Monday, we used this format to analyze why we had not finished any activity for the feature which we had assigned the highest priority during our planning session.

Different resources on the web distinguish different phases or steps that apply to a good retrospective. I like to group them as:

The activities we performed in our session are:
1. Scrummaster draws the timeline
2. Srummaster explains the technique to be used
3. Scrummaster announces of the scope (what happened during the sprint that influenced not completing these activities)
4. Participants write down post-its with relevant events
5. Participants stick their notes on the relevant place in the timeline
6. Participants explain their notes for the group.
7. Group discusses the notes
8. Group formulates lessons / improvement opportunities / action items

The steps 1-3 belong to the “set the stage” phase. Steps 4 and 5 collect the data, step 6 analyzes the data while step 7 and 8 represent the last two phases. As always, formulating action items was the hardest part of a retrospective.

Example of timeline:

The result was that we had a pretty clear picture of what went well and what went wrong.


maandag 5 december 2016

Scope of retrospective

Just as planning encompasses all aspects of the sprint, the retrospective covers everything that is part of the sprint.
Often people tend to look at what went well or what went wrong during sprint execution. Why did we get stuck so long at getting that new tool up and running on Jimmy’s pc? How could it happen that we only discovered that team Jay had moved their user story, on which we depend, near the end of the sprint? There is nothing wrong with questions like these. But we may be inclined to overlook that we may also want to evaluate what we may learn during refinement and planning. Even the way we hold our retrospectives may be part of the retrospective!

woensdag 24 augustus 2016

BPMN: End Event or End State?

When the guys of bizzdesigner taught one of my fellow consultants about process design, they taught him that every process should have exactly one Start Event and exactly one End Event. Personally I have always disagreed with this point of view. Having one End Event creates ugly, artificial diagrams. I discovered that diagrams were much clearer when End Events depict the possible end states.
This morning I was pleasantly surprised when I found that Bruce Silver in his book "BPMN method & style" advocates exactly the same thought. Judge for yourself, which diagram is clearer:
It may be a matter of taste, but I definitely find the first one more clearly. One reason is that "Order finished" is a bit abstract, while "Order failed""and "Order completed" are more informative
Another reason is that having the possible results clearly labeled, the different labels gives your reader a first check wether your process description is complete or not.
The 2nd representation may be more correct from a theoretical point of view. In the second diagram, we have an End Event which actually represents an End Event. In the first diagram, the End Event represents more an End State than an End Event. Still, the BPMN 2.0 explicitly states: "There MAY be multiple End Events within a single level of a Process.". So when possible, I prefer the representation which gives the highest amount of clarity.

Some loose thoughts on end events:
  1. In the above illustration, both diagrams have the end results on the right, which is good. It makes a diagram easier to glance over. Some people do not start reading at the start, but start reading with the result in mind.
  2. I often see End Events labeled as "End" or "End Event". Usually these labels are the result of sheer laziness, though occasionally they result from insufficient knowledge of the tool or lack of time. And to be honest: I am guilty of the latter. Do take the slight amount of time to label your Start Events and End Events properly. It will please your readers.
  3. The use of multiple End Events may be discouraged in some simulation tools, where the consumation of a token generated by a Start Event stops the entire instance. Any such implementation is i.m.h.o. against the BPMN intention: the process should run untill all tokens (the token from the start event may have been duplicated in a Parallel Gateway) have been consumed.

donderdag 14 juli 2016

Life long learning

One of the regular topics on this irregular blog is learning. For virtually every professional, but especially those with a link to IT, lifelong learning is a MUST. And with MUST I mean AAN=An Absolute Necessity.

1) AAN
Let me give you an example of what may happen when you don't spend time learning. It comes from the practice of our oldest daughter, Margreet, who is doing het master in education. She was asked to evaluate the introduction and coaching of new teachers at a confederation of schools. The management of the confederation organized individual coaching, but also offered a training course given by a 1-person institute. This training course received very bad reviews. Part of the required evaluation was finding out why.

During the evaluation, one of teh findings was that the person giving the course knew a number of (fairly known) models, which the young teachers all had learned at school. Now that may have been a signal that both school curriculum and training course offered the most modern insights, but alas that was not the case. The training course might still have been valuable if it had been aimed at the application of theoretical knowledge in everyday practice, but it didnt even offer that. My personal conclusion is that the trainer had failed to keep learning. She had not learned from modern insights, and she had not learned from the reactions of her students.

2) Learning and exercise
Having stated again the necessity again, here are two fairly modern insights in learning. The first is a finding by van Dongen et al, titled "Physical exercise performed four hours after learning improves memorey retention and increases hippocampal pattern simularity during retrieval".

As the title already says, the reserachers found that you remember your learning better if you do physical exercise some four hours after the learning session.
The question which immmediately popped up in my thoughts was: how can I implement this in my 40 hour workday? This is al nice and fine when I have a training day: in the evening I go and do a session of jogging. But how can I do that when I have worked all day and have an evening training? No easy solution here.

3) Cinnamon
Cinnamon, especially Ceylon Cinnamon, might enhance learning ability. Kallipada Pahanand and Floyd A. Davix found that cinnamon consumption by mice enhanced their learning ability. They tested this with mice, not humans, which seems to offer a nice area of research. Note that Chinese cinnamon contains small quantities of a liver toxic, so search for Ceylon cinnamon if you want to use yourself as a human guinea pig.