Tuesday, June 21, 2016

Affinity Estimation


Ingredients:


  • A big room (Preferably with no chairs)

  • Two big white boards or two big walls.

  • Printed stories, if stories have big descriptions, then print only headers in 4 inches X 4 inches square. Use xls to print better.

    • Cello tape or painter tape.

  • Markers, Pens.

Timer

  • Labels

Invitees:

Mr. Manager
  • Product Owner (Participant)
  • Scrum Team (Participants)
  • Scrum Master (Facilitator)
  • Manager (optional and silent observer) (Manager can attend to identify performance gaps of individuals and can later give appropriate feedback). (If necessary, scrum master have to tie manager's mouth with a handkerchief and tie the hands and legs with a rope to a chair, to avoid the interference).

Before the meeting:

  1. Groom the stories in the backlog: Add enough details. Scrum Master should facilitate all these grooming sessions. "Enough details" means the details should be sufficient for the team to understand "what needs to be done" and "what is the value coming out of it". Include technical discussions, as needed.
  2. Split the stories: If some of the stories look quite big, ask the team and the product owner to break those into smaller stories following the INVEST criteria.
  3. Advance Booking: Book team's calendar in advance. Book the meeting room in advance. Gather all the ingredients. Print all the necessary material.
  4. Education: Educate the invitees about the process. Show them some videos from internet on how affinity estimation works. You may send them link to this blog, as well.
  5. Setup: Set up all the props on place in the room before 10-15 minutes of the meeting. Place all the printed story cards scattered on the table. On a wall/board, stick "Smallest" label to the far left, stick "Largest" label to the far right, stick "Don't know" label somewhere on the door.

During the meeting:


  1. Set the ground rules (5 minutes): Quickly discuss how we are going to do all of this.
  2. Start the relative sizing (1 hour):
    • Ask the team to pick a card from the table. Here, the assumption is backlog grooming is already done for the stories. So those have enough details to give them a relative size.
    • Ask the team to put this card at an appropriate place in between the "Smallest" and "Largest" labels on the wall.
    • If team could not figure out, where to put this card, then paste it "Don't Know" label.
    • Pick the next card on the table and compare it with other cards on the wall and put it either to the left or right or in the same column as that of the other cards on the wall.
    • The team arranges the story cards in ascending order on the horizontal scale. It may also be done by re-arranging the cards until the entire team is satisfied with the order. This step is preferably performed silently to make it quick. Use very minimal discussions.
  3. Wall Review (30 minutes):
    • Have a look at "Don't Know" labeled cards and have discussions with product owner and decide their relative sizes and paste them on the wall at appropriate location.
    • Review the entire wall and discuss among the team members, if any card needs to be moved to some other location.
  4. Story Pointing (30 minutes):
    • The goal of this exercise is to place the relatively sized user stories in same-size buckets. So, now paste the numbered stickers on the wall in the order 1, 2, 3, 5 and 8. The sticker with "1" will be above "Smallest" sticker. The sticker with "8" will be above "Largest sticker.
    • Ask the team to decide which size the card fits under based upon the relative size location on the wall. Explain to them, that we need to make the sizing clear so leave space between buckets of sized items. After this has completed the wall may look something like the following:
  5. Tea Time (15 minutes): Let the team come out of the room and recover from the exhaustive session they had just now. Let the Product Owner be in the room to review the sizes. Send him a cup of tea in the room. Product Owner will think about the sizes of the story and note down if s/he has any different opinions about it in this notebook.
  6. "I don't believe you" challenge (30 minutes):
    • In this last step, product owner (who was almost silent till now) speaks up. S/he tells his opinions about the cards for which he differs with the size given by the team.
    • Through discussions, the challenge is resolved. The team may re-size the card or product owner can live with his/her opinion (convinced or unconvinced).
    • This challenge must be taken in a positive way. So coach your team for this.
  7. Electronification of the wall (30 minutes): Transfer all the data from wall to your electronic tool for story management.

Points to note:

  • Affinity estimation is a technique by which story points can be quickly assigned to user stories by doing relative sizing.
    It’s not an agile methodology like Scrum, XP or Kanban but it can help to improve the planning and estimation elements of agile methodologies like these.
  • It is not for every agile team! If you belong to an experienced Scrum team with a steady velocity and high productivity, then maybe changing your estimation technique isn’t a good idea. However, the technique can offer significant benefits for many organizations which are in the baby phases of agile implementation.
  • Scrum Master must be ready to do heavy facilitation.
  • This exercise is similar to that of the stack toys played by kids. So you should not find this difficult to perform.
  • This exercise does not remove the need to conduct more in depth estimating sessions such as with Planning Poker as the Product Backlog evolves.
  • An estimate is, by definition, an approximation. Regardless of the amount of effort you put into this, it's still going to remain an approximation.
  •  Backlog Grooming must be done before conducting this exercise, else most of the time in the exercise will be spent on discussions of requirements.
  • The time measures given in above steps are suitable for backlog of the size of 200 cards, as per my experience.

3 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. This comment has been removed by a blog administrator.

    ReplyDelete