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

Sunday, October 19, 2014

Funnel Task Board helping agile teams delivery more

Many agile and Scrum teams struggle to limit their work in progress. This results in task switching, delays and other wastes, overall reducing how much the team delivers. Physically limiting space on a team task board asks as a mental barrier. This can be used to limit their work in progress and hence deliver more. I have had good success with Funnel Boards. The User Stories fall from the backlog into one of three spots available in the funnel for User Stories. It is a simple and effective way to limit the teams WIP. I heard of Funnel Boards at Agile Tour London 2013.


Zombie Team, Funnel Task Board
Zombie Team Funnel Board
The funnel board, leaves plenty of space around the edges for avatars, notes and other visualisation.

An empty Funnel Board


Funnel Task Board, empty, limiting WIP

The backlog at the top, is the Sprint Backlog. It is populated during Sprint planning and empties out as the Sprint progresses. Hopefully it is empty at the very end of the sprint.

Work flows from top to bottom


Funnel Task Board, flow, limiting WIP, limited WIP, lean, scrum, agile

As one of the three in progress stories is Done, the next story from the Sprint backlog flows down into the available spot.

A simulated sprint in progress


Funnel Task Board, flow, limiting WIP, limited WIP, lean, scrum, agile

Saturday, October 11, 2014

Waterfall Iterations softening resistance for the transition to Scrum

Switching from traditional waterfall development to Scrum is a very big mental change for many people. These people can be resistant to the change and potentially lead to a failed transition. It you have detected resistance to the transition to Scrum, before making the big change, consider an intermediate step to ease everyone into Scrum and lower the resistance to change. Consider changing to ‘Waterfall Iterations’ for a while before moving to Scrum.


waterfall iterations


When faced with transitioning from traditional waterfall development to Scrum, there are many unknowns and misunderstanding to be overcome. In some organisation this breeds significant resistance to the transition. If left unchecked this resistance to change can derail the whole transition. It is a great idea to find out what unknowns and misunderstanding exist and deal with them one by one. However that approach is not scalable and some issues will remain as the switch over looms. 

What I have used and seen to be successful in change resistant organisations is to stage the transition. Teams change from Waterfall to Waterfall Iterations for a couple of months, then the switch over to Scrum. Teams can be switched over a couple at a time, so that they can learn from and support each other. There is a co-ordination cost to having teams operating in different approaches; however it is generally worth it to smooth out the transition.



Waterfall Iterations

This phase introduces everyone to Iterations, co-location, cross functionality, Product Owners and Scrum masters. 

  • Cross functional, co-located teams of 5 to 9 people.
  • Teams use Sprint Retrospectives, Task boards, Burn-downs and Daily Stand-ups just as in Scrum. 
  • Iteration planning occurs every two weeks, where the Product Owner works with the team to pull in work items that have been created by whoever in waterfall created/allocated work items.
  • Iteration Review occurs every two weeks where the team demonstrates their completed work items to the Product Owner.
  • Functional testing carried out by the team with in the Iteration.
  • System testing carried out by separate testing team, outside of the Iteration.



Scrum

The switch to Scrum from Waterfall Iterations; focuses teams on completing (including System testing, deployment) User Stories, that they themselves have created, split and sized.


A note

In organisations where there is strong support for the transition (or even only light resistance) I would recommend switching straight to Scrum.


Another note

Kanban is an evolutionary process improvement approach that dramatically reduces resistance to change. That is another option to consider.

Photo Credit: https://www.flickr.com/photos/16516058@N03/

Sunday, October 5, 2014

Choosing the correct type of feedback can improve your coaching

Helping people to grow and improve is very satisfying. Hence constructive and re-enforcing feedback seems natural to me and I use it often. However there is a continuum of behaviour that prompts me to give feedback and unfortunately it should not always result in re-enforcing feedback. The feedback approach coaches’ use should change to suit the type of behavior we are providing feedback about. Choosing the correct approach is crucial in effecting the outcome that will help the individual, team and yourself.

observed behaviour continuum feedback type style behavior



Adjusting feedback

Use Adjusting or Corrective feedback when someone is doing something that they must stop, or must change. I.e. Their behaviour is destructive, career limiting, negatively affecting others.

  • Do prepare (gather specific examples of the behaviour, talk to peers, draft what you will say, practice what you will say)
  • Do follow a structure and be directive in your delivery. Here is a template that you can use: it has been observed here, here and here, that you are doing X which is causing Y, this behaviour needs to stop, because it is causing Z. If the situation comes up again please do A instead.
  • Do give this feedback is private.
  • Do not give this feedback immediately after the event. Make sure you wait until everything has calmed down, so that it can be talked about in a rationale and deliberate manner.
  • Do not combine with other types of feedback, as it sends mixed messages.



Constructive feedback


Constructive or developmental feedback should be used when helping some to do better, or to help them see opportunities that they missed. 

This is covered in combination with Re-enforcing in my article Coaching Scrum Masters. The feedback sandwich puts two slices of re-enforcing feedback around a sliver of Constructive feedback. I have found this approach to be highly effective and have received plenty of positive feedback about it.

Re-enforcing / Encouraging feedback

Use it to praise people for effective behaviour and encourage them to do more of it, and perhaps do it even better next time.


  • Can be given in public (as it publicly promoting the behaviour that is appropriate), however be aware of who you are giving it to, some people will be embarrassed through to down-right upset at public acknowledgement. 
  • This type of feedback should be approached as discussion with the recipient. You are not telling them to repeat their behaviour you are merely discussing the benefits that you noticed and that you would like to see more of that behaviour.


Sunday, August 10, 2014

Ideas for tasks when splitting or planning your User Stories

After years of working in a command and control culture moving to an agile methodology feels liberating for many team members. Unfortunately it can also feel over whelming. The first time a team needs to plan their iteration for themselves the can struggle to think of appropriate (and importantly small) tasks to split their User Story into. What follows is a list of ideas that I use with new teams to open their eyes to some of the options they have available to them.

Additionally of the following information is available on this one page PDF cheat sheet.


Cheat sheet for splitting or planning User Stories into tasks


Acceptance

  • Clarify Product Owner expectations
  • Product Owner early feedback
  • Product Owner review 
  • Confirm all Acceptance criteria


Shared Understanding

  • Scenario workshop (Three amigos)
  • Design session
  • Test creation session
  • Meet with customer representative


Development

  • Design review 
  • Refactoring of existing code
  • Interfaces created
  • Code / Implementation
  • Code reviewed
  • Unit tests
  • Unit tests reviewed 
  • Defects resolved 
  • Defects retested 
  • Code merged 


Quality Assurance

  • Functional test plan created 
  • Functional test plan reviewed 
  • Functional test plan executed 
  • Automate functional tests 
  • Identify tests for automation
  • Exploratory testing
  • Regression Test Suite passes 
  • Continuous Integration passes
  • Deployment Tested
  • Performance tested


Documentation

  • Deployment instructions
  • Internal Processes / Guides
  • External Processes / Guides
  • User story – notes, history, plan
  • High Level design
  • Design decisions
  • User Manual
  • Help
  • ‘How to’ Guides 


Tracking

  • User Story updated in tracking tool 


Demonstration

  • Script/Run-sheet updated 
  • Data prepared 
  • Demo automated
  • Deployed to demo environment 
  • Practice run