Agile Tour Toronto is a yearly conference for Agilists. This year, it is being held on November 26th. Berteig Consulting is the Title sponsor for the event! It’s a great event with lots of great people including some of the most respected local Agile talent, all in one spot. I encourage you to register quickly once registration opens.
Purpose: estimate the effort for User Stories (Product Backlog Items, Value Drivers)
Prerequisites: all items have a value estimate, each item is written on a separate note card, full team membership is known and available for planning, each team member has a set of planning game cards
- The team goes through all the items and chooses the one which has the lowest effort. Write the number “2″ on this card (usually in the bottom right corner).
- The team looks at the item with the highest value.
- Each team member thinks about how much effort the team will expend to fully complete all the work for the item. Comparing this work to the work effort for the smallest item, each team member selects a card that represents this relative effort. For example, if you think that it requires ten times the effort, you would select the “20″ card. It is not permissible to select two cards.
- Each team member places their selected card, face down, on the table. Once all team members have done this, turn the cards over.
- If all team members show the same value, then write the value on the item and go back to step three for the next item. (Or if there are no more items, then the process is complete.)
- The person with the highest and the lowest value cards both briefly explain why they voted the way they did. If there is a Product Owner present, this person can add any clarifications about the item.
- For any given item, if a person is highest or lowest more than once, then each explanation must include new information or reasoning.
- Once explanations are complete, the team members collect their cards and go back to step three.
- it is extremely important that the voting for an item continues until all team members unanimously vote the same way (this way team members and outside stakeholders cannot blame any individual for “wrong” estimates)
- in Scrum, it is normal for the Product Owner to be present during this process, but not to participate in the voting
- in OpenAgile, it is acceptable for people serving as Growth Facilitators for a team to participate in the voting
- voting should not include extensive discussion
- if more than one person has the lowest or highest vote, usually just one person shares their reason in order to help the process move quickly
- the first few items will often take 10 or 15 rounds of voting before the team arrives at a unanimous vote
- later on, items may take just one or two rounds of voting to arrive at a unanimous decision
- some teams, where trust levels are high, will discard with the use of physical cards and just briefly discuss votes
The planning game is used at the start of a project with the full list of user stories. In this case, it is reasonable to expect the team to average two minutes per user story, and an appropriate amount of time needs to be set aside to accommodate going through the whole list.
The Planning Game is also used any time that there is a change in the list of user stories: re-ordering, adding or removing user stories, or changes to a single user story. When such a change happens, the team can re-estimate any user story in the whole list. When starting a Cycle or Sprint or Iteration, all the user stories in the list should have up-to-date estimates so that estimation work is avoided in the Cycle planning meeting.
Finally, the team can decide to re-estimate any user stories at any time for any reason. However, it is important for team members to remember that estimation is non-value-added work and the time spent on it should be minimized.
For a few years now I have been working with managers and executives to help them do Agile-compatible performance evaluations of their staff. The method that has been most successful is based on a tool that comes from the book Toyota Talent called the “Skills Matrix”. The basic approach follows these steps:
- Baseline the skills within a team for each team member.
- Set development goals and action items.
- Regularly review performance in relation to the development goals.
Of course, the details matter. The OpenAgile Center for Learning has published a brief overview of how to use the Skills Matrix and a convenient A0-size pdf that can be used as a template for a team’s Skills Matrix. I highly recommend using these to get started. If you are a manager, ask your ScrumMaster or Process Facilitator to arrange and facilitate a team workshop to do the initial population of the Skills Matrix, rather than doing it yourself. Once that is done you have a baseline and you should take regular digital photos of the team’s Skills Matrix for record-keeping and as a backup in case of disputes. You should also let the team know that you will be basing performance reviews on how they improve their skills.
The development goals that team members set then should be made such that every team member understands that they have a responsibility to diversify their own skill set and assist other team members in doing this. As a manager, you should review each team members’ goals for development and provide mentoring support when needed. At the end of a fixed period of time (quarterly is a reasonable period), you will review each team member’s development relative to the baseline and the goals set. Of course, normal guidance around performance (or lack thereof) can be given at these regular reviews.
I strongly recommend reading “Drive” by Daniel Pink as an important adjunct to understanding how to do performance reviews for individuals in an Agile environment. In particular, individual performance reviews should not be tied to bonuses. If bonuses are used at all, they should be measured and delivered purely at the team level or organization level without measuring individual contribution.
Of course, Agile team performance can’t simply be measured in terms of skills alone. Performance must also be related to bottom-line results. This part of performance measurement is separate from the development of the team. Another aspect of Agile team performance is how well they are doing Agile itself. Depending on the Agile method you use, there may be various tools to help with this (I would recommend our new product the Scrum Team Assessment as one possible consideration).
You have been fighting for the right for your SCRUM or OpenAgile team to do the right thing and allow the TEAM to estimate the work for a project instead of having a PM, senior manager or Committee just make something up for team. Congratulations…
Then you realize.. Oh, Oh.. Now what ? How am I going to pull this off ? You will find all kinds of interesting material on the net with complex formulas and calculations. There are some well written and recognized books about this topic that can help. *Agile Estimating and Planning by Mike Cohn is a great place to start.
What is important is that the TEAM should estimate the work required to complete a Sprint (or a Project). The people doing the work, really know best how long their work will take.
Please remember though, estimation is just that, and should not be cast in stone. The reality is that at this early stage (or even 1/2 way through a project), there are still many unknowns.
I have used the following approach with as many as approximately 20 team members at the same time. Maybe it will work for you.
The following procedure assumes you already have a team or teams that are familiar with their velocity and capabilities.
Here’s how it works….
At this early stage, their may be some stories, but likely everything is in Epic or Theme sizes. Perfect. You don’t need too much detail.
The Product Owner can give a brief overview of the vision. You might find it useful to have stakeholders there to listen in and answer questions at this early stage. This will help them to have an idea already of what obstacles they will need to be removing for the team in the future :->
Then, let the team use what they already know…. Planning Poker Cards. For an overview of the process, here’s a link for a documented procedure from Mountain Goat Software.
Just change the scale of the cards to be 10 times more. A 2 would become 20, a 20 would become 200. The team members already know this system. It will be easy for them to learn.
So, if your usual numbers are 1,2,3,5,8,13,20,40,100, use the same cards for team voting. The values would just be 10,20,30,50,80,130,200,400,1000..
You will quickly get an overall estimate for each Epic with numbers from the team. Just add up the numbers to get an overall number and divide it by the overall velocity and you’ll have some idea of how many sprints of work are left.
More importantly, you will also have started the process of communication among the team members and the Product Owner. The Product Owner will already know which parts of the project may present challenges to assist them in their overall product planning.
As estimates really are just that, don’t get excited if the numbers aren’t what you deem to be perfect. You will have an idea based on existing velocity of the “broad estimate” for the project.
Nothing fancy, works quickly, and gets everybody thinking about the big picture.
NO, it is NOT perfect. That’s not the idea. Spending too much time on this won’t necessarily give you more accurate results. I find that letting everyone know it’s not perfect, removes a lot of pressure and keeps things moving forward. People will STILL do what’s right and give their opinions on issues that really matter to them. Don’t worry about that ! :->
The hardest part is to keep things moving forward, especially with a larger group. Be prepared for this or this will take far too long.
You may find that the numbers are Not what you expected and may be higher than you had hoped for. Think about it this way. If today, the team is telling you based on what they CURRENTLY know that the project will take 6 months to complete, what is the point of saying, NO, the exact amount of scope will get done in 3 months? As agilists, we know better. Besides, at this point in time, we really don’t know what the work actually is yet.
Try and avoid having only developers, or only a certain group, and please don’t exclude testers or BA’s. The idea here is that since you are working cross-functionally, you should be getting a cross-functional vote. Depending on your group size, you may have a hard time getting your WHOLE team involved. Just resist the temptation to only have a few people. You’re really missing the benefit.
This process has also worked for me half way through a very large project for a new team (it was not possible to do this at the beginning). I was fortunate to be in a company that had a great attitude towards the results and used the information obtained to re-align their corporate objectives based on the teams’ input about how long epics would take. That was a great experience and allowed for a very successful project delivery!
Listen to what the team is telling you! They have all given their input this way. There is no reason to think they are wrong about the their capabilities or the capabilities of the company to keep up with them. The team will also automatically factor in the environment they work in and the corporate development culture.
I’ve successfully used this technique with a group as large as approximately 20 people from a variety of teams working on the same project in the same room with a Product Owner and 2 Stakeholders.
That same team also estimated approximately 6 months worth of epics in just under 2 hours. Longer than that would not likely have produced better results.
The goal isn’t to create procedures here, but to find a way to allow the team to estimate work instead of schedules being handed down to them. More importantly, it will start the goal of communication between the Team and the Product Owner.
Maybe this approach will work for your team. If you try this, please let me know how it worked out for you either way.
Mike Caspar – Mike Caspar’s Blog
OpenAgile – http://www.openagile.com
Scrum – http://www.scrumalliance.org
*Agile Estimating and Planning by Mike Cohn
The comic strip at XKCD today is brilliant. It takes a bit of effort to follow it, but the punchline is brilliant. Communication is tough. How does this apply to agile teams? You be the judge! (PS. XKCD is a great comic for geeks, but sometimes nsfw.)
Dave Nicolette has written a fascinating rant called “All evidence is anecdotal” in reference to research about software engineering.
Almost three years ago we wrote a brief article about interruptions. In that article, we described four methods of dealing with interruptions. I would like to expand on those four methods and add three more to present a comprehensive set of options for organizations struggling with this.
Option One: Follow Scrum Strictly
The rules of Scrum are clear: if it isn’t part of the team’s work for a Sprint, then it shouldn’t be done. From the moment the team commits to work in Sprint Planning to the end of the Sprint with the Sprint Review, the team needs to be protected from interruptions. If an interruption is truly urgent enough to warrant the team’s attention mid-Sprint, then the Sprint can be canceled. This is a pretty extreme result however since it invalidates the team’s previous commitment.
The Scrum approach is based on the basic philosophy that Scrum is a system to expose the problems and obstacles in the organization. This is painful! In the case of interruptions, Scrum then is metaphorically throwing them back in the face of the organization and saying “this is bad behavior! Fix the behavior that causes so many interruptions, don’t find a way to accommodate interruptions.”
For example, many teams are faced with interruptions related to their support of the software they are creating. In Scrum, deflecting the interruptions forces the team and the organization to examine the root causes of the support issues and fix them. If the team is producing software with lots of defects, then that needs to change. If the team is producing software that is hard to use, then that needs to change. If the team is producing software without the appropriate level of user documentation, then that needs to change. But what doesn’t change is the team breaking the safety of the Sprint defined by the rules of Scrum.
Option Two: Allocate a Portion of Time to Interruptions
Given certain conditions, the amount of interruption of a team can be “stable”. If this is the case, then the team can reasonably set aside a certain percentage of their time to handle interruptions. Determining if this is possible can be done by tracking the occurrence of interruptions and the level of effort to handle them.
In a team using this method, there are two ways to allocate this time: everyone on the team gives a certain amount of time each day to handling interruptions OR one or two people on the team are committed full-time for a cycle to handling interruptions. In either case, if the amount of actual time spent on interruptions is less than the amount of time available, then that difference of time must be used carefully. Generally, the best use of this extra time is to work on resolving the root causes of interruptions. For example, if one person of a team is dedicated to dealing with interruptions, and most interruptions come from in-the-field bug support requests, then that person might spend any extra time working on fixing older lower-severity defects.
The amount of time that the team is allocated to handling interruptions should never be exceeded otherwise the team’s commitments at the start of the cycle are not really commitments.
This option is by far the most common systematic approach to dealing with defects
Option Three: Visible Negotiation of Change
Another common method of handling interruptions is the “fluorescent note card” method which requires visible stakeholder negotiation around the impact of interruptions. With this method, any time a stakeholder comes to the team with an interruption request, the ScrumMaster/Coach/Process Facilitator writes the request on a bright colored note card so that it is easy to distinguish it from the other tasks the team is working on in their current cycle. The ScrumMaster then asks the team to do a task breakdown on the card and using their normal process (whatever that is) estimates the work effort. The requesting stakeholder then has to negotiate with any other stakeholders (and in particular the Product Owner/Growth Facilitator about what work to remove from the iteration in order to make room for the new work. This process works well primarily because it makes the tradeoffs visible. It does not work so well with letting the team make and keep their commitments which can have a long-term impact on trust.
This approach requires a few things to be in place to be effective:
- A visible task board instead of electronic tools for task tracking. The visibility makes the change much more immediate and you must have the stakeholders involved right in the same physical space. An electronic tool makes this too abstract and can lead to some important stakeholders not being properly aware of changes.
- A team that is reasonably good at estimating. By “good” I mean both accurate and fast. If it takes the team half an hour to do an accurate estimate, then that is already a significant interruption in itself! A team should be able to look at an interruption, break down the tasks and come up with a reasonably accurate estimate within no more than 10 minutes. Remember that doing this is already task switching so there is going to be an additional cost to the team.
- Finally, and perhaps most importantly, a clear agreement must be in place among stakeholders that this approach to interruptions is allowed and that the consequence of it is that the team cannot be held accountable for their commitments!!! I cannot stress this enough!
Option Four: Separate Team for Interruptions
This option is fairly self-explanatory and in fact is just a way of saying that you have a separate support group who deals with interruptions. The more technically capable this group is, and the more authority they have to make changes to the code/database/etc., the more effective they will be at protecting the agile teams from interruptions.
In some ways, this is a good approach because it makes the cost of interruptions very visible to the business: how much does your support team cost? If this cost is growing, then it means that the development teams are creating software that is harder and harder to support.
If you follow this approach, please ensure that you do not rotate development team members through the support team as this damages the team-building process for both the development team and the support team.
(One radical option to try as an add-on to this is to defray the cost of this support team by tying developer’s salaries to the cost of support. To make this palatable, you might simply say to the development team that any time a support person can be laid off due to improved quality in the product/system, that person’s salary will be permanently distributed and added as a raise to the salaries of the development folks. PS. I’ve never seen any organization do this – it’s just a theory.)
Option Five: Extremely Short Cycles
A less common, but interesting method for handling interruptions is to have extremely short iterations. In this method, choose your iteration length to be so short that you can always start work on urgent interruptions before anyone gets impatient! This can be exhausting, but it is one of the best ways to get the team and the organization to understand the large toll that these interruptions take.
There is a simple way to determine how long your cycle should be based on measurement. Choose a “normal” duration (e.g. one or two weeks) and for several cycles track how many interruptions are submitted to the team, and how urgent is the turn-around time on those interruptions. After several cycles, the team can then adjust its cycle length so that, on average, the team is able to start and finish a cycle in a time shorter than the expected frequency of interruptions.
For example, one team I worked with found that in general, they were getting interruptions that needed to be handled within three or four days, but more urgent interruptions were rare. They decided to use a cycle that was only two days long so that on average they would complete handling an interruption in three days. (Interruption comes half way through a cycle and is put on the backlog at the top. The next cycle they start and finish the interruption. Elapsed time is three days.)
Option Six: Status Quo / Suffering
There is nothing inherently wrong with continuing with your current approach to handling interruptions. It probably makes some people miserable, but there are also some people who really enjoy crisis and constant change. In fact, it may be part of the culture of your organization or something that is strategically important in your particular industry. That doesn’t mean you can’t be agile, but it may mean that you are making compromises where you are trading off team performance for some other benefit. it is important that if you choose to continue with your status quo, that you make the trade-off transparent. Tell everyone on your teams exactly why you are making the trade-off and what is the expected benefit of doing so.
Option Seven: Commitment Velocity
The most sophisticated option is based on measuring a special kind of velocity called “Commitment Velocity”. This is a mechanism that allows both interruptions to be handled mid-cycle and for teams to make commitments that they can keep. In the simplest terms, Commitment Velocity is the minimum historical slope of a team’s Sprint burndown.
For example, if a team in Sprint 1 has 240 units of effort at the start of the Sprint, but, partly due to interruptions, does not finish and then has 40 units of effort left unfinished at the end of the Sprint, then the Commitment Velocity (slope) of the team is 240 – 40 = 200. In their next Sprint planning meeting, they would plan such that they had at most 200 unites of effort in their Sprint plan. The team then does their second Sprint and again, partly due to interruptions, they don’t finish everything. Perhaps this second sprint started with 195 units of effort (<200) and finished with 10 units of effort remaining. Their new Commitment Velocity is 195 – 10 = 185. They do a third sprint, but they finish everything.
It is tempting for the team to perhaps take an average – maybe they finished 200 units of effort in their third Sprint so they average 200, 185 and 200 leaving 195. This is not Commitment Velocity. By definition, an average means that the team will successfully complete all their work 50% of the time.
Instead, the team maintains its Commitment Velocity of 185 for their fourth Sprint. By the law of large numbers and the central limit theorem, as the team uses this tool of Commitment Velocity for more and more Sprints, eventually their ability to keep their commitments, even with interruptions) will become closer and closer to 100% certain.
Selecting an Option
Ultimately, the most important thing in selecting one of these options is to do so consciously and in the spirit of learning that underlies agile methods. Choose an option and then stick with it long enough to truly understand if it is working for you or not.
There are some things to consider as well:
- If you are trying to do a dramatic improvement in how your organization gets stuff done, I would recommend choosing either Option One (Follow Scrum Strictly) or Option Seven (Commitment Velocity). Both of these are options that put pressure on the team and the organization to improve.
- If you don’t have strong executive support for Agile, then probably Options Two (Time Allocation), Four (Separate Team) and Five (Short Cycles) are going to be your best bet at first.
- If you do have strong executive support, but you aren’t desperate to improve your organization, you might consider Option Three (Visible Negotiation).
- Of course, Option Six (Status Quo) is the easiest… I don’t really recommend it though! Agility requires systematic change to encourage continuous improvement. All the other options assist with this.
From Kane Mar, here is a good summary of thoughts and approaches to doing Agile performance reviews.
Recently, I was able to witness a remarkable event in a company that is relatively new to Agile. They have several teams at about Sprint 12, with several new teams just starting up. Many of their processes are waterfall based.
A failed waterfall project was moved to an existing Agile Team.
In the second Sprint, the Team (feeling trust in the organization and the process), came to the Scrum Master and said, “We’d like you to talk to management. We are not sure this project should be using the platform we develop on. We think another team’s platform may be more appropriate”.
The company had spent time developing a “specification document” for this “project” before Agile was introduced. There were detailed specifications as to how the product was to be created and which platform to use. NONE of this was done with the benefit of asking those that would actually be doing the work.
The project was initiated before learning about applying Agile. One developer was tasked with following the specification. After 2-3 months of frustration, the developer left. This left the company in a bad position. Not only was the project incomplete, but there was also no knowledge transfer. The project was basically stopped.
As Agile was now the new target way of doing things, the project (and new developer hired through the previous process) were added to an existing SCRUM team. The team is using one week Sprints.
After only two Sprints (two weeks), the team had recognized the futility of the approach that was “specified” and took this to management.
Traditionally, large organizations staff for projects. In an environment such as this, how could team members be expected to be truthful and honest about the state of affairs? It would mean the end of their jobs or contracts.
The key here is to allow teams to stick together. Not only will you avoid losing all the efficiency the team has built up, but you will also allow them to be truthful about their situation.
If you are a manager reading this, ask yourself. “Do I want to know that things will go wrong at the beginning of the project or wait until 5 months have gone by to be told, ‘We knew it would never work”". Or even worse… “We knew the product owner was asking for ridiculous features that had no Return on Investment for the company, but hey, you hired us for this contract. We just follow instructions”.
As it turned out, the project did continue with the current team, but with some changes to the specification. The parts of the system that were going to be problems in 5 months were re-evaluated and were removed as they really did not have any real value to the company. It was then decided to stick with the same platform.
Discussions did occur regarding moving to the alternate platform, but were deemed unnecessary after open discussion between the teams and the managers involved. Realistic expectations were set based on value to the company.
Sometimes features are absolutely mandatory for the product. This cannot and should not be taken away from the process. What we gain here is that we are able to have a discussion about necessity. In the end, the business has to decide what is valuable, not the development team.
In a case like this, ask yourself, “If my team is very against this, maybe I should at least think about it”.
The company is working in a very short iterative environment, they quickly recognized a flaw in the system design and dealt with it after only 2 weeks into a several month project.
Working incrementally allows the company to “Inspect and Adapt” on a regular basis. This has to include the question, “Does this still make sense?”. If you need to go backwards, let it be to reverse one or two Sprints of work, not months, or even years.
Fortunately, for the company, the product will come out on time, with appropriate technology based on Return on Investment, and likely with significant cost savings over the initial design. This will also allow the team to get started on other high value projects. Talk about win-win.
This project could have gone to another team. It would not have been negative for the first team. The next project would have just come down the pipe for them.
The early signs helped adjust the “expectations” and everyone is moving forward with a clear understanding that they are on a more appropriate path going forward.
For those of you out there trying to convince companies (or yourselves) that Agile is an effective framework, don’t be afraid to talk about “RISK MITIGATION“.
Think about it this way; The company wants to know early on that there will be a problem, not near the end of the project. This is part of the purposeful transparency of any Agile framework.
Mike Caspar’s Blog
A manager I am working with recently sent me this link. I have seen this topic discussed before, but never so nicely worded. Thanks Charles.
It is a discussion about how Jazz music is different than Classical music and how that knowledge could help to understand Agility.
Great post. I think we’ll hang this on the wall somewhere in the team room.
“I now can see why Corporations have such a hard time identifying the Scrum Master in their organizations. Scrum Masters basically don’t fit either category, yet most corporate hiring is done based on hiring of “leaders” and “managers”.”
For the complete text click here
Michael Badali, a good friend of mine, has asked a great question on LinkedIn: What is your Backlog for Agile Transformation?. From his question:
While I think that Band-Aid off quick is more likely to be successful than Band-Aid off slow, often Agile Coaches & Leaders are put in the position of Kaizen instead of Kaikaku. When asked for a detailed waterfall plan and schedule on how to become Agile… I generally refuse and create an Agile Transformation Backlog – a prioritized list of things that need to be done to become Agile. Please share your prioritized list of things that need to be done to be Agile.
Scrum is the most popular agile method… if you count all of the teams doing “Scrum Butt”. Doing Scrum really well is much harder and much rarer. Here is a list of 24 common pitfalls or bad behaviours of Scrum teams:
- Excessive Preparation/Planning: Regular big up-front planning is not necessary with Scrum. Instead, a team can just get started and use constant feedback in the Sprint Review to adjust it’s plans. Even the Product Backlog can be created after the first Sprint has started.
- Focus On Tools: Many organizations try to find an electronic tool to help them manage the Scrum Process… before they even know how to do Scrum well! Use manual and paper-based tracking for early Scrum use since it is easiest to get started. Finding a tool is usually just an obstacle to getting started. (And besides, check out what the Agile Manifesto says about tools.)
- Problem-Solving in the Daily Scrum: The Daily Scrum should not be used to find solutions to problems (obstacles, impediments) raised. Instead, keep the meeting very short and have those problem-solving conversations afterwards with only those who are interested. The ScrumMaster facilitates this meeting to keep it on track.
- Assigning Tasks: Even though the concept of self-organizing teams has been around for a long time, still some people think that a project manager or team lead should assign tasks to team members. It is better to wait for someone to step up than to “take over” and assign a task.
- Failed Sprint Restart: Although cancelling a Sprint is rare, it can be tempting to try and wait until everything is “perfect” or “ready” before re-starting. Teams should immediately re-start after cancelling a Sprint.
- ScrumMaster As Contributor: The ScrumMaster is like a fire-fighter: it’s okay for them to be idle – just watching the team – waiting for an emergency obstacle. Taking on tasks tends to distract the ScrumMaster from the job of helping the team follow the rules of Scrum, from the job of vigorously removing obstacles, and from the job of protecting the team from interruptions.
- Product Owner Doesn’t Show: The Product Owner is a full member of the team and should be present at all Scrum meetings (Planning, Review and Daily Scrums). As well, the Product Owner should also be available during work time. Of course, the PO also needs to work with stakeholders and might be away during that time, but these discussions should be scheduled outside of the team’s meeting times.
- Stretch Goals: The team decides on how much work it will do in a Sprint. No one should bring pressure on the team to over-commit. This simply builds resentment, distrust and encourages low-quality work. That said, of course teams can be inspired by challenging overall project or product goals.
- Individual Heroics: Individuals on a Scrum team should not do excessive individual overtime, or in any other way try to be the “hero” of the team. Scrum helps us build great teams of people, not teams of great people (quote from Barry Turner).
- Team Organizes Product Backlog: The team does not have proper insight into the needs of users and instead should be focused on solving technical problems. The Product Owner needs to be accountable for ROI and therefore should resist any pressure from the team to do things in a particular order for “technical” reasons.
- Product Owner Specifies Solutions: The Product Owner must allow the team full freedom to come up with solutions to the problems presented in the Product Backlog. PBIs should be free of technical specifications unless they can be tied directly to a customer or end-user request.
- Urgent Interruptions: Urgent interruptions should not be allowed in a Sprint… instead, if it is urgent enough, the team should cancel the Sprint. Otherwise, the interruption should be put on the Product Backlog and deferred until the start of the next Sprint.
- Making Assumptions: Often team members will fail to ask the Product Owner about details of the work they are doing. A team member solves problems, but it is critical to know about constraints. The feedback between PO and Team Member should be ongoing throughout every day of the Sprint.
- Not Getting Done: This is hard to prevent from happening from time to time, but it can become a habit for a team to over-commit. Make sure that a team that is doing this is using burndown charts effectively and is holding demos even when they have not completed all their work.
- Demo Not Ready: Sometimes a team forgets that it will take time to prepare for a demo: cleaning the team space, setting up a demonstration environment, getting scripts ready, and ensuring that critical stakeholders are prepped. These activities can be part of the tasks in the Sprint Backlog.
- Prototype Not Shippable: A Scrum team should attempt to produce production-quality, “potentially shippable” software right from the very first Sprint. Building prototype code just delays the inevitable need to write production code. Similarly, wireframes, detailed designs and other similar tools should also be avoided.
- Distributed Team: Although Scrum does not officially require team members to be collocated in a “war room”, the reality is that any distribution of team members (even just into separate cubicles) has a huge negative impact on transparency and communication, which in turn has a huge impact on productivity and quality.
- Directive ScrumMaster: The ScrumMaster needs to be a facilitator who supports the team in learning self-organization, and the Scrum rules. The ScrumMaster should never succumb to the temptation to suggest how a team member does his or her work, nor what task next to work on.
- Changing Team Membership: Scrum is a framework for creating high-performance product development teams. If the membership of a Scrum team changes, it forces that team to re-start the Forming-Storming-Norming-Performing sequence. If the team is in Norming or Performing, then changing team membership for any reason is a waste of quite an investment.
- Non-Scrum Roles on the Scrum Team: It is very common for an organization to create a Scrum team without changing the official title and duties of the people who are members of that team. For example, a person who is a Project Manager might be given the responsibilities of the Product Owner without an official change of title. Scrum teams should only have a ScrumMaster, a Product Owner, and Team Members.
- Giving Up On Quality: Scrum has very high demands on teams regarding the quality of their results: “potentially shippable software”. It is easy for a team or organization to fall back on the crutch of defect tracking software instead of maintaining extremely high levels of quality at all times (due to pressure to release features).
- Imposed Deadline Scope And Resources: Scrum is reality-based. If an external stakeholder wants to impose a minimum scope, a deadline and constrain the resources available to the team then they must allow that quality will slip… which in turn is against the principles of Scrum. The reality is that no-one can predict the future so any such imposition is simply a fantasy.
- Definition of “Done” Imposed: There is confusion between the concept of the definition of “done” and “standards”. Managers and other stakeholders often incorrectly impose standards on a team as its definition of “done”.
- ScrumMaster Not Present: I once saw an organization that had created a room for a “team” of ScrumMasters. They worked there together most of the time! The only time the ScrumMaster should be away from the team is when he/she is working on removing an impediment that is outside the team. Otherwise, the ScrumMaster should be in the team’s room.
In his book “Crossing the Chasm“, Geoffrey Moore describes the difficulty of creating a popular new product due to a conceptual “chasm” between the first people who adopt a new product and those who come later. He describes five types of people in relation to how they adopt new products:
- Innovators – always actively seeking out and trying cutting edge new products.
- Early Adopters – excited to try new things, but after the worst “bugs” have been removed.
- Then there is the Chasm – many products fail here.
- Early Majority – willing to try new things but need strong testimonials or real-world proof.
- Late Majority – require time-tested proof before they will adopt a product.
- Laggards – resistant to change and hesitant to adopt anything without strong personal incentives.
This product adoption behavior also applies to new ideas in general, and of course, to Agile Transformation [Agile Transformation vs. Agile Adoption] in particular.
Implications of the “Chasm” Model
An organization attempting to do an Agile Transformation [Kotter's 8-Step Change Model] should understand how to use this model to ensure long-term success. This diagram illustrates the concepts (click on it to see it full size):
First, the organization should start the transformation by finding the innovators and early adopters. These people can then be recruited to run the initial pilot projects. They will be enthusiastic and will typically adapt themselves to the new behaviors and thinking patterns required by Agility. If they are properly supported by managers, they will also be successful – at least within the bounds of a limited pilot environment. Success here will mean that the pilot projects deliver value, use feedback effectively, and the participants (team members and stakeholders) will be happy with the results.
In this stage, it is best to avoid putting people on the teams who are from the early majority, late majority or laggards groups. These people will tend to drag on the results of the pilot projects. This is a common mistake in running a pilot program and leads to discouraging results. One way to help filter between these two groups is simply to ask for volunteers for the pilot projects. Innovators and early adopters will be much more likely to volunteer for a new initiative.
After the pilot projects have shown some good results, the next step is to go the general roll-out. In this step, you are now working with the early and late majority. These people need much more substantial support for a change of this nature. They will require intensive training, and hand-holding in the form of coaching and mentoring. This hand-holding can come partially from your innovators and early adopters. Some of the participants in the pilot projects will have the desire to share their success. From these, you need to carefully select and prepare a few who will act as internal coaches. If you are a small organization or if you wish to do your transformation quickly, you will likely need to hire coaches from outside your organization as well.
The early and late majority require evidence of benefits and reassurance that risks are minimal or can be mitigated. This evidence partially comes from your pilot projects. However, this may not be sufficient. There are two other important sources of evidence for this group: the leadership team and external experts.
The leadership team must be committed to the change to agility and can demonstrate this commitment by doing their own management work as an agile team. The exact details of the agile process do not need to be identical to that of the staff teams, but it should be recognizably similar. As well, this “Agile Transformation Team” must make itself very visible during the general roll-out. This can be done with communication and by taking up visible residence in a central conference room or bullpen. As well, this Agile Transformation Team must work diligently to remove obstacles that are raised by staff teams during the general roll-out.
The second source of evidence comes from external sources. Published case studies are one valuable source. However, there is a huge value in a visible management investment in external support from recognized experts. This can be in the form of training, coaching, consulting as well as informal “lunch-and-learn” meetings, town hall meetings and the like. When engaging experts, it is imperative that the Agile Transformation Team act on their advice otherwise the early and late majority will take that as a sign of hypocrisy.
The final stage of a roll-out is to deal with the laggards. For the most part this is a do-or-die proposition for these people. Either get with the program and engage like a committed employee or leave the organization. If your organization is large enough, you will likely have observed some of these people leaving the organization in the general roll-out.
For some organizations, this transformation process can take many years. An organization with thousands of people should expect to be working on the pilot projects for at least a year, the general roll-out for at least three years. Often it will be longer. Good luck on your agile transformation effort!