Monday, November 17, 2014

Multi team sprint planning

Scrum answers the question of how one team can effectively plan their work; however it does not address how multiple teams doing Scrum can effectively plan their work. What follows is a brief explanation of the multi-team sprint planning approach that I most recently implemented for a department containing six Scrum teams.

Multi team sprint planning scale many teams scrum agile


The short version

  1. Prior to the Joint Planning Meeting the project managers perform a preliminary allocation of Epics/User Stories to teams.
  2. In the Joint Planning Meeting, each team pulls in User Stories until they are full and posts those User Stories on the Joint Planning wall. The result is reviewed by all and updated as necessary.


The longer version


Prior to the Joint Planning Meeting
  • The Project Managers schedule the fortnightly Joint Planning meeting instead of fortnightly Sprint Planning Meetings. It is held in a room large enough to provide seating and tables all of the Scrum teams is necessary. It also needs additional seating for Project Managers, Product Owners, etc. Initially the meeting was booked for 4 hours, however over time this has reduced as the process became familiar to everyone.
  • The Project Managers work with senior staff from the Scrum teams to help them understand the rough size and scope of upcoming Epics/User Stories. This allows them to roughly allocate this work to the teams. So that going into the Joint Planning Meeting each team has a backlog of approximately 2 sprints worth of work that they can pull from. Overtime the teams have become more involved in this pre-allocation.
  • The Project Managers create the Joint Planning wall in the meeting room and post up the pre-allocated backlogs.


The Joint Planning Meeting

  1. Lead Project Manager, introduces the meeting, explaining any upcoming milestones, key events and/or themes for the coming sprint.
  2. Scrum teams work to pull in size, and split Epics/User Stories are normal. Their Product Owner sits with or near them. Team members are encouraged to talk to the PMs, POs, other teams, etc, as necessary. The amount of discussion varies significantly depending on how many teams are working together / depending on other teams. Once they have their Sprint Backlog prepared they post up the User Stories on the Joint Planning wall. It is up to the team to decide to split the User Stories into tasks prior to finalising their Sprint Backlog. Once the team has posted their Sprint Backlog they are free to go.
  3. At the agreed time, all teams come back to the Joint Planning wall to review and discuss the plan for the coming sprint. This is what is shown in the photo at the top of this article. During this discussion all kinds of changes may occur work dropped, work added, work swapped between teams, dependencies uncovered, impediments noted, impediments addressed. This is the crucial element of the Joint Planning meeting.



As with all agile practices this meeting continues to evolve and change. For example some teams found the large room too noisy to hold the discussions that worked for them, hence they stayed for the initial introduction then headed off to a private room to form their Sprint Backlog before returning for the sharing and discussion.


Monday, November 10, 2014

Backlog Prioritisation Frameworks

You need to make quick prioritisation decisions that satisfy your short term goals and move you forward towards your strategic objectives. These decisions often need to compare very different types of work (e.g. Revenue generation vs. Enabling future features), which is difficult to do with discussion based prioritisation. An appropriate Prioritisation Framework will provide a simple approach to compare different types of work. 

Prioritisation is often carried out by negotiation between multiple stakeholders and the Product Owner. The negotiation occurs at different times usually between one stakeholder and the Product Owner. This causes communication overhead, confusion and triggers reprioritisation. 



Prioritisation by negotiation, as often occurs

An appropriate Prioritisation Framework will build consensus for the prioritisation decisions, hence avoiding the above mentioned issues. Here the Product Owner uses the Prioritisation Framework and associated meetings as a way to facilitate the prioritisation process and ensure that consensus is reached with the majority of stakeholders present.


How a Prioritisation Framework can streamline the prioritisation process


Scope of a framework

For items that need rapid prioritisation, such as small ongoing tasks like bugs, enhancements and tweaks to existing features; I recommend that they are handled outside of the prioritisation framework. The primary reason for this is that often those work items can be fixed faster than the time it takes to score, discuss and evaluate and analyze. 


Considerations for selecting an appropriate framework


  • The framework should be light weight & easily understandable. This will greatly assist the uptake, buy in and will reduce communication costs. 
  • The framework should allow for comparison of different types of work (e.g. Contractual vs. acquisition vs. vs. enablers for future work). None of the suggested approaches involve calculating the value of the change in $. Those calculations are complex at best, and impossible in the worst case. Instead the suggested frameworks focus on Relative Estimation over Absolute Estimation.
  • The framework should consider the rough size of each piece of work. This allows for small, medium value work items to compete with large, high value pieces of work. The end result being that we achieve a balance of quick wins and strategic goals.
  • The framework should provide a simple way to adapt the prioritisation decisions to your changing strategic needs. 
  • You need all stakeholders to buy into the framework, and agree that it will drive prioritisation. Once this is done, the framework will allow for fast decisions. If some stakeholders disagree with the framework, they will undermine the decisions that come from it. Lack of adherence, will slow down the process and cause confusion. 
  • All of the frameworks that I am about to suggest rely on gathering groups of decision makers together, so that the decision making process is transparent and fast. Gathering all of the appropriate decision makers may be a tough ask in some situations.  



Possible Framework - Value & Size Comparison 



Value is determined via Product Owner group applying absolute estimation highest is more valuable. Size is determined via Delivery Team Representative group applying Relative Estimation on the Planning Poker scale, larger is bigger Size/Cost. The changes are then mapped onto the matrix below, which leads to discussions on priority.




Cons

  • Subjective value measurement is open to emotion / rank over taking the real value.
  • Value is a very simplistic representation, which makes it difficult to compare changes of differing types. i.e. Customer Retention vs. Technology Enabler.

Pros

  • Simple, easy to understand and communicate.
  • Uses group consensus for both Value and Size, which builds acceptance of the decisions.


Possible Framework - Money Voting


A simplistic voting approach. It subconsciously makes the participant consider the relative real world value of each change.   

Each stakeholder is given a sum of imaginary money (say $100) which they are asked to distribute amongst the items on the backlog. Priority is then judged by the sum raised by each item.

Cons

  • Subjective value measurement is open to emotion / rank over taking the real value.
  • If ‘spending’ is done in the open, whoever goes first can set a precedent and whoever goes last has more power to influence the final outcome.
  • Can be time consuming if done in private, as different stakeholders will respond at different times. They may also delay waiting to see how over stakeholders are spending their money.
  • Does not include size; however it would be simple enough to divide the Total Score by Relative Size.


Pros

  • Simple, easy to understand and communicate.
  • Quick if done in the open, but has the Cons related to influence.


Possible Framework - Weighted Shorted Job First (WSJF) from SAFe



Documented in Scaled Agile Framework (SAFe), based on work in Don Reinertsen’s book ‘The Principles of Product Development Flow’ as explained here

Higher WSJF indicates higher priority.

User, Business Value, Time Criticality, Risk Reduction & Opportunity Enablement are all determined via Product Owner group applying Relative Estimation, on this scale (1, 2, 3, 5, 8, 13, 20), higher is more valuable. 

The value of User, Business Value, Time Criticality, Risk Reduction & Opportunity Enablement are estimated by the Product Owner group in turn. To do this they select the work item with the lowest User/Business Value and assign it 1. The other work items are estimated by applying Relative Estimation, on this scale (1, 2, 3, 5, 8, 13, 20), higher is more valuable. The Product Owner group then moves onto Time Criticality and repeats the process. Finally they do it for Risk Reduction /Opportunity Enablement.

Size is determined via Team Leader / Team Representative group applying Relative Estimation on the Planning Poker scale, larger is bigger Size/Cost. This is a stand in for duration. WSJF really calls for duration of the job not size but size is usually a very good substitute.

Cons

  • Cost of Delay is difficult to explain
  • Assumes that there is equal importance between the three key criterion (User/Business Value, Time Criticality & Risk Reduction/Opportunity Enablement. This may not match the needs of the business.


Pros

  • Financially sound approach (minimising cost of delay).
  • Purely relative estimation approach, each round of estimation is only using the current projects to help determine priority.
  • Uses group consensus for both Value and Size, which builds acceptance of the decisions.
  • Removes some emotion from prioritisation process.
  • Allows for comparison of different types of changes.



Possible Framework - Prioritisation Matrix


This comes from the model documented by University of Wisconsin-Madison

Higher score indicates higher priority.

An agreed set of Criteria (with scoring notes) are selected for use in the framework. Each Criterion is given a weight relative to the other criteria. These criterion and weights do not change. 
Criteria Scores are determined via Product Owner group absolutely rating each change on the scale of 0 to 9, using the Scoring Values for guidance. 9 is the highest value. These scores are then used to calculate the total score.

It is best explained with an example.


Cons

  • Does not include size; however it would be simple enough to divide the Total Score by Relative Size.
  • It could be difficult to gain acceptance of the criteria scoring system and weightings.
  • Uses rating (matching up to the scoring values) instead of Relative estimation.


Pros

  • Customisable criterion, enable the prioritisation matrix to match the business needs.
  • Uses group consensus for Value, which builds acceptance of the decisions.
  • Removes some emotion from prioritisation process.
  • Allows for comparison of different types of changes.
  • A key benefit of this is that everyone understands the main company goals and is motivated to come up with features that push the scoring up.



Possible Framework – Customised WSJF Framework



A combination of WSJF with a customised Prioritisation Matrix. This is what I would usually recommend.

Higher Score indicates higher priority.

Similarly to WSJF the Product Owner group estimates each criterion in isolation; however the list of criterion is an agreed list of criterion similar to the Prioritisation Matrix. They start with the first criterion, select the work item with the lowest value and assign it 1. The other work items are then estimated relative to the first item for the current criterion, on this scale (1, 2, 3, 5, 8, 13, 20), higher is more valuable. The Product Owner group then moves on the next criterion and repeats the process, until all criterions have been completed.

Size is determined via Team Leader / Team Representative group applying Relative Estimation on the Planning Poker scale, larger is bigger Size/Cost. This is a stand in for duration. WSJF really calls for duration of the job not size but size is usually a very good substitute.

To keep the process quick I recommend that a maximum of 5 criteria are selected. I would start with:

  1. Constraints – Time constraints, Regulatory constraints.
  2. Customer Joy – delighters, differentiators.
  3. Revenue – conversion rates, income, projected income.
  4. Risk Reduction / Opportunity Enablement (RR OE) – Increase redundancy, reduce technical debt.


Other suggested criteria to consider

  • Strategic Alignment – matching the company’s strategy goals.
  • User Impact – high number of user or small number of key users impacted.


Cons

  • Cost of Delay is difficult to explain
  • It could be difficult to gain acceptance of the criteria scoring system and weightings.


Pros

  • Financially sound approach (minimising cost of delay).
  • Purely relative estimation approach, each round of estimation is only using the current projects to help determine priority.
  • Removes some emotion from prioritisation process.
  • Allows for comparison of different types of changes.
  • Customisable criterion, enable the prioritisation matrix to match the business needs.
  • Uses group consensus for criterion, which builds acceptance of the decisions.
  • A key benefit of this is that everyone understands the main company goals and is motivated to come up with features that push the scoring up.


An example again helps to explain it.




FINAL NOTE

It is rare that I suggest adding more process. However when dealing with the kinds of situations that can come up when prioritising work for several teams with, many competing stakeholders to deal with  some process is a good thing.

Sunday, November 2, 2014

Promoting constructive discussions in Retrospectives

When transitioning to agile from a strong command and control environment, many team members say as little as possible in Retrospectives. They are used to being told what to do, and do not want to seem like the ‘trouble maker’ by pointing obvious issues. Over time they will realise that it is a good (and safe) thing to point out issues so that the team can work on solving them. 



The scope of what they could change in the past was very limited, which compounds their reluctance to speak up. Usually it takes a while for them to realise that the scope of what they can now change is vast. The task board is quiet often seen as something the team owns and due to its highly visible nature is one of the first areas that teams start to make changes. After the team has implemented their first couple of changes, the Scrum Master should explain to the team just how big their scope for change through Retrospectives really is. 

To aid the explanation of scope and to help bring out information from quiet team members the following list of questions is often useful. For the Scrum Master it will be worth reading these questions prior to each Retrospective and working out which questions could be used to prompt discussion.

Delivery / Completion

  • Why did the extra tasks appear in the sprint? 
  • Why were User Stories/Tasks not completed?
  • Why were some User Stories/Tasks, only partially completed?
  • Did the team over commit? 
  • Was the team reliant on one person/skill set to complete a task? 
  • Were any milestones missed?
  • Were last Sprint Retrospective actions items completed?
  • Where our estimates accurate? Both Story Points and hours?


Quality

  • What was the quality of work produced like?
  • Was the test coverage (both automated and manual) sufficient for our needs?
  • Did our documentation provide the information that we required to complete our jobs?
  • Did rework hold us back this sprint?
  • Did the Review/Demo make you proud to be a member of this team?
  • What was the cause of the bugs/tickets that we worked on this sprint?


Scrum / Continuous Improvement

  • What did everyone work on immediately after the Planning meeting? Why did people work on items other then high priority User Stories?
  • Was the Product Backlog ready for use at the planning session? Prioritised, estimated, enough detail?
  • Did the Burndown Chart realistically represent the progress of the team?
  • Did everyone view the Burndown chart as useful?
  • Were last Sprint Retrospective actions items beneficial?
  • How did everyone contribute to User Story value?
  • Is everyone happy with how the Stand ups are working? Can they be improved?
  • Is everyone happy with how the Reviews are working? Can they be improved?
  • Is everyone happy with how the Retrospectives are working? Can they be improved?
  • It has now been X sprints that we have been using Scrum, do we think our situation is better or worse since starting? What is better? What is worse?
  • Why were low priority tasks being worked on, while high priority user stories were on hold?


Communication and Team work

  • Was everyone clear on the team goals?
  • Was everyone clear on their personal priorities?
  • Did internal knowledge transfer occur in a timely and effective manner?
  • How was the team internal communication? Was it clear, concise and timely?
  • How was the intra-team communication? Were expectations and dependencies clear?
  • Did anyone have difficulties obtaining timely information/assistance from people outside of the team? I.e. Product Owner, external Technical Expert.
  • Did anyone have difficulties obtaining timely information/assistance from people in the team? I.e. Architect, Test Specialist, Documentation Specialist, Scrum Master, etc.


Photo Credit: https://www.flickr.com/photos/ajc1