Agile and Scrum Videos

Watch Mountain Goat Software videos on agile, Scrum, product ownership, estimation, planning, and teamwork.

All Videos

5 Scrum Rules Teams Still Struggle with (And How to Fix Them)

Transcript

Scrum is simple.
The rules fit in a 14-page guide.
Most of us can recite the basics.
Cross-functional team, clear roles, short sprints, inspect and adapt.
So why do so many teams still struggle with the Basics even today?
We've surveyed hundreds of Scrum Masters, product owners, developers, and managers.
And the results are clear.
Even when people know what good Scum looks like, the reality often doesn't match.
Let's look at five Sc rum rules that are simple on paper, but often make or break teams in the real world.
Everyone knows there are three roles in Scrum.
Product owner, Scum master, and developers.
Simple, right?
Yet when we asked people about their challenges, role confusion came up again and again.
We heard from teams who said no one seemed to know who was responsible for what.
Others told us that restructuring left them lost about there own role.
Some said their product owner was treated like a team lead, making all the calls.
This happens because organizations don't take the time to define or respect the boundaries of these roles.
That leaves team members guessing, stepping on each other's toes, or leaving gaps where no one takes ownership.
One simple exercise that can help is to have everyone write down what they think each role does, then compare notes.
The differences will surprise you, and they'll give you a great starting point to agree on clear shared expectations.
Scrum teams are meant to succeed or fail together.
The sprinkle is shared.
But in practice, teams often divide work up like a buffet.
Developers take one slice, testers get what's left, and everyone eats alone.
We heard from teams who said features always seem to land on one person's desk.
Testers told us they felt abandoned until the very end of the sprint.
It feels efficient to keep everyone busy with their own work, but it actually kills the ability to finish together.
That's the real problem.
Teams confuse efficiency with effectiveness.
If this sounds familiar, try swarming.
Pick a single backlog item and have multiple people work on it until it's done.
It'll feel strange at first, like you're leaving people idle, But the payoff is huge.
You'll start finishing things as a team, not just working in parallel.
Another classic sign is constant carryover.
Teams know the rule.
Don't take on more than you can finish.
And yet we heard from people who said they always had spillover every sprint.
One person told us it felt like their wheels were spinning.
They never got to the finish line.
Why does this happen?
Because teams want to please.
They overcommit to leadership, to stakeholders, even to themselves.
And when the sprint ends, they normalize the disappointment.
Carryover becomes just how we work.
But it doesn't have to be that way.
Treat unfinished work as a broken promise, not as business as usual.
Shrink your commitments until you can actually hit 100% consistently.
Build trust by finishing what you start.
Scrum events are supposed to be valuable.
Inspect, adapt, collaborate.
That's the point.
But too often they become status updates or dead air.
We heard about retrospectives where nobody spoke up.
Daily scrums that felt like nothing more than check-ins.
Sprint planning squeezed so tight there was no time for real discussion.
The problem is teams forget these events are for them, not for management.
When meetings become just another obligation, people check out.
Here's something you can try.
At your next meeting, ask the team, if this meeting didn't exist, what would we miss?
If the answer is nothing, then it's time to change the format until that meeting sparks conversation, debate, or decisions.
Finally, let's talk about the backlog.
Everyone knows it should be clear, prioritized, and broken down into small pieces.
But in practice, that's not always what happens.
We heard from teams who admitted backlog management was a constant struggle.
Developers said they came to refinement unprepared.
Others said that they still split work into dev stories and QA stories instead of finishing items together.
Why?
Because splitting big items is hard and refinement isn't anyone's favorite meeting.
So teams treat it as optional and the result is chaos.
Stories that are too big, priorities that vague, and planning sessions that feel like firefighting.
One fix is to make refinement a team responsibility, not just the product owner's job.
Rotate who brings the first draft of a backlog item.
When everyone has to try writing items, everyone gets better and backlog sessions stop feeling like a one-way street.
Scrum is easy to understand, but hard to master.
And this last rule may be the most important one of all.
Knowing the rules isn't enough.
You have to apply them.
Teams don't fail because they don' understand Scum.
They fail, because the don stick with it, or they abandon the basics when things get tough.
The good news is, these problems aren't permanent.
With the right focus and the training, you can break the cycle of knowing better, not doing better.
That's why we built Working on a Scrum Team.
It's a practical, two-day, team-based course that helps reset habits, clear up role confusion, and give your team a shared playbook for Scum that actually
works in the real world.
If these struggles sounded familiar, this course was built for you.
Bring your Team or a few changemakers and walk away aligned, equipped, ready to deliver.

5 Ways to Get Stakeholders to Get Involved in Your Next Sprint Review!

Transcript

Sprint reviews are a built-in way to engage stakeholders in a project every few weeks, at a minimum.
The sprint review meeting is when teams can talk about the functionality they have created with the people who need and want that functionality.
This means sprint reviews can be the most exciting meeting of every iteration.
Too often, though, sprint reviews don't live up to their promise.
Stakeholders don' attend, are bored, or sit passively just waiting for the meeting to end.
Sprint reviews are a vital time for collaboration.
So let's look at some ways you can make sprint interviews interesting and engaging.
By the way, my name is Mike Cohn, and I'm the author of three bestselling books on Agile and Scrum.
I help good teams become great teams.
To ensure sprint reviews are well attended, choose a good time and day for the meeting.
Sometimes reviews were poorly attended simply because the meetings is at a bad time or on a day.
I worked with a team that ran one-week sprints, ending every Friday.
They scheduled their reviews for Monday at 10am.
This was a horrible time.
Mondays already had more than their share of meetings, and 10 am was prime time for other meetings.
No one wanted to be the jerk who scheduled a 9am meeting, so 10am had become the default for the first meetings of the day.
After shifting their view to the afternoon, everyone could attend.
If your stakeholders aren't attending your sprint reviews, maybe they find them boring.
This can happen when a team demos everything it did during the sprint.
There's no need to demonstrate a bug fix that could only have been fixed one way.
Just tell the stakeholders the bug was fixed and move on.
Show the fix if they really want to see it, but stakeholders probably won't.
Reviews can also become boring when discussions are allowed to drag on too long.
Whoever is facilitating the review, typically the scrum master, must be careful to keep discussions on topic and engaging.
Discussions are essential for collecting feedback during the meeting.
Be careful, though, of going into too much depth unless a strong majority of the participants need to hear that much detail.
If a small subset of meeting participants needs more discussion time on something, make note of it.
Announce that you'll arrange follow-up conversations or meetings afterwards, and then move on.
You can also make reviews more engaging by handing the keyboard or screen sharing to a stakeholder.
have them take a new feature for a spin while a team member talks about it.
Stakeholders may not be attending your sprint reviews because they don't understand why they need to participate.
Unless you've explicitly communicated what happens during a review, how stakeholders will be involved, and what decisions will made,
stakeholders may see a need not to attend.
To encourage stakeholder participation, I like to send an agenda the day before each meeting.
In it, i list the sprint goal, the product backlog items that will be discussed, and the key decisions to be made during the review.
This helps stakeholders decide if they should attend.
I remember a review in which a team planned to show off usability improvements they'd made.
An important stakeholder with no expertise in usability decided she wasn't needed in the meeting, I think this was the right decision.
That stakeholder did not need to waste her time in a meeting to which she could not contribute.
She did participate in the next sprint review because her opinion was important to the work of that sprint.
Letting stakeholders choose to skip reviews in which they're not needed is a win because stakeholders learn that the team respects their time.
One reason stakeholders may not participate in sprint reviews is that the meetings take too long.
The sprint review facilitator needs to keep the meeting moving at a brisk pace.
A simple way to speed up reviews, is to plan in advance who will do what.
Agree which product backlog items will be demonstrated in what order and by whom.
It's disrespectful to your stakeholders not to figure that out in advanced.
I'm a big fan of this showbiz adage from P.T.
Barnum, always leave them wanting more.
Leave sprint review attendees wanting, more rather than wishing the meeting had been shorter.
Do this by mentioning rather, than showing trivial changes.
Also do it by showing perhaps 80% of a feature rather then every little detail of something new.
If you're asked, demo the remainder.
Always leave the wanting.
More.
Good for show biz, good for a sprint.
Review.
Sprint reviews should be conversations, not presentations.
If you don't ask stakeholders to share their opinions, don' t be surprised if they stop participating.
You don t need to act on every stakeholder's suggestion, but team members need consider each.
If stakeholders are reluctant to share opinions, start by explicitly asking for their opinions as you demo each backlog item.
If that's not enough, try asking more specific questions or asking specific individuals.
Start with one of the more senior stakeholders and ask about a specific part of what was demonstrated, or ask if a certain type of user might prefer something different.
Often, once you get feedback started, others will add to it.
Encourage future stakeholder participation by trying as quickly as possible to incorporate some of the stakeholder feedback.
When you do, point out that the change came as a result of their feedback It's a serious problem when stakeholders fail to participate in sprint reviews.
It leads to missteps being caught later in the process, sometimes so late the deadlines shift.
A lack of stakeholder participation also sends a message to the team that the product is not important.
That is almost certainly not the case.
The techniques I've shared should help you overcome the most common reason stakeholders are not attending your sprint reviews.
If you found this video helpful, please do me a favor and hit the like button.
It really does help YouTube know to show it to others.
And click the subscribe button if you'd like to be notified of future tips.

5 Ways to Improve Your Scrum Team (Without Culture Change)

Transcript

If you've worked on a Scrum team for any length of time, you probably heard or maybe said things like, We could be so much better if only leadership understood Agile.
Or, we'd get more done if the culture here was different.
And you're not wrong.
It's true that culture matters.
But it's also true if you wait for the organization to change before improving how your team works, you might be waiting a long time.
Now, what I'm about to share isn't a fix for every problem your teams might face.
Think of it as a set of simple, practical shifts you can try right away.
The benefit is they don't require buy-in from leadership or months of effort.
They're small levers your team can pull now, and they can start making a noticeable difference quickly.
In over 20 years of working with Scrum teams, I've seen significant gains happen inside the team's own bubble through actions they control without needing permission.
Here are five practical ways you can get started.
Power up your retrospectives.
Retrospectives can easily drift into management should territory, especially when the wider organization isn't fully on board with Scrum.
The problem is, when you do that, you give up you agency before you've even tested what's possible.
A simple shift is to focus only on actions the team can take themselves.
One team I worked with kept a running list of past action items in a shared document, and they reviewed it at the start of every retro.
Seeing those completed items reminded them that change was possible and already happening.
Something you can try is ending each retro with just one improvement the team commits to finishing before the next sprint review.
And make it visible so everyone can see the problem you want to solve or improvement you wanna make and that you're working as a team to make happen.
A team without a shared, inspiring purpose is really just a work group.
When you've got a purpose that's both motivational and actionable, it pulls people together and sharpens every improvement effort.
My next tip is to make sure you and your team have that shared purpose and vision.
That purpose can take different forms.
For example, one company I worked with served expectant mothers and their parents.
Their vision, your parenting partner, aligned every team around helping women achieve healthier, less stressful pregnancies.
It was short, memorable, and drove decisions across the organization.
Another team I coached working in bioinformatics rallied around the question, what if all medical treatment could be personalized to a patient's DNA?
That question fueled creativity and kept them focused on breakthrough possibilities.
And sometimes the purpose is a challenge.
A SaaS product team set a goal to double activation rates in three months.
Bold enough to inspire, yet concrete enough, to guide backlog priorities.
Their energy spread across departments, amplifying results.
a practical step in this situation is to work with your product owner to frame a sprint or release goal as a Challenge the whole team wants to win.
Here's a trap I see all the time.
Teams debate endlessly about the right way to do scrum.
Instead of theorizing, agree to test a new approach for two sprints before deciding.
My grandmother used to say, take two bites before you decide you don't like something.
The same applies here.
One sprint often feels too different to judge it fairly.
I saw this when a team tried two week sprints after a year or two of four week sprint.
The first sprint felt chaotic.
the second was smoother and that's when they could really decide and they chose to keep two weeks sprint.
An easy way to put this into action is to hold off on debating changes after the first print.
Wait until the 2nd and then decide.
When one person, often a scrum master or tech lead, assigns all the tasks, it sends an unspoken signal, decisions come from above.
That kills ownership, and it makes it harder for people to believe they can influence how the work gets done.
I worked with a team where all work was allocated by the tech lead on day one.
By day seven, priorities had shifted, but the plan stayed fixed.
Bottlenecks piled up, people were idle, and frustration grew.
When that team moved to self-selection of work, it flowed faster.
And something more important happened.
The team began making process tweaks on their own.
Instead of what's left on your list, a question you could start asking in daily scrums is, what should we tackle next?
That tiny shift keeps the focus on the team's sprint goal.
Scrum's no changes in a sprint rule is there to protect the sprint goal, but real life brings urgent requests.
The answer isn't to pretend interruptions will never happen, it's to plan for them.
Maria, a scrum master I worked with, negotiated a small buffer with stakeholders each sprint.
That made buffer use visible, sometimes just a simple progress bar.
that visibility kept conversations factual and prevented scope creep.
One simple experiment you could run here is to size your buffer based on past interruptions and make its usage visible so everyone understands the trade-offs.
Even if the wider organization isn't living and breathing agile, your team can create a pocket of high-trust collaboration and continuous improvement.
One team I worked with created their own vision, swarmed on work to meet sprinkles, and kept a transparent, well-maintained backlog.
They couldn't change the company overnight, but their results got noticed and other teams asked how they did it.
When teams perform in this way over time, stakeholders tend to notice.
Other teams may follow your example, and culture change can begin from the inside out.
These kinds of improvements can put your team on a really strong path.
And if you want to take things even further, making sure everyone is aligned around the same version of Scrum, we can help.
Working on Scum Team is a live online course designed to help good teams become even better.
Instead of sending one role at a time to separate training, teammates can train together so everyone hears the same message,
practices the the exercises, and leaves with a unified approach you can apply the very next sprint.
You'll leave this class with shared agreed upon definition of roles, responsibilities, done.
hands-on experience in planning, estimating, and refining backlogs.
A common language for tackling challenges without finger pointing or stalling.
You don't need to wait for a company-wide agile transformation to get stronger as a team.
you can start right where you are with the people you work with every day.
If you want to take a good Scrum team and make it great, aligned, confident, ready to deliver, this course will help you get there.
Check out the link in the description to learn more.

7 Agile Estimation Techniques Every Scrum Team Should Know

Transcript

I hear from a lot of teams that they struggle to estimate well.
Often these teams will attempt to improve by trying harder.
They don't identify problems in their approach and systematically fix those problems, they just try harder I'm a mediocre chess player,
I am not going to win more games by just trying hard.
To win games I need to identify where I was weak and then work to get better in those areas.
A team trying harder to estimate well won't change much.
And eventually, the futility of trying to get better by only trying hard becomes demotivating.
At that point, some teams throw their hands up and take an attitude that estimating is impossible, so they won' t try.
Estimating isn't impossible but it is challenging.
Instead of giving up, try things that will help your team estimate better.
In this video, I'm going to share seven tips for getting the best estimates of story size.
If you know me, you probably know I'm a big fan of estimating in story points, which are an abstract relative measure of effort.
I've definitely got storypoints in mind for these tips, but the tips can be applied just as well if you estimate in more traditional units,
such as person days.
Our first tip is to make sure everyone agrees on the type of estimate being provided.
If you are giving a really conservative, safe estimate, but I'm giving the best-case estimate we're almost certain to disagree.
This tip fundamental.
if your team doesn't talk about what type estimate you're making, the only way team members will agree on estimates is by luck.
There are five general types of estimates a team can provide.
Let's take a look at each.
This chart shows the likelihood of being done at various times.
The general shape of the curve indicates that there are not a lot of things you can do to finish something much earlier.
But the long tail indicates there ARE a LOT of thing that could go wrong to really make something take longer.
The highest point shows the single most likely estimate.
This is one of the five types of estimate a team could provide.
To the left of most-likely estimate is the ideal case.
That represents something like a 10% chance of being right.
Pretty much everything has to go perfectly for a teams to finish in this amount of time.
Next is median estimate, the 50-50 estimate – the team is just as likely to be finished early as they are to finished late.
Finally, we've got a risk-averse estimate out to the right.
This is the reverse of the ideal estimate, but the team has a 90% chance of beating the risk averse.
And way out there is a worst-case scenario.
Team members probably won't estimate this conservatively, because that represents everything going wrong while working on an item.
Where on this chart should team members estimate?
I think the median is best.
I thinks it's easy for estimators to conceptualize.
It's the point where something is equally likely to take more or less effort.
But the most important thing is to have that conversation with team member, so they're in agreement about which type of estimate the team wants to use.
Gaining this agreement gets rid of a lot of frustration team numbers feel when they have what seem like futile disagreements over an estimate.
Our second tip is to estimate relatively by analogy.
If you're ever in an estimating meeting with me, you will never hear me ask, how long will this take?
Instead, I ask questions like, what other backlog item is this like?
Or will take more or less time than this other item?
Estimating relatively can be done more quickly, especially once a team has built up a large base of items to compare against.
There's also some evidence that relative estimation by analogy is more accurate.
Third, keep most estimates within one order of magnitude, such as 1 to 10. Research has shown that we're actually not that bad at estimating items as long
as we stay within 1 order or magnitude.
If you need to estimate outside of an order magnitude and there can be good reasons for doing so, build up to that gradually.
Estimate a dozen or more items all in the 1-10 range, then start reaching a little larger.
Don't estimate some items from 1 to 10 and then go right to estimating something at 100. Instead, estimate a few items that are a little too big,
perhaps up to 20, then maybe move up 40. Keep in mind though, in many cases, you'd be better off splitting work this big into multiple smaller items and
estimations those instead.
A fourth tip is to avoid getting too precise.
It's obvious you don't want to estimate something as 3.47 story points, person days, or whatever unit you're using.
Less obvious, though, may be that you probably don' t want use 3, 4, and 5 as valid estimates.
it's unlikely team members can distinguish between numbers this close to one another.
My local pizza restaurant offers pizzas in three sizes, medium, large, and grand.
That's enough.
I can tell the difference between those three size.
If they offered me pizzas of 15 different sizes between medium and Grand, I wouldn't be able to tell that difference.
So don't get too precise.
Use a smaller set of numbers that you can distinguish.
This is why the Fibonacci sequence and powers of two have become popular estimated sequences.
And just as when ordering a pizza, round up when team members are debating between two sizes.
If you're trying to decide between a medium and a large pizza order the large.
if the team is torn between four and eight, go with the eight.
Odds are there will be some unanticipated work involved that will push the item towards the higher number once the Team gets into working on it.
Tip number five is to triangulate your estimates.
This term comes from old sailing ships.
A ship's navigator could figure out the ship location by looking at two objects at different points on the horizon and drawing a line from each on a map.
The intersection of those two lines would be the ships location.
We triangulate estimates by comparing an item being estimated to at least two other estimates, ideally one that's larger and one the smaller.
For example, if we're thinking of estimating something as five, you want to find perhaps a two and an eight to compare against.
Ask the team if the proposed five seems about twice as big as the two, and a little smaller than the eight.
If so, You've got confirmation that five is a good value for that item.
Often, though, team members will want to change the proposed value based on the triangulation.
If so, great.
Triangulating has helped improve that estimate.
Tip six is to avoid anchoring.
Anchoring refers to providing information to estimators that may unduly influence the estimates they're about to make.
To understand anchored, imagine you're in a store and you see a shirt that was previously $40, now on sale for $20. The mention of $ 40 anchors you into
thinking the shirt is worth that much.
Logically, who cares what price a sure used to sell for?
Your purchase decision should be based solely on the current price, but that old price gets in our head and influences us.
One of the advantages of estimation approaches like Planning Poker is that each person provides a first estimate free from anchoring by others.
But anchoring can occur in subtle ways.
A product owner may start an estimating meeting by saying something innocent sounding like, this meeting today should go fast.
I only have five items that need estimates, and they're all pretty small.
Saying the items are pretty small gets in estimators' heads.
And it's been shown that phrases like that can unduly influence estimates.
So to get the best estimates possible, coach people not to say things like during estimating meetings.
Tip number seven is to avoid settling disputes by choosing the middle value.
A human bias known as the central tendency of judgment shows that we tend to favor estimates perceived as being in the center of a scale.
If, for example, a team estimates with a Fibonacci sequence, one, two, three, five, eight, and 13, it's likely that the Middle values,
3 and 5, will be overused.
The same effect can be present when team members are debating a value, someone will suggest settling in the middle as a compromise.
While the Middle Value may absolutely be the best estimate, don't settle there without sufficient thought.
Encourage the estimators with the high and the low values to make a case for their values before agreeing on the middle estimate.
Estimating well is challenging, but don't throw up your hands.
There are steps you can take to become better at estimating.
I've shared seven such tips in this video.
What other things have you done to improve your team's estimates?
Please share your thoughts in the comments because I'd love to read them.
And if you're interested in understanding or helping your team understand StoryPoints, check out our Estimating with Storypoints video course.
The link is in the description.
If this video has been useful, click the like button.
And, if your new to the channel, subscribe so you don't miss out on future tips.
Thank you for watching and I'll see you next time.

7 Mistakes Every Scrum Master Makes, and What to Do About Them

Transcript

Is your scrum team not doing as well as you know it can?
From letting work roll forward from sprint to sprint, to taking the scrumb guide as gospel, many of the thousands of scrummasters I've worked with make
the same mistakes.
In this video, I'm going to share seven mistakes you'll definitely make as a scrhum master and what you can do about them.
Hi, i'm Mike Cohn, and I am the author of three bestselling books on Agile and Scrum.
I help teams succeed with Agil.
Let's dive right in with the first of seven mistakes scrummasters commonly make, and that is sharing your opinion too readily.
As a scrummaster, you want your team to own the problems and their solutions.
When you add your own opinion to readily, sometimes you shut down that conversation.
I definitely suffer from this problem.
Here are two easy things you can do that will help.
First, on your way into a meeting, tell yourself you will not share your opinion until one, perhaps two people have shared theirs.
No matter how good you think your idea is, commit to keeping your pie hole closed until some specific number of others have spoken first.
Second, when you ask a question, something like, how can we solve this problem?
Give your team time to think before you jump in with a solution.
All too often, I see Scrum Masters ask the team a hard question and team members do what they should.
They think about it.
But while they're thinking and before they can respond, the Scrum Master says, OK, maybe we should do this, or I guess we'll come back to that issue next meeting.
Silence can be uncomfortable.
When you ask a question, it can feel like everyone is staring at you waiting for an answer.
They may be staring at you, but they're thinking, just like you asked them to do.
Try counting silently to 10 before you say anything.
After 10 seconds, consider asking people to share what they are thinking or ask a follow-up question that may get them closer to a solution.
A second common scrum master mistake is telling the team what to do more than selling them on ideas.
Over time, good scrummasters change how they interact with their teams.
With a team that is new to Scrum, you may very well need to tell them to certain things.
You'll tell their sprint cannot be longer than a month.
No, they can't skip daily scrums or sprint retrospectives.
A team isn't very agile when you're having to tell them what to do.
But until they've gained some experience with Scrum, they may well rebel against things whose value they haven't yet learned.
With experience, teams become more independent, so that instead of telling them, you can sell them on ideas.
You can, for example, suggest they automate more tests or even begin automating at all.
You can try to sell them on the benefits of shortening their sprints.
Teams are truly becoming agile when you can switch from telling to selling.
And as a team progresses, you step back further.
Instead of selling them what you think are good ideas, You encourage and facilitate their discussions and pursuit of improvements they come up with.
A third common mistake by new Scrum Masters is running the daily Sc rum.
The daily scrum is a simple meeting.
Team members show up, discuss their progress, plans, and problems.
It helps team members synchronize their work.
Because it happens every day and has such a single agenda that is consistent from day to day, you don't need to run it.
Oh, sure, I'll run the dailies from the first few times for a new team.
I will announce that we're starting the meeting, then I call on one team member, ask them to share their update with everyone,
and then call the next person.
Finally, announce we are done.
But I want out of doing that as quickly as possible.
It's boring for me and boring the team, but it's not needed.
You want to get people to the point at which they show up and whomever wants to go first just begins.
Maybe team members report in a defined order, maybe the current speaker names the next speaker, or any other process.
The key is to get out of running the meeting yourself as soon as you can.
When the scrum master runs the daily scrumm, the meaning begins to feel as though it's for the Scrum Master.
the Meeting exists for team.
when they run it, it feels that way.
Still on the topic of the daily scrum, that meeting is also the source of a fourth mistake you may make as a new scrumbaster,
skipping daily scrums or retrospectives.
Just as new scrum teams may question the usefulness of daily scrums and retrospectives, so may new Scrum Masters.
But here's why skipping daily Scums or retrospective is the fourth mistake of new Scrum Masters The various aspects of Scum have all evolved to support
one another.
It may seem harmless to perhaps do daily scrums only two or three days a week, and when a team has sufficient experience,
I'll actually be open to hearing their argument for this.
I rarely agree, but as a scrum master, i'm open.
But early on, do scrumb by the book.
That includes doing a retrospective at the end of each sprint and doing it daily, well, every day.
While I suggest doing Scrum by the book when you and the team aren't new to Sc rum, you don't want to do that forever.
And this is the fifth mistake many Scum Masters make.
Taking the Scram Guide is gospel.
It's just a PDF.
As you in the Team progress, your experience should let you identify changes you want make, and it's possible some of those may go against what's written
in The Scam Guide.
That's fine.
Be careful deviating from it, but consider it.
The next common mistake, number six on our list, is thinking that everything is a user story.
User stories are great, I love them.
I wrote a whole book about user stories, but not everything on your product backlog needs to be a users story, so if you've encouraged your team to always
write as a type of user I want so that Stop.
Sometimes a simple statement is enough.
For example, upgrade the Linux server works great as a product backlog item.
The last common mistake is one of the worst, and that's letting work roll forward from one sprint to the next.
It's unrealistic to insist a team finish everything they start every sprint.
If you do, most teams will respond by very conservatively planning their sprints so they can finish.
But when a teams consistently fails to finish, the end of a sprint becomes an arbitrary meaningless date.
It arrives and team members just move work forward into the next sprint, no big deal, they think.
You want your team to instead think of the end of a sprint as significant.
Each time they finish what they said they would, they gain a little more trust from the business stakeholders.
That trust translates into an improved relationship.
To solve the problem of letting work carry forward, you need to break the team's habit of overcommitting.
Have them commit to what seems ridiculously easy in the next sprint, and then add to it later if it becomes clear they'll finish.
In this way, they'll feel what it's like to over deliver rather than to continually under deliver on what they said.
What other mistakes have you made or seen Scrum Masters make?
Let me know in the comments.
I read every comment and I plan to make new videos about some of the problems you mentioned.
This video is part of a three-part series.
Be sure to check out the seven mistakes product owners and teams make by clicking the links.
Don't forget to subscribe so you don't miss out on future tips to help you succeed with Agile.
Thank you for watching, and I'll see you next time.

7 Scrum Team Mistakes — And How to Overcome Them

Transcript

Scrum is not particularly hard, but there are certain mistakes I see nearly every new Scum team make as they get used to a new agile way of working.
From letting work take more than one sprint to skipping retrospectives, these mistakes cause frustration and can severely impair a team,
keeping it from becoming as good as it can be.
Hi, I'm Mike Cohn, and I am the author of three best-selling books on Agile and Scrum.
I help teams succeed with Agil.
In this video, i'm going to share seven mistakes Scum teams will definitely make and what you can do about them.
The first mistake teams make is thinking their Scummaster is their manager.
Not true.
The confusion is natural because good Scrum Masters do perform some functions that good managers do as well, such as motivate and encourage people to do
their best work, look out for their mental health by avoiding excessive deadline pressure, remove impediments to progress,
improve a team's collaboration and teamwork, and more.
But Scrum Masters don't assign tasks or allocate people to projects.
Scum Masters doesn't pick due dates for tasks and projects, and most importantly, a Sc rum Master does not assume responsibility for a team's work.
That responsibility resides with the team members.
If you find your teammates acting as though the Sc Rum Master is their manager, discuss it immediately rather than waiting for retrospective.
Teams who view their Scrum Master as a manager are most prone to mistake number two, thinking the daily scrum is for the Scum Master.
I get it, the Daily Scrumb can easily be misinterpreted as just another status meeting, but it's not.
The Daily Scrumb is a synchronization meeting.
Team members talk daily, usually touching on progress since the last meeting plans for the new day, and any problems with which they would like help.
When thought of as synchronization meetings, it becomes clear that daily scrums exist for team members rather than the Scrum Master.
If you find your team directs their updates to the scrum master instead of to each other, stress the importance of the meeting in synchronizing work.
The third common mistake Scrum teams make is one that severely impairs the team's ability to be agile, expecting the product owner to tell them everything
before the sprint starts.
Most commonly, this shows up as the teams demanding the Product Owner provide full acceptance criteria for each product backlog item before that item can
be brought into a sprint.
This is a step back toward a waterfall or sequential approach because it essentially establishes a gate at the start of a Sprint.
No work is allowed through that gate until all open issues have been resolved.
To overcome this, team members need to become comfortable with uncertainty.
So do the product owner and business stakeholders.
When backlog items are brought into a sprint and open issues remain, there will be times when those items aren't finished in the sprint.
That's OK.
The alternative is slowing work down by trying to think of everything upfront.
The fourth common Scrum team mistake is wanting to work on big items that span sprints.
I can completely relate to this.
When I started doing Scum, some of my product backlog items were too big to fit into four-week sprint.
Over time, I learned ways to split that work into smaller pieces.
If I wanted to, could split those long-ago huge items into product-backlog items a team could complete in less than a day now.
When you're faced with something you consider too big to fit into a sprint, do three things.
First, try harder to find ways to split it up.
Second, if you don't succeed at splitting it, go ahead and let the item take two sprints.
Third, feel a little guilty about letting something take 2 sprint.
I include feel guilty as a reminder that you DON'T want this to happen too often.
I can promise you that finding ways to split work does get easier the more you do it.
Finding the patterns to spit the common types of work for your product is worth the effort.
Until you get good at splitting items, a large item might not easily fit into one sprint, as I just discussed.
But sometimes an item doesn't get finished in a sprint even though it was small enough that it should have been.
And this is common mistake number five, carrying items forward from sprint to sprint.
A real danger of this, is that is devalues the idea of the sprint A sprint should focus a team on achieving some goal every few weeks.
That means there should often be a little pressure as the deadline of the last day of sprint approaches.
I'm not talking about oppressive or stressful pressure.
Team members just naturally become more focused as end of a sprint approach.
It's similar to how I try very hard to catch up on email before a vacation.
When unfinished product backlog items are too readily moved into the next sprint, the team loses this sense of urgency.
If your team is making this mistake, a good way to correct it is to commit to far less work in the sprint.
Make sure the product owner is on board with this, and then add work to the Sprint when it becomes apparent the Team has capacity for it.
This allows a Team to feel the small win of adding work, rather than dropping it Thank you.
Perhaps the only thing worse than making these mistakes is not trying to correct them.
That is mistake number six, asking to skip retrospectives.
Sprint retrospective are the mechanism by which teams improve.
Setting time aside at the end of each sprint is extremely important, especially for a team new to Scrum.
If your team isn't doing a retrospect of every sprint, bring that up at your next retrospect, which better be at end the current sprint.
Some team members view the retrospectives as the only time they can bring up issues.
Absolutely not.
And the seventh mistake new Scrum teams make is not bringing up impediments early enough.
If something is slowing a team member down, you want to have that raised as soon as possible.
Most commonly, that means in the next daily scrum.
Some impediments, however, may be so important that they need to be raised immediately, perhaps via a messaging app or email.
Ensure everyone is comfortable raising issues as soon as they're discovered, hopefully before they become problems.
You want to avoid a shoot the messenger culture in which the person who raises the issue is blamed for it.
What other mistakes have you seen Scrum teams make?
Let me know in the comments, and I'll make some new videos on how to address some of those mistakes.
This video is part of a three-part series.
Be sure to check out the seven mistakes Scum Masters and product owners make by clicking the links.
Don't forget to subscribe so you don't miss out on future tips to help you succeed with Agile.
Thank you for watching, And I will see you next time.

Advanced Topics in Agile Planning

Transcript

Thank you for being here.
We're going to talk about planning projects.
Some of you were here an hour ago.
Were talking about estimating projects, made the point when we were estimatin' that we didn't do anything particularly useful.
we just put some points on things, we put story points of things.
In this session what we're gonna do is we gonna talk how to use those points or those size estimates and actually try to create a plan.
And we are gonna try and do it in a couple of fairly complex environments.
Now, I want to kind of put some context around this by saying that I think organizations plan at six different levels.
We'll see which levels the team gets involved in here.
But we have six levels of planning going on.
That's happening where you think it would be.
It's happened in the daily stand-up, right?
We come together.
Here's what I'm going to work on today.
Teams do sprint planning or iteration planning where they look ahead a couple of weeks.
We also do release planning.
I use the term release-planning to refer to looking ahead of a handful of months.
three, six, maybe nine or 12 months.
This is a weird word.
We're in this strange world right now, where releases are becoming smaller than sprints.
Years ago, if I was teaching a class like this, everybody in the room would have been in a mode like sprint, sprint sprint release,
sprint sprint sprin release.
I had a guy in a class I was teaching a couple weeks ago.
He releases seven times a day, on average, seven time a days.
So releases are becoming shorter than sprints.
I'm still a little bit stuck in the past here.
And I am using release planning to mean kind of medium or longer term planning, three, six, nine months, that type of a thing.
We also do product planning.
Product planning is kind about road mapping.
Road mapping, where are we going to be by the end of the year?
What type of release are going have in spring of 2013? Things like that.
Above there, we have portfolio planning.
What types of products are people looking to your company to provide?
And above there we company strategy.
Now, the Agile team is going to get involved down here at the bottom three levels.
The one we're going focus on today is gonna be that release planning level and trying to come up with some complicated situations for release planing,
this three, six, nine month type of plan, figuring out ways that we can effectively do this.
The way release and iteration planning glue together is this.
We have a release plan, which is looking ahead, in this case, I'm going to say seven sprints or seven iterations.
That might be as little as seven weeks.
Maybe it's seven months.
But we're looking at seven iteration.
As each of those iterations, or what some teams call sprint, rolls into view, the team does a different level of planning.
they do something called iteration planning.
Sprinter iteration planing, we break the product backlog items, those big index cards shown on the top of the slides, We break those down into individual tasks.
We estimate the tasks in hours.
Fairly straightforward process done by Agile and Scrum teams.
The next Sprint or iteration comes into view, and we do it again.
we'd break second set of product back log items into smaller tasks Now to talk about Agile planning, I kind of want to address what's a good plan.
Here's what I think is a Good Plan.
A Good plan is one in my mind that supports reliable decision making.
One where when we look back on the project, We say we made the right decisions.
We look back, and we say, we might have made a right decision.
That might be us saying, I'm glad we said June.
Here it is, the 6th of June, And we're releasing this thing.
And made it on schedule.
Or it might us looking back on a project and saying I am glad that we put three teams on this.
Look at the money piling up in the bank.
I I glad had three team instead of one do it.
Maybe a reliable decision is to look back on a project that we didn't do and say, I'm glad we did do that project.
I am glad last December we chose not to build this product.
Our competitors finally came out with theirs three months late.
Not getting good reviews.
We probably wouldn't have done it a whole lot better.
I'm glad we chose not to do that product.
The world's not ready for that project.
All right, we were ahead of the times.
Let's do not that.
So reliable decision making, when we look back on it, were happy we made the right decision.
Now, in order to be happy about a decision, We have to accurate.
So we might be sitting here today and say, we're going to release this in the third quarter.
Actually, that should say the fourth quarter, because that's not accurate.
We might look at this and we say we are going release it in fourth-quarter.
Later we narrow that down and it will be December.
Later we narrow it down and we say we're doing two week sprints.
It will not be the December 4th sprint, it will be December 18th.
So a plan needs to be accurate.
A plan does not need to precise.
The plan should only be as precise as we can support with the information we have at the time.
Now I'm using two words there we use all the time, accurate and precise.
Accurate and precision.
I think plans always need to be accurate.
It is almost criminal.
Yes, I am almost in favor of jail time for an inaccurate estimate.
But I do not want to push a team for unduly precise estimates.
Now, I'm using two words there, accurate and precise.
We use them all the time.
I always knew what they meant.
But I didn't have instant recall on accurate versus precise, and I thought about it for a long time, trying to figure out what do I mean.
And I asked people, people would give me these definitions that had to do with dart boards and clusters of darts that hit the board or didn' hit board
and things like this.
So I finally figured out how to think about accurate in precise Here's how I figured it out.
Here is my example.
This is just a true statement, don't worry about accurate or precise for a moment, just true a statement.
I have a daughter whose birthday is November 25th.
November, 25. Now suppose we're wrapping up 50 minutes from now and you say, hey Mike, you mentioned you have daughter, when's her birthday?
And I say it's in November.
Is that an accurate answer?
Yeah, it is accurate.
Her birthday's November the 25, I'd say its November it accurate, is it precise?
No, it's not very precise.
It's better than me saying, oh, thanks for asking.
Her birthday's in 2012. I mean, that's a horribly imprecise number.
That's helpful at all.
Now, me telling you her birthday is in November is not precise, but it is accurate, meaning it might be helpful.
Maybe you are my daughter's long-lost aunt or uncle.
I'm 1 fourth Norwegian, so maybe this is possible.
You are my aunt, my daughter's long lost aunt or uncle.
And so you put a birthday card in the mail to her in November.
She gets it in november and she thinks, ah.
My Norwegian aunt or uncle remembered me.
How great.
Trust me, this works.
I have two nephews born in May.
i have no idea when in may, just may.
All right?
I put $20 in the mail to them early May, they get it in, May they're both college students.
Beer money from your uncle shows up, you're happy.
They think I remember their birthday and I do, I remembered the month and that's good enough for an uncle.
Right?
i think.
Now, suppose instead we're wrapping up and you ask me when my daughter's birthday is.
Remember, it's November 25th.
And I say, thanks for asking.
It's January 3rd, 415 PM.
Is that accurate?
Is it precise?
Yeah, it's very precise.
It's precisely wrong.
So in order for an estimate to be helpful, and has to accurate, there's no weird scenario we can make up.
No long lost aunt or uncle scenario, we could make where me telling you January 3rd, 4.15 PM is helpful.
Not.
Wrong.
Can't be help.
Our plans, whatever we put together, have to the accurate.
I love this quote.
This is from John Maynard Keynes, famous British economist from the last century.
He said, it's better to be roughly right than precisely wrong.
He's also the British economist who said, government ending can end a recession.
So I don't know how much we should trust him.
But so a very famous British economists.
I love this quote.
Better to be roughly right than precisely wrong.
Sounded like a bumper sticker the first time I saw this.
This is actually a powerful statement.
Roughly right.
Hey, boss, I can't give you a precise plan, but I'll give one that's roughly, right?
Sounds like your boss is going to like that.
That actually might be helpful.
We have to accurate.
So that's our goal, put together accurate plans.
Now when we talk about Agile planning, we're going to use something called velocity.
Velocity is the amount of work that a team finishes or plans to finish within an iteration or sprint.
And I'm using those terms interchangeably here, iteration, or Sprint.
So if we run an Iteration, and at the end of that iteration we find we have finished three pieces of Work, And those pieces have Work were estimated at
four units, 10 units and one unit, We would add that up and say this team has a velocity of 15. The velocity of 15. Velocity,
to me, is always measured in the long-term units that we put on things.
This is going to be story points or ideal days.
So if you see those little cards up there, those are index cards.
Those represent our user stories or our product backlog items.
They're estimated in storypoints or idea days, we add that up, and we call that velocity.
There's a graph of a real team here.
The team's in Denver.
I've graphed them over the last nine sprints.
The main thing I want you to notice from this velocity graph, velocity bounces around.
Velocity is not stable from sprint to sprint.
It will change.
So this team here has an average of 33. But an interesting observation here, they've never had a 33, where it looks like they might have near the end there,
they had a 34 then a 32. They never actually had 33, but that's their average.
So velocity is useful over the long term.
I do not think it is appropriate for a team to say something like, our velocity's 33. We have one sprint left.
we will get 33 done next sprint.
No, no, what's useful is for them to have 10 sprints left, and an average of 33. We will average a 33, we'll probably get around 330 done in the next 10 sprints.
That's helpful, the long term.
Velocity is not useful in this short term, it's a long-term predictor.
Long-Term predictors.
Now we're going to use velocity in five different planning scenarios here.
Where to talk about it the basic simple case, a team where we have historical data.
It'll be kind of our base case.
Next we will talk how to do fixed date and then fixed scope plans.
There's a lot of people doing contract development.
How do I guarantee a particular scope?
We'll talk about how to predict a plan when we have no velocity data.
This may be your situation if you have a brand new team.
And then we'll talked about what to do with a team changing size.
If you have any questions along the way, just raise your hand and signal me.
We'll take their questions as we go.
Now what I'd like to do is to calculate our confidence interval around our historical averages.
I showed that velocity graph a moment ago and I said their average was 33. Well, that's too simplistic.
I don't want to use an average.
All right?
I want a look at a confidence interval.
Now, a confident interval is something like this.
As reading a report on climate change.
We used to call it global warming.
And now we got to called it climate changes.
So I was reading this report and climate changed.
It said that by the year 2100, the earth is going to warm 3.8 degrees.
Now think about that.
Think about.
We have trouble predicting three months into the future.
And here we've got scientists predicting down to the tenth of a point how much warmer we're going to be 90 years from now.
That's impressive.
It's very impressive Well, I read the article, and it got a little less impressive It said 3.8 is the average.
The actual confidence interval ranges from one and a half to seven degrees.
OK, that I buy.
Because it is pretty hard to predict that 90 years from now, we're going to be 3.8 degrees warmer.
That is really tough.
OK.
1. 8 to 7 degrees?
That I by.
You guys are hedging your bets.
Your scientists are hedge in your bet.
Now, imagine you were at the scientist convention where they ask these guys this.
If you're at this scientist's convention, and you want to do this survey, you wanna walk around and ask scientists, how much warmer is the Earth going be?
And you walk around, the first guy says 4.1 degrees.
Next guy, says 3.6. The next woman says, it's going to be 3,92 degrees, and you keep asking all these scientists.
Most of them are around that type of number.
You ask one guy and he says plus 43. Plus 43 degrees.
Yeah, yeah, plus 43. That's what my model shows.
Throw that guy's data out.
He's a nutcase.
Right?
He is an outlier.
All the other scientists are talking about 2 to 7 degrees, maybe an 8 degree here and there.
This guy has got plus-43 degrees?
Throw his data, out, nut case, outline data.
You keep asking people.
Ask another one.
Yes, the next one.
And he says, oh no, no.
No global warming.
Global cooling.
Negative 9 degrees of global cooling, our Martian overlords are going to land here and turn Earth into an ice factory for the rest of the universe.
In that case, throw the data away.
So what we do here to calculate a confidence interval, we look at the date that we have.
And we throw away the outwine observations.
The more people you ask, the more outwind observations you have, then more you get to throwaway.
If you asked a couple hundred scientists, you're going to through away more data than if you'd ask a dozen.
So here, real data, my confidence interval around this range of data is between 34 and 41. I think I've got nine observations up there.
When I have nine observation, I get to throw a one off the top, and I throw away one of the bottom.
So that's why I ignored those top and bottom observations.
Our confidence interval, we are 90% certain that true future velocity falls in the range 34 to 41. I know this from looking it up in this table.
I'm not going to go through the derivation of this.
This is based on binomial distributions and is a technique called a confidence interval around a median.
All right, this table tells us how many observations we can throw away.
If you've got 0 to 7, you don't get to throw anything.
Once you get eight, that's where things start to get interesting.
With eight or more observations, we throw away one.
Well, the 11 or 12 observations we through away two.
So the more observation, more outliers we threw away.
Now, you can memorize this table if you want, or we have this on our website.
We have a confidence calculator on a website, this presentation's on the website too, by the way, mountaingoatsoftware.com,
all the presentations up there.
Here's what we're going to do with these numbers.
Think about that 34 to 41 for a second.
Imagine we have five sprints left.
Somebody wants to know, where will you be five Sprints from now?
I multiply 5 times 34, my low number, and I count down 5 x 34 story points or ideal days.
And I tell my boss, we are at least going get to here.
We're at lease going go get 170. I can countdown 5x 41. Countdown 205 points.
Remember, five sprints left.
And I tell somebody, we might even get all the way down to here.
What we've done here is we created a confidence interval, and we use that to point arrows into our product backlog.
That is a prioritized list of features.
I can now go to somebody and say we're going to get at least here, might get to hear.
Now what's interesting about this is not only did I point those arrows in the backlog, I could put percentages on those areas.
We are 90% likely to be in that middle range.
5% chance things are worse than the top arrow.
5%, chance, things, are better than bottom arrow, but 90% likely to end there in the middle.
This is powerful.
I can now go to my boss and say, I am 90%, sure, we finished between this and that amount.
We're going to have to deal with the issue.
And I know we can't go all bosses.
You go some bosses and you say I'm 90 percent certain we finish between 170 and 205. A lot of our bosses will say great,
Still, behind the scenes, at the quiet of your desk, I want you to do the right math to know what the range is, to what know the answer is.
You got a boss like that, OK, we're going to have to change it into a point estimate.
He can't go to the boss with the truth.
Your boss can handle the true, the 170 to 205. We're gonna have change into point estimates.
But I still want us to be the write math.
So this is our simple case.
This is a straightforward one where we have a team with some data.
Overview, you're assuming that the estimates are accurate as you go down the backlog?
Yes.
So the question is, am I assuming the estimates are accurate as I go down the backlog?
Yes, I am assuming that the estimate are accurately as we go the back log.
To have an accurate plan, which is our goal, it takes effort.
It's going to take effort, and I advise putting the effort in only to the point that it will change decisions we make.
If knowing exactly where we're going be here is worth it, you should put in that effort.
If knowing where we're going to be here is not worth the effort, don't put it in.
I'll give you an example.
Inside of Mountain Goat, we are doing a contract development project for somebody right now.
We've guaranteed delivery of certain amount of features by a certain date.
Were doing all this on there.
I love this stuff.
We didn't do any of this on that, right?
I'm doing a little bit of the programming, not much of it.
I am enough of a programmer to know about how long the things are going to take.
So if you have an environment where things like heads will roll if give a wrong estimate, a long prediction, you're going to have to invest more into getting
those backlog items estimated.
You're gonna have do it fairly accurately.
This is what I was mentioning earlier.
We have a calculator on our website you can use.
It's all free.
we don't sell this type of stuff.
Just go on there, and you type in your velocities.
They'll tell you what your range is.
This slide also goes into the derivation of the math that we want to do on a middle of an afternoon.
Let's talk about fixed date plans.
Again, I know some of us will be in this kind of contract environment where we have to promise a set of functionality by a given date.
So here's what we're going to do with a fixed-date plan.
With a fix date plan, there are three steps.
The first step is count how many iterations or sprints you have.
Look at a calendar.
Just circle every second week or third week, fourth week.
Whatever your sprint length is.
Count how iterations you got.
This part's easy.
Second step, estimate your velocity as a range.
We just talked about how to do that.
Throw away the outline observations.
What's left is your lossy range, then what you do is you take that number of iterations times your last year range The low number of iterations times the
velocity range.
Or the low velocity times number sprints, the high velocity time the number sprint.
That'll give us our plans.
Very similar to what we just did.
Let's see this as a picture.
So we're gonna look at a calendar.
We're going to count our iterations.
In this case we are doing two week iterations, so I just look the calendar, I count it, and I say we got room for six iterations here.
we look in our historical velocity data here, Here's from a team I worked with that let me use their data.
Here are their observations.
They've got eight sprints.
With eight Sprints, we get into that part where it's interesting.
I can throw away the best and the worst.
So they're the Best and The Worst.
And we look at that.
And from there, we can decide what our velocity range is.
We've got a 25 to a 30 in this case.
That's our philosophy range.
Now, in determining what we commit to, We got our stacked up product backlog.
I multiply the 6 times the 25. There's my will have section.
Multiply the six times 30. that separates my backlog into a might have and a won't have.
Now I said earlier, sometimes we have a boss who can't handle a range.
I can go to my boss and say, you'll get 150 to 200. Or it is 150 180 here.
Some bosses can handle that.
So I'm going to have to turn this into a point estimate.
Here's how we can think about this.
If you promise your boss, client, or customer this top amount, Your boss, client, or customer, if it's a client they will not sign the contract.
They're going to say, that's all I get?
In six sprints that all you're gonna give me?
Your bosses gonna be frustrated too.
Your Boss will be very disappointed.
Six sprint, I'll get that.
That's it?
That is pitiful.
I may have to have another team do this.
But if my boss or client goes for it, i'm set.
This is not going be hard.
So if I can talk them into this, then I'm good.
On the other hand, maybe I want to promise down to here.
If I promise down here at the bottom, my client signs on the dotted line today.
My boss loves me.
my boss gives me a big kiss on my lips.
Maybe a good reason not to promise this amount.
If I promise this amount, though, I'd better be careful.
This is the fastest we can possibly go.
If my client says, go for it, sign the contract.
I've got to be carefully.
this is optimistic.
So think about what we're doing here.
We're taking on different types of risk, right?
The top one, I'm taking a lot of short-term risk.
If I promise that top on, people are not happy with me today.
That's all I get.
Mike, that's it.
But they're going to be happy six sprints from now because I might over deliver.
I promised the bottom one.
Oh, fantastic.
But they're going to be a little disappointed six months from now, because I may not deliver all that.
Six sprints from may I not delivery all of that?
So what we're trying to do here is balance risk.
And we are looking at risk now.
All of contract development, this is what Mountain Goats done for years when it started doing contract, development.
My company, Mountain goat software, is contract is all about balancing risk, and in this case, the type of risk we trying balance is I'm going call expectation
risk and delivery risk Right?
Expectation risk.
Expectations risk is the risk of not meeting someone's expectations, right?
They're disappointed in me today.
Delivery risk, is a longer term risk not delivering everything I promised.
So let's look at these two possible points that we had up there.
If I promise just the will haves, that'd be that top arrow, not the bottom arrow.
The top arrows on what we just looked at.
I'm taking a lot of expectation risk.
We're high up on the vertical.
People are not happy.
I am not meeting their expectations today.
But delivery risk, not so much.
Right?
I Am going to be able to deliver this.
This will not be hard.
If instead I promise the bottom arrow, If I promise all the might-haves, I'm taking on a lot of delivery risk.
I may not deliver all that.
But very little expectation risk, people are happy with me today.
And meeting their expectations when I walk into that meeting and say, here's what we'll deliver you.
Yeah?
If you constantly give a low estimate and deliver more, won't that give in the long term, your boss will always expect you to deliver them more than you promised.
So when you deliver just what you promise, he is disappointed.
I think you're right.
If we always under-promise and over-deliver, the boss comes to expect us to over deliver.
And so we're always having to play that mental adjustment game.
So I'm not necessarily proposing here that you go to either one.
I am looking at the two extremes, and my recommendation is going to be that in most cases, you have to go somewhere in between there.
What I'd really like to do is go to my boss client or customer and say, I will deliver you between here and here.
I've got six sprints.
That's fixed.
In six prints, i'll deliver between 150 and 180 points.
that's the relationship I would like have with my Boss client customer.
But I understand that bosses, clients, and customers don't necessarily trust us.
If we tell them the 150 to 180, they think we're only going to give them 150. So they get mad and they push for the 180 hoping to get 170. So my recommendation
is we have to understand that relationship.
We have balance the amount of risk.
I do not want to always under-promise and over-deliver, just like I don't want over promise and then not make it either.
So to me it's a matter of looking at this and balancing the type of risks that I'm taking on based on where my boss, clients,
or customers' expectations are at that time.
So the question you're asking, basically what's going to happen there is the boss's expectations are going keep going higher.
So it'll be harder to over-deliver.
Let's look at the opposite one here, which is a fixed scope plan.
Same thing, same process.
We start out, we add up the product backlog items.
We estimate our velocity as a range, and then we use the sum of the product backlog divided by the velocity range.
So last time we multiplied, this time, we're going to divide.
OK?
So let's see an example here.
We take our product back log.
we add it up.
We add up all those product backgrounds, those user stories, we get 120 story points.
We look at our past velocity.
we estimate that as a range.
In this case, 15 to 20. And then we are going to divide.
All right?
We take the 120 store points, divide it by 20, We get it could be done in six iterations or sprints.
We divide it by 15, we get that it can be eight iterations, or sprint.
And we say that this project could take from six to eight.
So this is the same approach we were just looking at.
In this case, though, were dealing with a fixed scope.
I have 120 points.
They have to deliver all of this.
When can I get?
Well, you're going to get in 6 to 8 sprint.
Now, same thing, I'd love to go to my boss and say it'll be 6 to 8, but not all bosses can handle a range.
So let's see how we can turn this into a point estimate that we go back to our boss with.
If we promise just the short estimate, boss, you'll get it in six sprints.
Your boss is going to love you today.
Your client is gonna sign the contract right then.
They're not even gonna get competitive bids, they're happy.
But be careful, this is the fastest you can possibly do it, you may not make it.
Delivery risk from before.
If we promise the bottom one, the eight sprints, Probably won't win the contract.
Your boss will probably not be happy today.
But if they are happy enough to let you do the project, they'll be Happy later.
Because in eight sprints, you'll Be done.
You'll deliver everything.
Maybe they only take seven sprint.s You will be able to meet this one.
So again, what we're looking at here is a balance between the short-term expectation risk, how does somebody feel today when I tell them that estimate,
and the longer- term delivery risk.
Will I be able to deliver what I promised?
And contract development is about balancing those two things out, expectation and delivery risks.
The thing I want to point out with both of these examples, we'll move on to another one, is the use of a range.
Notice in both of these cases, we used a Range.
In the example of fixed date project, I have to have this six sprints from now.
We used the Scope Range, OK, six prints from no problem.
Well, lock that in.
Will guarantee you six Sprints.
But to make that happen, We're going to promise between this and this much functionality.
In the other case, in a fixed scope project, I need this 120 points, we used a date range.
OK, well, lock down the scope for you.
That's fine.
But we use a data range to do it.
We will give you this much, between this and this number of sprints to finish that scope.
So in both cases, will use our range, little bit coming back to the idea here of accurate versus precise.
One of the best ways to be accurate is be a little less precise, I'll give you all of that, but it'll take six to eight sprints.
So we back up on some of the precision, we get more accuracy.
And again, the plan has to be accurate to helpful.
I want to do a little exercise here.
Need to pass out a handout here, so I get that started here in a second.
Here's the exercise I'd like you guys to know.
Let me ask you to just kind of form up into some little groups around where you're sitting.
Our company is getting ready for a big trade show.
We're getting right for NDC, let's say.
We make tools for managing ADSLE projects.
We finished version one of the project, and now we're getting ready for version two of their project.
The boss wants to know what features we can guarantee will be in there for iterations from now.
What can we guarantee we'll be there in four iterations?
So which features can be guarantee and which feature do we consider likely?
All right, here is the data I want to share with you.
Here is your past historical velocity.
So these are your velocities.
We've got 10 sprints there.
You may not remember it, but I'll point it out from the earlier slide.
If you have 10 Sprints, you get to throw away one off the top, one of the bottom in determining your range.
That was the early point we had.
I wanted you to think about what that's going to be.
And then here your product backlog.
This is prioritized.
So basically what I'm asking here is, based on the previous slide, how far into this backlog are you going to penetrate?
So while you're talking about that, I'll back up to this one to let you get started with for doing some of the math on there.
While you do that I will pass around the exercise on a handout here so you can talk about this.
Okay, let's talk about this for a few minutes.
We'll go into our two other situations here.
So the two questions here were how much can we guarantee?
I know nothing's ever a guarantee, but you know what I mean.
How much we can guarantee to the boss in four sprints?
And how many do we think is likely?
How many you think we could guarantee.
What would you give the bosses essentially a guaranteed here?
What do you thing?
First three items, right?
So let's see if we do this.
So if you did this, we'd throw away two sprints.
We'd threw away the best and the worst.
I can't see them because I got these speakers here.
What does that give us as our velocity range?
Somebody did the?
14 to 25, okay?
So if we got 14-25, we can look at the 14, multiply that by four sprints, all right, it's gonna give us 56 points, right?
I'd look this then and I count down 56 or so.
I think I made this a little bit easy, the first three is 53, well we could certainly do that, I mean 56, that's really only our 5% chance of being worse
than that.
And look at it this way, too.
You've got a 5% chance of being worse than that.
That's the math.
The math says 5%, chance being worst.
But think about it.
If you've a team that's hitting their minimum, sprint after sprint, they're probably going to kick it up a notch somehow.
They're going find a way to get a little bit better than minimum.
So probably not even a five percent chance.
I might look that and say, OK, we can get those first three.
Maybe there's another small one I can.
Or maybe we could split the fourth item into two parts.
We'll promise the boss the first 3 plus part of the 4th.
What about the realistic?
What was the question exactly I had here?
How much do we think is likely?
Now, to get the likely answer, I wouldn't take my high velocity and multiply that by 4, because that's not necessarily likely.
That's our maximum.
So the likelihood number on here is perhaps in the middle.
The likelihood in here where I have to use judgment.
We're talking a lot about math.
Here's my biggest thing with all this math.
Don't ever become a slave to the math, OK?
The math here is a tool, right?
Our brains are smarter than the map.
Use the Math to help you make decisions.
So I look at this.
I say, here's minimum.
Here is my maximum.
And I've got to give the boss the most likely number.
Oh, I think it's here.
The team's doing pretty well lately.
No big holidays come in.
Let's go down a tiny bit more.
All right, my team's really struggling.
That new database guy is just not getting along with people.
Let me back it up a little bit.
So use your judgment.
Never become a slave to the math.
OK?
Let's talk about two other.
two other planning scenarios here.
The first one is a team that has no velocity data.
And this is real common situation.
You're brand new, right?
Or you've been doing Agile for a long time, you just don't have an existing team, got a brand-new team.
So how can we predict when we don�t have a Let's assume we have the team.
They've never worked together, but we had them.
So get the teams together and have them plan a sprint.
Have them go through the process of planning a spring.
The way I recommend teams plan the sprint is this.
they look at their product backlog, they take the top item off the product back log, They break it into tasks and hours.
What do we have to do?
We've got to code this, design this.
Oh yeah, we've gotta automate this." They come up with a list of tasks.
They estimate those tasks, and then they say, can we do this user story, this backlog item?
Yes we can.
We can commit to this and they grab a second product backlog.
Then they break it into tasks and hours and ask themselves, Can we commit this one?
Yeah, We Can Do This One.
And they keep going until they're full.
Soon as they're full, they stop.
As soon as their full we can look at the product backlog items they selected and say, how many points does that add up to?
This process is called commitment-driven iteration planning or commitment driven sprint planning.
During commitment during planning, we don't use story points.
We don' use velocity.
But at end of the meeting, because we have storypoints on our user stories or product back items, We can add them up.
Let me show you an example.
This is a real team.
I like this team because they're fairly interchangeable.
Everybody on here could do everything, which makes the example easy.
You don't have to worry about who was the tester and who is the programmer.
These three are fairly interchangable, so we started out, I asked them, do your personal math.
And Sergey said, oh, I'm available about four to six hours a day.
10-day sprint, he's got 40 to 60 hours.
Yuri said the same thing.
Karina said I am available at about the rate, but I only have time on this project.
So she was 20 to 30 hours We added up, we've got 110 to 150 hours available to this team in iteration.
We start to plan a sprint.
we grab the first product backlog item, We break it into tasks and hours, All right, shown on the right there.
We add that up, it's 31 hours.
Can we ask the team if they can commit?
Well, of course we can.
So we grab a second one.
we break it into task and hours, ask a team of they commit to it.
Yeah, yeah, course, we could.
Only up to 79 hours now, 77 hours So we grab a third one, we break it into tasks and hours.
We ask the team if they can commit to this.
They're now up to 125 hours, right in the middle there of that 100 to 150 hours and they think about it.
Yeah, yeah, you know we're good.
So if they can commit to it, they grab one more backlog item.
They grab on more product backlog items, 22 hours.
Now we're up to 147. The math works.
It fits in the 100 to 150 range.
But they said, oh, no, that's filling the sprint too full.
We can't commit those four stories.
Notice they didn't talk about story points, they don't know velocity.
They have storypoints though.
So at the end of that meeting we can look at three stories we've committed to and we take a guess, a forecast of their velocity Everybody see what it would be?
We'd add up those first three user stories, those back log items, and say we've got a three point story, a five point, another five story.
Our estimate of velocity is 13. So this team, I call this backing into velocity.
This team would back into a prediction of a 13 point velocity, Now remember something I said earlier in this session, I've said the importance of a range,
right?
Use a arrange.
So what I don't wanna do is take that 13 and trust it, because I do not trust.
I wanna turn it into a rage.
Here's what you can do.
If you don' have any historical data, just take a guess.
Take that thirteen and take guess, remember don''t become a slave to the math.
Let's say the team did that planning meeting in 45 minutes.
If you've done any agile, you know that's a very quick planning meeting.
That team did not take that very seriously.
And they came up with a velocity of 13. I might look at that and go, that their high number.
Look at their velocity, I'm going to say maybe 9 to 13, or 9 or 12. They did that so quick.
If they had taken longer, they would have seen more tasks, committed to less, 9-12.
All right, so don't be a slave to the math.
At 13, you use it to inform your decision, but it doesn't have to be your decisions.
So if you've got no historical data, use your intuition.
If you have some historical from other teams, This is a new team in your company, but you've got plenty of other agile teams.
What you can do is you're going to look at those other Agile teams and use their ranges.
Let's say all of your other teams in the company average a plus or minus 20% on their velocity.
Velocity is in a to a minus or plus 20 percent range.
It'd be a total range of 40%. I could look at that and say, well, for this team, I bet the range is going to be the same thing.
No reason to assume this is team is gonna have any different of a relative range than my other agile teams.
So I might look this and go, wow, this has a plus or minus range around here.
And I think they did this really well.
Let me take that 13 and make it 20% bigger, 20 percent lower.
So we can look at our other teams and use what's called their relative standard deviation, just standard deviations as a percentage.
Let me show you an example.
Here's one team.
This is real data.
All this stuff's been real.
So we get this team here, and I could look at this.
And from that, I can calculate their average and their standard deviation.
Their average, their means, 22. There standard is 3.8. Just use Excel to do that.
Relative standard deviations is standard aviation turned into a percentage.
In this teams, 3,8 divided by 22, 17%. That's one team.
Let's look all the other teams inside of our company.
So let's see, did I do it for all the other teams?
No, I'm just going to do for this one team here.
What we want to is we're going take that and we'll average across a bunch of other team in our company.
When I've done this, on a couple hundred teams, my data is about 19%. I find that the velocity bounces around in about a plus or minus 19% range.
So that's the number I use.
I'd want you to find it out for your own company, but in general, what I found industry-wide is 19%, so let say we've got a team who has estimated their
velocity to be 11. I'm going to take that, I am going increase it by 19%, the average number I found.
I will lower it 19%. That's going take our 11 and turn it into a range of 9 to 13. And I still trying to give the boss a prediction,
when are we going be done.
So I take the total number of story points on our project, or I multiply this by the number sprints we are doing.
And I'll separate my backlog just like before into a will have, might have and won't have section.
So this is an example of being able to predict velocity when we have a brand new team.
Now, I started out with a very simplifying assumption.
I said, you have the team, let's pretend you don't even have that team?
I had to do this in situations where we were doing contract development, we didn't have team together, and if somebody signed a contract we'd put a team
but we don t have it yet.
So what we would do is we get together Two programmers, a really senior programmer, senior tester, mid-level tester a good DBA,
and a UI designer.
Whatever we thought was a representative team for that project.
And I would ask that representative set of people pretend to be the team.
Plan this sprint.
All right?
And then I had a prediction of velocity for a representative team.
And I looked at that and said, well, if we're going to hire a better team, or we put slightly better people on here, I can raise the velocity a little bit.
If I think we have a worse of a team I could lower it a bit, right.
So I'm going use the math to inform my decision.
It's just going help me make a decision, it's not going give me the exact answer.
OK?
So you can actually use other people in the company to approximate the team if you don't even have the time yet.
A couple esoteric situations here, right?
A lot of us are gonna be in this situation, but some of you might.
Let's look at one more situation.
This is a situation where velocity, where team size is changing.
You've got a six person team, maybe you're gonna go to eight people, and you try to predict what's gonna happen to my team when we go eight to people.
So what can we do to make predictions in that situation?
Here's what you can do.
Build up a spreadsheet that looks like this.
What this spreadsheet is showing me is the team's initial size and then the size it changed to.
So the top row there is a team that went from six to seven people.
And then what I track is what happens to their velocity in the first, second, and third sprints.
compared to the average of their preceding five.
I found that averaging out the preceded five sprints was good enough.
And I would take what happened in the next one sprint.
So let's just take that first cell there where it says negative 20%. It says six, seven, and then negative twenty.
This is a team that went from six people to seven people.
Velocity went down 20 percent.
Why would velocity go down when the team size went up?
Had to teach the new guy?
Yeah, overhead of getting that new person up to speed.
Got to show them where the source code is, how to check stuff in, got to give them a walk through of where their main modules are,
things like that.
So in the first sprint for that team, velocity was down.
Second sprint, velocities still down, negligible 4%. In the third sprint though, we found velocity is up 12%. I tracked this longer.
I track four, five, six sprints.
What I found is two things.
One, things stabilized after three sprint.
So it wasn't worth it tracking longer, and two, teams changed again.
It took six to seven people, then I took them to eight, or I take them back to six.
Right?
So the team didn't stay the same size.
so I only track this these days up to three Sprints I find that good enough.
Tracking longer not worth the cost.
The second row is showing a different team that went from six to seven people.
Now that column that says sprint or iteration plus one, that's not saying January of 2010 or anything like that.
Those two data points could have been a year apart, could've been five years apart.
Right?
It's just some team, the one from 6 to 7 people in its first three sprints.
Another team the went form 6-7 people, year away.
What happened to its velocity?
Another team went from seven to five, another team from eight to six, seven, eight.
If you have a lot of teams, when I was doing this, the first time I did this we had about 25 teams.
Teams were constantly changing size.
We'd move a person here to there, things like that.
Somebody would join the company.
So this type of spreadsheet can build up very quickly if you've got a medium to large department or organization.
This will build very up quickly.
You track this across your entire organization Now suppose somebody comes to you and says, Ugh, that's not enough.
I need more than that by the end of the year.
How much more could you give me if I gave you one more person?
Right, you've got a six person team today, how much could more you get if you had a seven person on the team?
Here's how we'd look at that.
We would take out all the rows that are six to seven on this spreadsheet.
All right, I'm going to look at those six to seven rows, and I am going average the impact of their velocity.
In that first sprint, it's negative 20 and 0. One team stayed the same, right?
So I would say they had an average impact, of negative 10%. That's going be this bottom table.
All Right, in the second sprint we have an Average Impact of Negative 5. By the third sprint were a plus 13. I had to do this in two very common situations.
1, i had a boss who came me and said, I believe you, I can't get all of this next year.
How many more people would it take for me to get everything I want next here?
And I went back and I added a certain number of people to our company.
And so, okay, if we had 18 more, we could do everything.
I had another boss, different company, came to me and said, 10% layoff.
And I went through and I had a list of employees, and just kind of X'd out every tenth employee, right?
I wasn't really firing them.
I was just, okay, that team loses a person, I took off every 10th person.
Adjusted their velocities, did the math on it, went back to my boss and said if we lost 10%, we would have lost a project last year about the size of,
in that case it was a product called utilization management.
We would've lost the utilization project, could you have lived without that project?
Wow, that's a little big.
Why don't we do a 5% layoff?
I didn't go redo the math, and he didn' need me to do that.
But we decided to go about half of that size lay off in that company, where we let 5 percent of the people go.
So we save 5 % of jobs by actually having some data on this type of thing.
One of the rules I had when I was doing this as a VP in these companies that I'm talking about, I have a rule that no team could spend more than one minute
per sprint collecting metrics.
It may look like we're collecting a fair amount of stuff here, but we had it one-minute per sprint.
We had an email address.
Every scrum master would send an e-mail to that address once per Sprint, the first line listed the number of team members,
second line list of velocity, things like that.
Real simple e mail.
Demon running watching the email address parsing stuff pointing it into a mysql database so our Scrum Masters will spend one minute per sprint Sending
data that was all we did all right, but it gave us the power to do a lot of these type of things OK.
Taking you right up to the end.
We've got a couple minutes left, but I know you're probably anxious to get to next section.
I'm not going anywhere, so I can hang around and take some one-on-one questions for anybody that has them.
So if you've gotten any questions on this stuff, hang round.
Be happy to talk about it further.
And back every couple months.
If you have been here, you heard me say this.
Here's my contact information.
Love talking about this type of stuff.
Feel free to email me anytime.
Thank you, guys.

Agile and the Seven Deadly Sins of Project Managing

Transcript

We asked me to do this keynote a couple months ago, and I asked him what he wanted me talk about.
And he said he want me introduce Agile, to kind of explain what Agiles all about, but not to give a typical, you know, here's Agil,
heres a this, hers a that.
Introduce it in a little bit more informative way.
Because we are certainly going to have people who already know what agile is about and so I want to introduce the concepts behind agile.
Concepts under why it, the advantages to it.
So there's going be A different way of doing it though, I want to do it by describing what I would consider the sins of project management,
ways that we can go wrong on project manager.
A lot of different Agile processes though.
There's the ones listed up here, the one's that I consider Agil in the top box here.
We've got extreme programming and Scrum, very similar to each other, a few differences.
We've got Crystal, a family of processes, another one called DSDM, LEAN, kind of an approach, not necessarily a process on its own.
My favorite, Unbranded Agile, which is just kind taking the best of these things, combining them in a way that makes sense for you,
getting rid of all the brands, my preference.
And then we've got some that I would consider semi agile processes don't get into a lot of debate about why I wouldn't consider them agile the biggest
reason for me the one reason that i would concern them some I agile is that they don' t rely on self organizing teams self organization is a fundamental
principle to agile and these processes actually.
Some of them great processes, and I've seen all of the work.
I actually seem them work more often than I have seen them fail, the bottom ones.
So I do like those processes but I wouldn't go as far as to say they're agile.
Just wanted to put that up there.
In terms of kind of getting started before we get to what the sins are of project management and how those help us, I want to just kind zoom in on Scrum
for a minute.
Describe what Scrum is just for two slides, so we have a starting point.
Then I'm going to jump into the sins of project management and how Agile helps address and resolve those.
Through the way, I am going pull in some case study data, show some examples of teams that improved in terms of going faster,
teams have got much higher quality as a result of being Agil.
So Sc rum.
One of the things I like about Scrum, no engineering practice is prescribed.
I find it difficult to introduce an agile process to an organization and say, hey, we want you to be agile.
We trust you solve the problem.
You're smart.
Go figure out how to solve this business problem, by the way, you have to do it exactly this way and then prescribe a bunch of specific engineering practices
or other things.
So I want the process as lightweight as possible, just a framework.
Scrum fits that bill, so one of the nice things about it, no specific engineering practices.
Scum teams use what they call sprints.
A sprint is the same as what most of us would call an iteration.
I met one client about two years ago, I was in a meeting with them, And they're talking about, oh, in a sprint, we do this and that.
And 10 minutes later, somebody would say, In an iteration, We do such and such.
This went on, it's meeting for about an hour.
Finally somebody said, well, when we're in sprint we this, but when in iteration we that?
I got very confused, I kind of perked up from the meeting, and it was like most meetings I'm starting to doze off.
I said wait, wait wait.
Sprints and iterations are the same thing.
What are you talking?
They said oh no no, they are completely different here.
What's the difference?
He said, well, in a sprint, we're working overtime.
In an iteration, were doing the sustainable pace thing, trying to work at a long-term sustainable place.
I was like, you know, interesting, I mean I could totally buy that as a distinction.
And I said well how long have you been sprinting?
How many of them have done?
And they said we were in eight months of sprint.
I'll use both terms today, sprint and iteration, same thing.
Fundamental to Scrum, self-organizing cross-functional teams.
Scum gets its name from the play in rugby, European sport, ball is put back in play, the way it's put in back play comes from having some of the bigger
players on the team with their arms around each other, pushing against the other team.
That's meant to represent the cross functional team If you look at the, there's five books out now on Scrum, three in English,
two in German.
They're all small.
I think every one of them is under 200 pages.
One of the reasons for this is that there is not a lot of rules to Scum.
There's a lotta, in any of Agile really, There is a lots of kind of behaviors and techniques and principles and values, not lot a rules.
The few rules that we have tend to be what we call generative rules, rules we put in place to generate the right behavior.
For example, Scrum will have a daily meeting.
We ask teams to get together and talk once a day and we recommend three questions that they do.
I don't really care if they got together and asked those three questions or three different questions.
Those three question happen to be ones that we found that generate the right type of behavior on teams.
They get the discussion at the level.
Not too high, not too deep.
So generative rules to create the behavior we want rather than a big lengthy rule book like we might find in a more prescriptive process.
In Agile, in Scrum, we're going to have a set of players that looks like this.
We're gonna have team.
This is not meant to be a hiring list, just a representative list of the team members.
Or you have somebody called a Scum Master, other processes or companies might call this an iteration manager.
They might called it a coach or Agil coach.
There's persons there to enforce the process, the values of process.
Not the, you know, did you ask the right three questions, right?
Team can deviate from that, but are they following the value of a process?
And I've got up there the metaphor that they're a sheepdog.
We use that in the Scrum community to represent the idea that the scrum master or coach is there to protect the team.
One person the scummaster often protects the teams from is somebody called a product owner.
Product owners are on the business side.
They're always pushing for more.
That's a good thing.
I want them pushing their teams for for.
A good scrummaster can look at that and say, hey, productowner, back off.
The team's little burnt out.
And see them making a few mistakes.
Back off a little bit for a couple weeks.
Let the kind of catch its breath.
Also, a good scrum master, though, might say, hey, product owner, while the team's not listening, let me tell you, now is a time to push them.
They're feeling pretty recovered.
I think this team is ready for more.
Push them a little bit harder.
So we've got this kind of partnership between the scrumm master and the product donor looking at the process and one looking the at product.
Last slide kind of showing what scrum's about, then we're going to dive into these sins.
Just to get this started.
So on the, on a scrumm process, we have a thing called a product backlog over here on left side of these screens.
This is from a kind a hypothetical e-commerce site.
We will say we've got an eCommerce site up.
we want to add three features to it.
That's our product back log, prioritized by our Product Owner.
The team works in a series of sprints.
They tend to be two to four weeks long.
Those are the most common links.
At the start of each sprint, the team gets together, figures out what are we gonna build.
And they look at the prioritized backlog, they pull one item off that backlog.
Maybe multiple for my graphics, my limited graphic abilities.
I just wanna pull off one items.
So the teams says we're gonna work on returns this sprint.
They select that based on the product or its priorities.
Then they determine what they can do by looking at it in task level.
Take these items, break them into tasks, and figure out where we can commit to.
The team decides this print we could do these This one task, this one feature returns, we'll break it down into five items.
Code this, test this automate this.
Validate the other.
They create tasks like that and they make their commitment.
At the end of the sprint they try to come up with some working software.
Something potentially shippable, not truly shuppable in all cases, but done, something that's finished.
One of the things that appealed to me about Scrum, it's got a two-faced approach to change.
No change inside the sprint.
Nothing allowed to changes inside that sprint, however, the whole world can change outside the Sprint.
Here we're showing coupons.
We've decided to offer $20 off coupon, 10% off coupon, things like that.
Product owner adjusts the priorities on the backlog, moves these around, puts coupones in the proper place.
Last element to add up here, once a day the team gets together, synchronizes their work.
This is not meant to be a status meeting.
This was not a meeting for the manager, scrum master, coach, or iteration manager.
It's the team getting together and talking about it.
I suspect many of you, even if you're not on Agile teams, have done that meeting, I'll touch on that more a little bit later.
Here are the sins that I want to talk about today.
We'll talk the sin of gluttony, and we'll see what that is.
And I wanna talk my favorite being in Vegas, Going to open space and hooking up with people.
We'll talk about sloth, we'll about opaqueness.
That's a sin.
The sin of pride, the sin wastefulness and of myopia.
So we will talk those seven sins.
Let's look at our first one here.
the first sin is gluttony.
I probably should have taken a picture of the buffet at the restaurant in the hotel here too instead of this big hamburger.
Gluttony refers to trying to get too much, fixing all the dimensions of the project, saying I want all of this, I wanted by this date,
and of course I need a high quality level.
When we act as gluttons on our project this leads to schedules that we're not going to make, it leads the death marches,
the eight months of sprinting, eight month of overtime.
We end up cutting quality.
Project Management Institute draws something they call the Iron Triangle.
You've all seen this, I'm sure.
We've got scope, schedule, and resources on the sides of the triangle.
With the idea here, you hear this described different ways.
If you go to your customer and you say, pick two, or you can't walk down all three, choose any two parameters, then I can make the project successful by
fiddling with the third dimension.
One of the questions that Agile tries to address is, which dimension is the best one to fiddle with?
By the way, we've got quality in the middle because quality is of course fixed.
We don't ever fidle with quality, right?
Never see that happen.
So what about resources?
Is resources a good lever to pull on to achieve success?
Suppose we're heading towards the end of a project and we are not going to make it.
We're going be late.
Can't deliver everything on time.
Well, one way to possibly meet that deadline with that set of features, add more people.
Well, very unpredictable.
It might work, it might not.
There's the whole mythical man month concept, there's Brooks's law, adding people to a late project only makes it later.
So even if we thought this was a good idea, its very risky.
Might work might now, might be a horrible thing to do.
What about schedule?
We can pull in the schedule lever.
We're headed towards the end of a project and the team says, if just had a few more weeks we'd be okay.
Technical perspective, it's a pretty good solution.
A couple more weeks, a little more work, we're done.
From a business side, maybe not such a good idea.
We've got marketing commitments.
we've lined up trainers to go train our user base.
All sorts of reasons why schedule may be a bad lever to pull on.
Scope, from a technical perspective pretty, good drop some features.
Maybe not so bad, as long as the team, two things are true.
The team has worked in priority order and as well as a team did their best work.
As long the was not screwing around or doing bad things, long they worked on priority orders, scope not such a bad thing to drop.
So on Agile projects, we favor scope management.
We do this in a number of different ways.
One of the ways we do it is through time boxes.
Time boxes help teams avoid gluttony.
We treat the iteration or the sprint length as fixed.
We say here's what we're going to get done.
Now we may float the number of iterations that we are going run.
we start out thinking maybe we'll be done in eight two-week iterations.
Partway we realize maybe it's going take us nine or ten.
I have two iterations to get enough functionality in to make coupons a valid feature.
That's our budget.
I know I can get at least something credible in in two sprints, and we work in priority order at the end of two sprint, we're done with coupon,
so we move on to the next thing.
This helps us avoid grabbing too much.
Time boxes also help us with predictability.
Over time, a team is able to figure out how much they will complete.
We call this velocity, really kind of their pace per iteration.
There's a real team up there, nine sprints.
You'll notice that velocity is volatile.
It's not consistent.
I used to try to make this point by tossing up a graph of a team's last 82 sprint.
and showing the volatility over those 82 sprints.
The team I tossed up was the Chicago Bulls back when Michael Jordan was with them.
They call their sprint games, but that was a very representative graph of what a team might get.
Volatility in velocity is normal.
It's part of we would expect.
So we're going to look at things like average velocities and such.
Let me show you one way that this helps us avoid gluttony.
Suppose we've got a project that has planned something like this.
We've planned to do those first four features in the first sprinter iteration, the next four in next iteration.
And we got some estimates that go with these.
These might be in what an ASL team would call story points, maybe ideal days.
They're just a relative size for now is all we need to know for today.
We've estimated those.
This team would have a planned velocity of 16. If you look at those numbers, we've got a 5, 3, 5 and 3 in the top, that adds to 16, this team has a plan
velocity 16 They run their first sprint though, and when they run that first, they end up doing this.
They only get the first 3 done in that sprint.
they have an observed velocity 13. This team has to set some expectation going forward of what their velocity's gonna be.
They've gotta be communicating out to bosses and customers and clients where they think they'll finish.
So think about for a moment what you think their likely going-forward velocity is going to be?
Well, one argument might be 16. That's what we've done historically.
Something told us to setup 16 as our velocity in that plan on the left, so let's go with 16, A valid argument for that.
Maybe that's our average over the last 10 years.
On the other hand, maybe 13's the right answer.
This is called yesterday's weather.
Let's plan on this iteration getting done what we got done last iteration.
Valid argument that, so there's a valid for 16, there is a valed argument 13. I don't know which is right, I'd have to be in the context of this project.
What about the argument 19? We have get back on track.
Is that a good answer?
Which one do we tend to choose on traditional projects?
I think we often tend choose 19. Got to get back on track.
Looking at it this way, looking at with these velocities, and when a boss comes to you and says, you guys got to back track,
or worse, when we're tempted to assume that ourselves, oh, we'll get on back.
We learned a lot.
We have something that told us to use 16 past history.
We just experienced a 13. There's no logic in choosing 19 as a going forward velocity.
By all means, try to achieve 19. Try to get back on track.
I am not saying not to.
Do try get to back track, but when you have to set expectations with people, they better be somewhere between 13 and 16. 19 would not be a realistic number.
That would be deceiving our customers.
Now I've got two choices when we get down all the way to K and L.
I can drop those, or I could extend their lease, I do a fourth sprint.
It would be a choice that the team would have to make.
Let's go on to our second sin.
Second sin is lust.
Lust is an intense or unrestrained craving for features.
More, more, and more.
It comes from trying to pull in too many features during the time that we allow.
We see this on those projects where we'll have 95% mandatory features This leads to kind of violating that sustainable pace principle that we're after.
Leads to dropping quality then, either intentionally, oh, we've got to get more in, or unintentionally because we are working too fast,
and leads us to surprises.
How many bosses have you met in your life?
The first day on the job, you meet with your boss, your bosses, my primary rule is no surprises, right?
I think every boss I've ever had told me something like that, right?
I don't want to be surprised, that's a common thing.
Lust leads to this.
Now I got three ways I want touch on that Agile deals with lust.
The first, we focus on working in priority order.
Even if everything is required, even if we have a product owner that says, I need it all.
It's like a car.
I can't have car without four wheels and an engine and everything else.
Even we work with a project owner like that, an agile team has to work in order.
They take one item off the product backlog, they take the second, and they the third.
So there's an implicit, to some level, forced ranking of the items.
Okay, you need it all, Mr.
Product Owner.
Which one should I do first?
The team grabs the first four or five, runs a sprint.
This helps us deal with lust.
The second way that we deal Our lusts are incrementally gratified.
Every two to four weeks we're seeing some software come out.
This avoids letting lust accumulate.
It's kind of like a release for our lust.
Getting the opportunity, customers who get to see software every couple of weeks, very beneficial.
I used to have this theory, before I got Agile, I've always been pretty close to it, but before i really started to do it I use to had this feeling that
it took two to three releases for a development organization to be trusted by its customers.
And I was thinking this kind of in an internal environment.
This is where I worked a lot in the late 80s.
And, I always felt like my customers needed to see me put out a release one, then they needed give me feedback and I would do a released two,
and then I'd do release three, And then, they would trust there'll be more releases and this team will give us good software.
Now, that was back in era when those releases were six, nine, 12 months long.
I mean, it took two to two and a half years for the customer organization to start to trust my development organization.
Well, in Agile, I think it still takes two or three deliveries.
I don't want to call them releases.
But that can happen in the shortest two of three sprints now, right?
You hire me to write something, and I write to something and give it to you in two weeks.
And I do another one, give you two in three weeks, do you one more, two week later, you start to trust, oh, there's going to be more and you have this feeling.
So less doesn't build up.
A mentioned sustainable pace, so let's look at it a little bit more.
Big part of Agil is working at a sustainable place.
We asked how many Europeans we had here, or at least outside the US.
And I remember Kent Beck telling a story about how when he wrote about this initially and went over to Europe to speak about it,
he called it the 40-hour work week.
He went to over Europe and started talking about the forty- hour workweek as though it was meant to be a good thing, which it would be here.
So the Europeans got mad.
Why do I have to work overtime just to the agile?
37 and a half hour work weeks and things like that.
We can't change this and refer to it now as sustainable pace.
The idea here being that a team should work at a pace that they can maintain over the long term.
Little sprints, that's a bad term, but little bursts of extra activity may not be a useful thing.
I love this quote from Kent's second book, his second Extreme Programming book.
It says, over time is a symptom of a serious problem.
And it basically goes on to say, if you've got a problem that you can solve with one week of over-time, go ahead.
Sustainable pace doesn't mean 40 hours every week, it doesn�t mean 37 and a half hours a week.
Go watch a 10K this weekend.
Stand at the finish line.
You'll see what a sustainable pace is.
They speed up over the finish line, right?
Edge out the person next to you, beat your friend that you think is about 30 seconds behind, catch up with that one runner ahead of you.
That's not sustainable.
It's the last 200 yards, and people sprint across the end.
Sustainable pace doesn't mean exactly 40 every time.
Kent says do it one time, solve that problem, but if you come back next week and think you need to do that again, you got a big problem.
I've got this graphic of this scrum candy bar with less crunch down there, right, less over time.
Because one of my clients, the High Moon Studios, learned this the hard way.
They're a video game developer.
Video game industry is one of the few industries that has the great big industry trade show still, where everybody has to go and show off their software
for the last year.
And old habits die hard.
It used to be that when the trade shows would come up, everybody would go into overtime mode for a couple months preceding the show.
You wanted your publisher to like it, you wanted to start getting good press, and you'd put in a lot of overtime.
So here's a slide showing how High Moon learned what overtime does.
This was their normal velocity, this was our normal pace.
And I could have drawn this out over the last dozen or so sprints, their, This is their average velocity over their previous dozen,
or, so, sprint.
this team's running one week, one-week sprin at this time.
They decided, trade show coming up, everybody better work some overtime.
they put in some mandatory overtime, and of course velocity went up.
We're getting more done.
Let's keep at it, let's do overtime again.
Second sprint with overtime, they saw this.
Little bit ahead still, but notice the big drop, right?
Probably not worth making people work extra just to get that.
But we got some big benefit that first week, let's do it again.
Mandated overtime again, well now we're getting screwed, lets keep doing it.
What happened here, this is all very objective.
This was measurable.
If you talk to the CTO of this company, a guy named Clinton Keith, good friend of mine, if you talked to Clinton, his theory about what happened,
here is the team did get more done that first week.
Absolutely got more down.
By the second week, they're starting to get a little more tired, little bit more sloppy.
Some sloppiness crept into things, and that sloppyness came back to hurt them in the third and fourth weeks.
So, this to me is evidence that Kent Beck's suggestion, one week overtime, go ahead.
Now I don't know, I might be willing to extend that.
Hey, you've got to work overtime two weeks.
Go ahead, most people can handle that, but if you're looking at it as a chronic situation, eight months, the story I started with today,
it's not going to help.
This is the type of thing that I could put up eight different companies showing you this.
You still don't internalize it until you live through it.
Until this is your data, this really hard.
This why the old habits die hard, Clint Keith who led this company through this, he knew that overtime wasn't a great thing to do.
Still a temptation and it's free to try in most companies.
So we try it and here's what we see.
Third sin is sloth.
Most of you've seen this graphic, the roadkill paved over here or painted over.
The idea with sloth is it's kind of losing the focus on doing high quality work.
This often manifests itself as testing quality in at the end, or not needing to do quality, not needed to any testing.
Most of us have worked in the environment where the boss said we don't need testers, just hire better programmers, things like that.
I worked on one of those.
This leads to big delays, unpredictable schedules, variability in the team's velocity shows up.
If we have low quality work, we will see the velocity be very volatile in teams.
I've graphed that with some teams before.
Just want to give you one anecdote of a team where I saw this.
My company was in a process of acquiring another company.
And I went out to do due diligence on the technical side with the company.
And as I met the development staff, I was mostly talking to them, they kept using a phrase that I found interesting.
Because I'd asked them about quality.
It's a big concern of mine.
If we're going to buy them we are going inherit their code base.
I want to know if it's any good.
and I kept asking about the quality and test practices.
Every time I did they used a phase that kind of threw me for a loop.
They kept saying quality is baked into our process.
That sounds pretty good, right?
Quality is fundamental, quality is baked into what we do.
And after about the eighth guy said that over the course of the day that I was there, like eight hour a day, after the seventh or eighth person who said this,
I finally say stop.
What does quality as baked in mean?
I'm not getting this and everybody uses this phrase, where does that come from?
And the one guy came clean because I think he knew that if we went with the acquisition I'd end up being his boss and he certainly didn't want to lie to me.
And he came clear with it about what it meant.
Quality is baked in was a phrase that came from their CEO and it was basically the excuse to not hire testers.
We will bake quality into the process, we will write good code as we go, We don't need any testing at the end.
So this team did no testing whatsoever at end and we ended up not acquiring them.
So Agile takes quality very seriously.
Here are some of the...
You know, I should have changed the top of that slide to say XP practices.
These are really XP practice.
And one of the nice things with XP, XP being extreme, it's often out there in the forefront of new ideas.
Being on the fore front is extreme and risky and things like that.
But it is great because we get these extreme programming teams out their trying all sorts of things and then the rest of us can pull them into our projects.
So these are real XP practises more than agile.
I want to give XP the credit for coming up with these ideas But then we've pulled these into most agile teams simple design right trying to keep it simple
not getting to elaborate no more complex than it needs to be huge focus on automated testing I love this part of it test-driven development writing a little
bit of a test before you write some code.
I love doing tests during development.
I'm such a total geek.
My Christmas present to myself this year was four hours of uninterrupted programming time on Christmas Day in my home office.
And my wife agreed that would be her Christmas Present to me was to let me program for four hour uninterupted.
and I am working on a little project for my daughters who are on an age group swim team.
and I'm writing some new features for their website, and doing it in Ruby on Rails.
Not a language I am really great with.
I've been doing for a few years now, but not great at it.
Because I just learned it by kind of diving in, not going through a bunch of classes or real systematic study.
Just kind diving into writing code.
And I write everything test driven.
It's Christmas day, it's mid afternoon, I get to a part that I don't know how to test first.
When I think about it, And then I looked around the room, my home office, to make sure nobody would see me write code first.
And I cheated.
I wrote the code.
Then I went back and wrote a test after.
But my eight-year-old daughter was going to walk in and say, Dad!
Red, green, refactor.
You can't do it that way.
Continuous integration.
Always having a build server watching the code that gets checked in.
If we break something, find out about it now.
I look back and I can, I mean I laugh at how I used to do this and think we were pretty good.
We used integrate once a week.
Everything from all 20 programmers, we'd get integrated once week and that was so wonderful back in 91 compared to how we did it before.
That was wonderful.
Why we never thought, hey, if integrating once-a-week is so much better than doing it randomly, why don't we do it once day or once an hour?
I don' know why we didn't ever think of that.
I'm kind of ashamed I didn't.
Per-programming.
I invented per- programming, by the way, I know that the XP community thinks they did, but I did.
It was 1986, and I got hired by Anderson Consulting.
And on day one on the job, they had me fill out a skills assessment.
They said, how good are you at C?
And I was a rank beginner, a barely beginner.
Oh, intermediate.
By the time this big company reads this thing, I'm enthused about this language.
This language was the first one that I started to learn that fit how my brain worked.
Fortran and others didn't fit.
C fit with my Brain.
So I am going to Learn this.
And by the time they read it, I will be intermediate.
They read the next day.
That was Tuesday.
On Wednesday, they had me fly to New York from LA, where I lived, to new York.
They put me on a project in New york and I was there to write C code.
Fortunately, there was another developer that had been in the same situation.
Third day with the company, and they'd flown him in to NY.
And I talked to him and said, Chris, I gotta come clean.
I lied.
Im a beginner.
Chris said oh shit, i lied too.
We decided that by pairing up, they wouldn't know which one of us to fire.
He and I paired there for the next four years.
I left, I went to Sacramento, California and started a company there and brought him there.
We paired for four year.
So we paired from 86 to 94 most days.
Guy ended up being a good friend of mine, my best man at my wedding and things like that, all from pair programming.
Refactoring.
Agile teams go in and clean up code.
I grew up as a Boy Scout, and Boy Scouts always learned that weave the trail cleaner than you found it.
This is part of what refactored is about.
We coach teams.
When you go and if you see things that aren't perfect, if they aren�t good, just leave it a little bit better.
If everybody does that, things improve.
Let me show you a company that did this.
can't use their real name, so I'll call them CosmodemonicBioTech.
Any Henry Miller fans will catch that reference.
They had an existing product that had been built.
It was 3,000 use cases to build the product, and it took them nine months to do with a total of 540 person months.
Not a huge project, very rushed, a very complex domain, too.
This is a biotech domain.
Very complex.
An average of 120 lines of code per month.
Now, I'm not a big fan of lines and code.
We know if we set this up as a, you know, whichever programmer writes the most lines a code gets a bonus.
we know that's a bad idea.
But in hindsight, measuring a team that wasn't measured at the time, and it's probably a credible metric, so 120 line of codes per person per months,
this company got into a situation where they were essentially acquired, but the product was acquired and was assigned to a new staff to write a completely
different version of the project because the waterfall version had failed.
So a team wrote the same product.
This was a chance to compare different products with different staff.
Um, this product I got to, to run, I did it with Scrum.
We had 1400 user stories, fairly large project, took 12 months.
It took longer on the calendar, But we did with a much smaller staff, and I don't think there were ever more than six people on it.
It was 54 person months, which is conveniently I can do in my head, one-tenth the number of person-months.
A little bit smaller, I would take that to probably be a good sign because it actually did much more, and it worked, the previous one didn't,
with a productivity of what's almost Seven times more area seven times.
More So very successful this team did this by focusing on quality this Team had I should have put the number of test lines up here But I don't know it
for the waterfall team this had more than 51,000 lines of Test code they had More test code than they have production code and this is what allowed them
to go as fast so dealing with the the sloths in the second one this company here We mentioned Lisa Crispin, who's here, author of a wonderful book,
Testing XP, and a new book coming out, I guess, towards the end of the year.
This is her company.
So stop by and talk to her.
She can tell you more about this one.
Wonderful success here.
A product that was kind of struggling, way before Lisa was here, I'm not going to blame her for that, she came in and helped solve these problems,
and the company had to get good at Agile to do this.
And they had improve their quality, they were having production issues daily.
They got to the point where maybe a production issue once a month coming in.
So I looked back at what the team had done, and again, this team was not measured in terms of lines of code or anything during the time,
so I think it's a valid measure in hindsight.
U.S.
average that I dug up at the times was 270 lines per person per month.
This team has gone fairly quickly before that.
They averaged 389, but they did that by being very sloppy.
I mean, it was a buggy system initially.
This team, nine months after they started Agile, I measured what they had done.
They were about a little over three times faster than they'd gone before.
That was pretty impressive because certainly in the first month they weren't any faster, right?
So by the ninth month, they were going a whole lot faster.
Here is what they did in quality.
In the three years prior to starting with Agile, they were having 10 defects per 1,000 lines of code.
Pretty high.
And the first nine months after they started they had 2.9 defects, per thousand lines.
Still kind of moderately high, but there was no big rewrite of the old system.
I didn't have a way to go back in and see how many of those defects were reported against the old code versus the new, but I'm going to guess 80 to 90%
were still against old the code.
But that old had been gradually improved as the team went in, refactored things going through the system.
It's even better.
They did this without a targeted rewrite.
This improved just by the refactor and leaving the codes cleaner than they found it.
And if we'd measured the new and the old code, it would be even better.
I'd have a better number to put up there.
That's sin number three.
Sloth.
Sin number four, opaqueness.
Obscuring the progress, quality, or other attribute.
This, to me, is about not knowing where we're really at.
This is one of the biggest benefits that I see to Agile that the bosses report to, me.
An executive in a company or a product manager in the company, this is the part of Agiles that they love, that there's no longer this opaqueness to the project.
They get to see where they're at, see how Agil deals with opaceness.
So I want to talk about a couple types of opaconess, the first being quality opacuness.
With quality opaqueness, we don't really know where we're at in terms of the bug count and the quality of our system.
This is another place where time boxes help us.
At the end of every sprint, were supposed to be potentially shippable.
If at the of that sprint reiteration were not potentially shipable, It's a real bad sign, we better fix that problem.
So we don't get to the end of a traditional project.
We go for nine months and we're going to have the three-month testing phase.
But we have no idea if that's the right amount of time.
Maybe the team wrote high-quality code, maybe they didn't.
Well, with an Agile project we can avoid the 90% syndrome.
Things are done or not done.
No debate about it as we go through.
How we handle with schedule opaqueness is this.
Some of you may have seen a chart like this before.
This is what's called a release burndown chart.
A release burn down chart shows the amount of work that the team is doing per iteration.
This team here, it's a real team, planned to do 360 what we're going to call story points, just a measure of the size of each of items on their product backlog,
360 storypoints over four sprints.
They had a planned velocity of 90, they were going do 90 points per sprint.
The run the first sprint and they see that.
By the way, let me back up.
This is their hypothetical line.
Alright, this is the hypothetical, not the reality, I'm going to add on the real line here in a moment.
I draw the hypothetical line so that we can look at this.
In reality I don't normally draw this line, but I've drawn it today so I can put up their observed velocity and I could ask,
are they ahead or behind?
So look at that for a second.
Notice they're behind schedule.
They expected to be down to that white-blue line.
There at the diamond instead.
Tiny bit behind.
CEO is guiding adoption of Scrum into her company.
She'd read an article about it somewhere.
It's just fairly technical.
And she hired me to come train her team and get them successful.
Small company, about 100 people.
Not all in development.
Development is 20 or something.
Four sprints, I have to meet with her at the end of the first sprint.
We don't have anything useful to say, it's one data point.
I wish we were a little ahead instead of a bit behind, but one datapoint, no big deal.
Well, we ran the second sprint, what do you think we talked about there?
Linda, did you say firing me?
No, oh, okay.
No we didn't talk about firing and Linda didn' say that.
We talked about what now?
I drew the trend line through here.
It was 6.1 sprints.
And the CEO said, I can't wait six sprint.
I said well I got bad news for you.
In Agile, we round up.
That'll be seven sprits.
So there's no way I'm waiting seven sprint.
We told the sales people they'd have it in four.
Well, what are we going to do?
Well we could drop some work.
Look at how much we'd to drop there.
We wouldn't have to drop just down to the blue line, we'd have drop below.
She said, I can't do that.
I said well could you drop a little bit?
I think the first sprint was pretty representative.
Second sprint, second iteration, a bit of bad luck.
We're not going to have that again I don't think.
Think our true velocity closer to that first Sprint.
So if we dropped a litte bit maybe we could be done in five.
She said, I can drop a little bit.
I never believe it when somebody says that.
So I said show me.
Which ones are on the chopping block?
I want to know which items.
And she did.
Okay, let's plan on five sprints.
Let's not drop anything, but let us plan five on sprint.
We ran the third sprint.
Here I went and asked for big rays.
No.
Just like I shouldn't have been fired after the second, I should not ask for a big raise after third sprint.
Notice the first and third balance out.
Random noise.
Second sprint, some bad luck.
Here, CEO and I talked about how we may want to go in four sprints.
One more sprint like this third one, we'll be done in 4. We'd only have to drop a little bit.
She said, now I'm not going to tell people it's coming in four, we've already told them five.
If I tell them four I know it'll be late, it will be five, so let's just stick with five five looks very safe.
We ran a fourth sprint.
Kind of looks like Parkinson's Law took hold here.
Work expands to fill the time available.
No it didn't.
The team continued at the pace of number three.
But then they said, we're not going to do a sprint with that much.
Let's add some work, let's make it a decent normal sprint.
And they added enough work back in.
So if you can imagine this line drawn, they drew it down, erased it, added some scope back, and then redrew the line where it shows on this picture.
Then we ran the fifth sprint to finish.
Now, this is about showing real progress on the team.
I work with a lot of execs and they'll say this our favorite part of Agile.
Work with this one president of the company and he loves this.
He says, sometimes the news isn't good.
Sometimes it looks like sprint number two up there, but I always know where we're at.
And he had a VP and a past wife that lied to him and always told him, oh, we'll be done in one more month, one month.
And he says, you know, they can't lie to me anymore.
I know where we're at, and I can deal with it.
And I make decisions.
Here's scope-opaqueness.
So we've seen quality schedule, now here's the scope opaqueness.
This is the same graph we saw earlier, team over nine sprints.
Im interested in three things from this velocity graph.
Am interested their long-term average.
But I'm also interested, in their kind of worst-case average, how bad might things get?
I define worst case as take the worst three out of the last eight.
I don't care what this team was doing back in the Clinton administration.
It's way too long ago.
But what's their average over the eight sprints?
Their worst-case.
So I'm going to take their worst 3 sprits, average those up.
And I've got to do the same with their best sprint.
Let's take there best 3 chosen among the 8. You can use your own definitions, I don't care how you define these, it depends on how long your teams stay together,
depends how your sprints are, but something like this that lets you find your long term average in a best and worst case.
I'm after what a statistician would call a confidence interval.
But I do not have 100 items, or even 30 or 40 items in most cases, to go back and get a truly statistically relevant confidence intervals.
So I use something that gets me close enough that I can at least make decisions with it.
Here's how I'm gonna use this information.
Let's remember these numbers for a moment.
We got 28, 33, and 37. Take the 28. Your velocity, your low end velocity.
Multiply it by the number of sprints or iterations.
Count down your product backlog, those stacked up index cards there.
And say, hey, at our worst case, we'll finish here.
Do the same with your average.
But do the the best case.
This lets us make predictions.
We'd like to run an ad during the Super Bowl.
We would like an add featuring one of those items at the very bottom.
No, it's not going to happen.
This lets us look at our backlog and make decisions with it.
So use these interpolations of velocity as arrows pointing into your backlog to predict things.
I want to show you another visualization of the same type of thing.
we saw a burndown chart.
this is a new type a burn down chart What I've got going on here is updating the burn down once per sprint, just like normal,
and then stacking up the product backlog on the right.
The product back log is shown in priority order from top to bottom.
the most important thing on our e-commerce site were some mandatory returns features.
Once we were done with those, we wanted to work on gift wrapping, and then let's go back and add a little bit of fancy stuff to returns before we go on
to exchanges, some shopping cart improvements, something else, then eventually coupons.
So this is our product backlog, most important at the top, down, so it's kind of flipped over.
You'll notice the work is all done, right?
That's where we're at on the burndown chart is that Sprint 7, the last circle.
So I can draw a black line over showing where we're currently at.
This tells me what's done.
It's a way of dealing with scope opaqueness.
I get to show where were at, I draw those three lines, the 28, 33 and 37. Extrapolate, draw some velocity predictions and say,
worst case, we are going to get half way into the shopping cart features.
So if we're worried about, will exchanges be in the product?
Can we do exchanges on our website?
Yeah, that's gonna be safe.
We're gonna have to go slower than our slowest long-term velocity for that to be at risk.
It's a way of drawing conclusions from here.
Sin five, pride.
Definition here is thinking that we know everything.
I don't need to talk to anybody, I know every thing that needs to be in this product.
This leads to leaving out stakeholders and other types of users.
Results in a failure to learn.
Thinking that I now everything means that don I learn anymore.
Here's the scrum diagram again.
We saw this before.
Think about all the opportunities to solicit feedback here.
pretty much throw a dart and you can hit an opportunity to solicit feedback.
One of the places that I didn't even mention on here, what was the agile retrospective?
Over here on the right.
At the end of a sprint, the team runs a retrospectiv.
In that retrospect, they reflect on how is the process working for us?
Team does the daily stand up, opportunity to learn there, get feedback there.
All during the sprint, we can be showing the software to our product owner, to others getting feedback, there during this sprint planning meeting,
all over the place, opportunities for feedback.
Feedback leads to learning.
Another way to deal with this sin is in how we engage our users.
I'm a fan of using what we call user stories for our product backlog items.
This is one of the Agile books that I've written on user stores.
I love this as a technique for engaging users.
So a couple sample user story.
As a user I want to reserve a hotel room.
as vacation traveler I wanna see photos of hotel rooms so I can choose the right one.
I changed that.
The first story says as user, the second one says, as a vacation planner.
I'm here for business this week.
It's a palazzo.
But I didn't pick it.
Where's the conference?
My assistant booked my hotel room.
Oh, there's Jimmy Buffett concert you've got to come back for in October.
Any parrot heads will know what I'm talking about.
And so I am coming back for a holiday.
Then I will make sure I look at photos of hotel rooms.
Where do I want to stay?
I'll pick the right room.
Make sure that I've got a nice room or nice hotel.
Much more important on a vacation than a business trip.
One more example up here.
As user, I wanted the site to be available with 5-9 uptime.
Just wanted to show a non-functional requirement.
User stories can work for non functional requirements.
These engage our users because they can relate to this.
Stakeholders can get much more involved in this than they the system shall this, and nobody likes writing or reading those.
Use cases, we might have made them a little too complicated for most users.
We take these user stories and progressively refine them.
This is a real example from one of my clients, a company called JDA Software.
They have a little over 500 people doing Scrum in two cities in the US, one in India.
Um, they sell software to large retailers, marketers.
So like Nordstroms or Walmart or any of those type of places.
The add a large user story as a vice president of marketing.
I want to review the performance of historical promotional campaigns.
Ads.
Where should I put my ad money is what they're trying to figure out.
It was a huge user story.
That was okay at the start, but as that story gets closer to the time we're going to implement it, we can break it up.
Then we broke it into a story about selecting the timeframe to use, another story selecting which type of campaigns to see.
I'm only interested in electronic advertising.
And I am not interested print advertising, I have a separate budget for print advertisement.
We can take these stories, we can make these even smaller if we need to.
This engages our users not just at the beginning, but throughout the process.
So user stories are a good way for dealing with this sin.
Next sin, wastefulness.
Misuse of critical resources.
Time can be misused, resources can misuse, right?
Motivation, team excitement can get misused.
Here's four ways that Agile deals with waste.
I'll toss up one more in a moment.
We time box things.
Again, time boxes can be used as budgets for features.
Were not going to let time get away from us because we're going be able to say, look, this feature is worth four weeks.
Let's put one four-week sprint on this feature.
We can have something credible for coupons in four weeks, and after that, we move on.
I know we'd like to spend six, maybe even eight weeks on it, but in the grand scheme, looking at all the features we like get,
it's only worth four week, so I think we can get something in at least four.
Time boxing keeps a focus on demonstrable progress.
Time boxes can let us know if we're building up bug debt.
Are we not finishing high quality work at the end of sprints?
It lets us measure that.
The daily stand-ups.
Anybody remember Fred Brooks' answer in the mythical man-mouth?
He was the first project manager to ever be a year late.
I remember reading that book, not when it came out, but a little bit afterwards, and he was asked, how can a project be year-late?
And he asked like it was impossible.
How can this possibly happen?
Yet most of us these days have worked or seen or had a friend work on a product that was a years late, right?
Most of can point to some project that is like that, or most us run an OS that's a You can't see but I'm on a Mac.
He was asked, how can a project get to be a year late?
Anybody remember his answer?
One day at a time, right?
The daily standups help with this.
I am firmly convinced of this, and I thought this even before I started doing Scrum, it's a long time ago, that projects slip by the frequency with which
they meet.
So if a project is meeting daily, of course it can be late.
But that day, the slip will be measured in days.
If a projects gets together and does monthly meetings, let's do a big monthly meeting and that's all we do.
That project might be laid, but it'll be measure in months.
The daily stand-up keeps the focus on things.
Now I said earlier that I bet that most of you, even if you haven't been on an Agile project, may have done a daily Stand-Up.
Let me explain what I meant by that.
You've got three weeks left on a project.
Your going to be on time.
That's been going on for maybe six months, nine months.
You're going to be on time, as long as everybody stays focused.
As long nothing slips through the cracks.
And somebody comes up with a great idea.
Somebody says, hey, let's meet every day after lunch outside the boss's office.
Or let get together in my cubicle.
There's a lot of space in MyCube right after a lunch.
Let's just talk for five or ten minutes.
And maybe somebody sticks up on the wall a list of things that have to get done.
And I come in and say that I'm struggling with something.
Somebody help me out.
I just can't get the vendor to call me back.
Can you call the vender while I am trying to the code fix?
We just talk about things like that every day and it feels very energizing and keeps the issues very visible.
What a great idea!
And we finish the project, we ship the product, and we start the next project and throw that good idea away.
Why do that?
It's a good idea.
Keep doing it all the time, even at the beginning.
It may not be as critical, but it's still very, very helpful.
So on Scrum, we do these throughout the project.
Iteration retrospectives.
At the end of a Sprinter iteration, We reflect.
We look back and we see what can we learn from this process?
I mentioned it now before I forget about a wonderful book on this called Agile Retrospectives, right?
Check that out at The Bookstore.
Sure they'll have that wonderful Self-organizing teams.
Self organization doesn't mean chaos.
It doesn' mean randomness.
The first book that talked about Scrum came out in 1990. And it describes the process.
Nobody had done it on a software project yet.
the authors are basically saying, wouldn't it be great if somebody did this on the software product instead of a new product development project,
like a tangible thing like the Walkman.
So it described it, it's very chaotic sounding, and the author go on to say, But control is absolutely exerted over this team.
It says it, but it's subtle and indirect.
Its in things like, who do you put on the team?
How big a challenge do give the theme?
Do you the put the teams co-located or spread out?
All sorts of things that.
So it is a subtle, indirect control.
I don't mean control in some sort of pejorative manner.
I'm just trying to point out that self-organization, letting the team solve the problem, does not mean chaos.
We still exert some influence over how that team will choose to self organize.
Another way we deal with waste.
We keep the intensity up.
I've got a good friend named Todd who loves Agile, loves Scrum.
Took him a while to get there, took him couple years before he really liked it.
He does these days, has for a couple of years now.
But every now and then he'll comment on how he misses the good old analysis phase where he had no deliverables for three months and he just sat in a room
and thought.
He's an architect, right?
And he's half joking.
I mean, he is half serious, too.
He really does miss that phase.
Because he also does somewhat miss Todd's, and he was like some of us, I'm sure, not like me.
But he the type who really did like the end of a project, where we're living there till 10 o'clock at night, eating pizza and soda and Mountain Dew and
stuff like that.
And this is the kind of intensity variance that we'll see on a waterfall project.
Pretty casual, let's go out for the really long lunch today, and hey, we'll make up for it at the end when we're living here.
Well, on a Scrum project, or Agile project in general, the intensity is going to differ over time.
It's going be more like this.
A two week sprint, yeah, you'll feel a difference.
Four week sprints, a little bit more of a different.
I'm the type of guy, I get on the treadmill at the gym, they get the nice gym here, go on a treadmill.
I set it at one speed, set at it flat, and I go that speed that time, the whole time.
Right?
I don't do the hill route and all that type stuff, right?
But I like how agile spreads these things out.
Todd, if I ever saw him on that treadmill, he'd be the sprinting, walking, going up the hills.
He likes that kind of difference.
So, find the right balance for your team.
Something that keeps the intensity level where it feels appropriate for the team I wanna show one example of one team that I think's done a great job with
this and how kind of spreading out the intensity level helped them quite a bit.
Salesforce.com.
These guys did a big bang agile transition.
They converted the whole company overnight.
The called me up in October of 06 and said, hi, we're Salesforce, We just converted 250 people to Scrum yesterday.
Can you help?
And I said, oh, come on, this is one of my friends playing a joke on me.
Who is this?
You know, a consultant dreams of somebody calling up his AI.
We got 250 people overnight.
And this, no, we're serious.
I say, OK, well, you don't need me, need a shrink if you converted 250 over night.
Here's some statistics from what they saw.
61% faster to major releases with almost twice as much functionality.
Real simple metric, the third one.
Number of features per developer.
Yeah, of course features were of all different sizes, but developers were all of different skills too.
Just a real simple metrics, it tells something helpful.
Increase in major release cumulative value, this is an interesting metric that needs a moment of explanation.
What they did here is they tracked how long each feature was available to customers in the year.
So a feature delivered in January was more valuable than a future delivered December.
How long did customers have the features that they got?
And based on that, they had tremendous increase in value.
The last sin, myopia, not seen beyond the current work, what you're involved in.
We see this in teams that don't see the big picture.
And we see it in individuals who get tied.
Here's my role, I only do my thing.
This leads to unsuccessful projects and delays.
In Agile, we plan at different levels.
We make release plans.
Here's where I wanna be in six months.
Even a team that puts out software every two weeks, true software out on a website every 2 weeks should put together some sort of release plan saying,
hey, in 6 months, here's what we want to add up to.
Each time we start a new sprint iteration, We get together and we planned the next 2 to 4 weeks.
So we're gonna plan it at a different level.
Right?
We deal with myopia by having cross-functional teams.
I mentioned I'm on a Mac today.
Steve Jobs was interviewed in Time Magazine two years ago, and he told an interesting story.
He was asked, how can Apple so consistently innovate great products?
Think what you want about Apple.
Not always a successful financial company, although recently quite a bit.
Very innovative, but most people will grant them that.
A very innovative company.
And he was ask, How can apple so concisely innovate products.
His answer was interesting, he answered in the form of a story, Think about a car company.
Car company comes out with a new car design.
They show it off at the car show.
People look at it and go, ooh, ah, beautiful car.
And Ford takes that feedback back to Dearborn, Michigan, and they tell the engineers, build this car!
People loved the design!
And the engineer's look and say, it's obvious why they loved design, its stunning!
It won't handle though!
We have to extend the wheelbase.
We had to change the rake of the windshield.
And the engineers apply some engineering compromises.
When they're done, they hand it off to the finance people.
Finance people look at it and say, oh, beautiful car.
Oh, and well engineered.
But we can't sell it for a profit.
Let's slap on the old tourist doors.
All right.
Well, let's reuse some parts.
And Jobs continues and says, why do this?
It says at Apple, if we're coming out with a new product, we get together a cross-functional team.
Why design a product that you can't engineer?
Why engineer a project you cannot sell to profit?
Get together across functional teams.
So we want to do that on agile projects.
But does this make everybody a generalist?
The last concept I want to talk about is kind of a myth, or what I'll call a water fallacy.
A mistaken belief about Agile is everybody needs to be a generalist.
So let's talk this for a moment.
Actually, you know what?
It's getting late, so screw this.
Let's, let' talk lunch.
I'm hungry already.
See, we got three choices of where we want go to lunch?
Let's skip the lunch here.
I'm sure it's great, but let's go to one of these three delis I saw nearby.
We've got McConeys.
It's a little Italian deli I've saw near by.
They only have one order taker, though.
But behind the counter, they've a bunch of sandwich makers.
Or we could go our second delie choice, Bruno's.
Completely different.
they got nine people working the counters, But only one person in the back making the sandwiches.
It's very different.
Or our third choice, we can go to Ferentino's.
Let's see what they have.
They've got four people working the counter, four making sandwiches, and five who can do both.
I remember my obligatory stint as a teenager.
I worked at a fast food place.
And I could make the sandwiches, I can take the orders, but I couldn't replace the register tape.
A few of you in that situation, right?
The little red stripe would start to show up on the tape, and I would have to call for Nicky, my manager, who knew how to replace register So I wasn't
the best at either job.
I'm sure the people that made, I was at a Mexican fast food place.
Um, i was sure that the People that were back making tacos and burritos all day were faster than I Was.I was pretty good at it.
My burrito tasted as good as theirs, but maybe they were Faster at wrapping things up.
So in answering the question of does everybody need to be a generalist, of course not.
But where would we rather go to lunch today?
You go Mcconey's, you're going to wait forever just to get your order taken, but your sandwich will be instant.
Afterwards, we go Bruno's.
It's going be the opposite.
If we got to Bruno,s we're gonna have no time at all.
There's gonna be bunch of people to take our order, it's just gonna take forever.
I won't even get my sandwich till tomorrow.
I'm going to go to Ferentino's where they've got this balanced out.
Not everybody has to be a generalist, but a few that can do multiple jobs go a long way.
So no, we don't need to take that absolutely brilliant database person and make them do something else.
Let them stick with the database.
I have a people that float.
It always surprises me that the sandwich shops have figured this out so easily, and yet we've struggled with it.
generalists.
I'm done.I want to thank everybody for their time and have a great rest of the conference.
Thank you.

Agile Backlog Iceberg: Why Scrum Teams Use This Visual

Transcript

A product backlog is shaped like an iceberg because it reflects the varying levels of detail and size of product-backlog items according to their priority
and when they're expected to be worked on.
At the top of the iceberg, above the waterline, are the small, well-defined items that are ready to work on in the next sprint or two.
These items are detailed enough for the team to understand and implement without needing much additional clarification.
They're small enough for the team to complete multiple items per sprint, typically about one and a half to two items, per person.
This provides the Team with a clear and actionable plan for their immediate future.
As you move deeper into the backlog, items become larger and less detailed.
These medium-sized items are likely to be worked on in the coming months, but are not ready for immediate development.
They act as placeholders for upcoming work, and they'll be refined and broken down into smaller items as they approach the top of the backlog.
This gradual refinement process prevents the team from spending time prematurely breaking down items that may change or might never be implemented.
At the very bottom of the backlog, below the waterline, are the largest items.
Big ideas or high-level features that remain mostly conceptual.
These items require minimal documentation, often just a few words, because they're not expected to be addressed for a long time,
if ever.
For example, for many years, the travel website Orbitz would allow users to book airline tickets, rental cars, or hotel reservations.
Users could not reserve a cabin on a cruise ship.
When Orbitz finally added cruise ships, it wasn't because someone had just thought of it.
I have a great idea.
Why don't we add cruise ship to the site?
I'm sure the cruise-ship backlog item had been thought up years earlier.
And for items, either it languished at the bottom of the product backlog or was so low priority no one even wrote it down.
This approach avoids unnecessary effort and allows the Product Owner to focus on the most immediate needs.
The iceberg metaphor effectively illustrates the dynamic nature of a product backlog.
As the team completes items at the top, the backlog floats up, bringing larger items from below the waterline closer to the surface.
These larger items are then split into smaller, more detailed stories to maintain the iceberg shape, with small items at the top,
medium-sized items in the middle, and large, undefined items on the bottom.
This structure ensures the team always has a manageable, prioritized set of work ready while minimizing wasted effort on distant future items.
It also embodies the principle of just-in-time refinement, where the level of detail increases only as the work becomes more imminent.
If you'd like your team to go deeper on this, learning how to refine split stories and keeping your backlog healthy, check out our Working on a Scrum Team course.
It's designed for whole teams to practice these skills together and can be taken privately or as a public class.
You'll find links about this class in the description or drop me a comment to find out more.

Agile Decision Making: Good Plans Lead to Good Decisions

Transcript

Good plans lead to good decisions.
A good decision is one we'd make again the same way with the information.
That doesn't necessarily mean what you think it does.
Suppose I offer you the chance to win $100 on a single roll of a normal six-sided die.
You have two options.
you can bet on rolling a one or you bet rolling everything other than a 1. If you choose correctly, you win the $100. Assuming a fair game,
there's an equal chance of rolling any number.
So there is a one in six chance that you'll roll a 1. There's a five in 6 chance you will roll something other than one.
It should be clear that your best option is to bet on rolling a 2, 3, 4, 5, or 6. And so that's what you bet.
What happens then when you roll the die and throw 1? You don't win a gamble, but was betting on 2 through 6 the wrong decision?
To answer that, how would you bet if I gave you the chance to roll the die again?
You would again bet on rolling a 2 through 6. Rolling a 1 in this decision is bad luck, but it doesn't mean betting on 2-6 was a bad decision.
Let's put this in the context of a development project.
You follow all the best practices in Agile planning and conclude that a project can be delivered in four to six months.
Based on that plan, management greenlights the project in deciding to approve the product.
Management should consider the four-to-six-month plan and compare it to the projected benefits of the projects, such as increased revenue,
customer satisfaction, or cost savings.
Management might reason that the project will be a bargain if finished in four months, a good deal if delivered in five,
and they project an acceptable but not exciting return even if it takes the full six months.
The project progresses nicely at first, then some unanticipated bad luck strikes and the product is completed in seven months – a bit longer than the anticipated
four to six.
Does this mean the plan led management to make a bad decision?
Not necessarily.
As with rolling the die, imagine you could run the same project 100 times with no learning between successive runs of the project.
Would it almost always take four to six months just as the dye would almost show two through six?
There might be occasional bouts of bad luck and the projects take seven or even more months.
And there could be occasions of good fortune with the project being completed in only three months.
But these are outliers.
They're like rolling one on the die four times in a row.
Management has every right to be disappointed if they're told four to six months and a team takes seven months to deliver.
but management does not have the right be angry about it if it was just like the random bad luck of rolling a one.
I encourage teams to communicate plans they feel they can meet 90% of the time.
Theoretically, that means there's a 5% chance of finishing earlier and a five percent chance at being later.
More practically, even teams that are good at estimating may provide plans that accurate 80% and that will be too low 20% There's a difference between
being wrong and making a bad decision.
If I bet that a die will come up with a two through six and it doesn't, I was wrong, but I did not make a decision bad.
This is an important distinction for both teams and management to understand.

Agile Epic, User Story, and Feature: Do Names Matter?

Transcript

User stories, epics, themes, features, backlog items, initiatives, sagas.
It gets so confusing and it doesn't need to be.
In this video, I'm going to explain these terms and then I'll explain why I don't use a complicated user story hierarchy and why you probably shouldn't either.
Hi, Mike Cohn and I am the author of three best-selling books on Agile and Scrum.
I help teams succeed with Agil and want to help you too.
Most agile teams have what they call a product backlog, using a term introduced by Scrum.
At its simplest, a Product Backlog is a list of things to add to or improve in a products.
A Product backlog comprises product-backlog items.
That is, each thing on a project backlog is product backlog item.
Since that's a mouthful to say or a lot of characters to type, you'll see it often abbreviated as PBI.
The Agile process extreme programming introduced the idea of user stories.
These are short, simple statements told from the perspective of a user.
Imagine team members talking to users and saying, so tell me a story about how you use this new system we're building for you.
I'm using software to control my camera right now.
If I am asked to tell a story about how I'll use that software, I might say that I want to be able to easily zoom my cameras in and back out.
That's a user story.
Here's the first problem.
User stories have become so common in Agile that a lot of people will use user stories and product backlog items interchangeably.
I get it.
If, let's say, 80% of your product backlog items are user stories, you just fall into the habit of calling them all user stores.
We're not going to do that today, though, as I want to be very precise in using these terms.
User stories were invented by a team at Chrysler.
When you invent something, you should be allowed to define the vocabulary.
And they did, defining the terms epic and theme.
Epic was used to mean big user story.
Think about watching some awesome superhero movie in a movie theater.
As you leave the theater, You turn to a buddy and say, dude, that movie was epic.
It was big.
There was lots happening on the screen.
It's the same thing with an epic user story.
it's big!
The other term they defined was theme, which meant a group of related user stories.
Suppose you're working on a system that has 10 stories about account management, and maybe there are 15 user-stories, each describing a report that users need.
These are themes, groups ofrelated items.
If I've confused you with Epic and Theme, it's likely because some of the tool vendors use the terms differently.
Jira, I'm looking at you.
These tools will use Epic to mean a group of related items.
I don't know if this was a deliberate vendor lock-in strategy, or if a programmer made a mistake on Tuesday, released the software on Wednesday,
and by Thursday it was too late to rename the feature.
In any event, it's created confusion in the Agile world about Epic and Theme.
I've kind of given up and I'll often refer to them as big ones or group.
No one can redefine those terms out from under me.
You'll want to use Epic & Theme the way your tool does.
But be aware that if you read articles or books, you might encounter the original and what I consider the actual definitions.
So we've got a product backlog, on it are product-backlog items.
Some of those product backlogs items, perhaps most for some teams, are user stories.
some user-stories are big, and we call those epics.
And user story can be grouped into themes.
Next up is the term feature.
Most commonly, this means a product backlog item that is big enough it can be released to users.
If you're building software to control the color of smart home lights, you probably wouldn't release a backlog that let users set only the red value of
the light.
but letting users control the full color spectrum by setting red, green, and blue values is big enough to release.
So that would be a feature.
Feature is similar to Epic, at least how Epic was originally defined.
Epic just tells us that a story is Big, but Features tells it's big ENOUGH to be releasable.
Some organizations or tool vendors add even bigger items on top of this.
Sometimes saga is used to mean something bigger than an epic, and initiative is use to means something taking perhaps a year to do.
Something this big shouldn't be on your product backlog, so I'm not sure why we need a name for it.
I recommend you think of these terms as labels or tags that can be applied rather than as a strict hierarchy.
This is because some features are bigger than some epics or themes.
There's not a magic size when an epic becomes a feature or the other way around.
Think of tagging movies in your movie library software.
I want to tag some movies as action movies, some as comedies, and perhaps some romantic comedys.
Is there a strict definition of these?
If there are 32 jokes per hour, does that make it a comedy?
If there are 20 jokes plus a kiss, is it a romantic comedy?
It doesn't work that way.
Action movie, comedy, romantic-comedy are just labels we can apply, and we do it for our convenience.
The same should be true of terms like user story, theme, epic, feature, saga, or initiative.
They're just labels.
Use them if they're convenient, or I guess if someone in your organization is requiring them.
I think of everything on my product backlog as a product-backlog item.
Some are big enough that they contain smaller backlog items within them, and some of those small items contain tiny items.
To me, it's quite simple with a recursive relationship.
i don't need a bunch of terms that can create confusion.
And when I do want to indicate that a backlog item is big, releasable, or related to other items, I can tag those items.
No complicated hierarchy needed.
Is your team using a complicated product backlog item hierarchy?
What benefits do you see to that?
Any challenges?
Do you use terms other than the ones I've described?
Let me know in the comments.
I read and appreciate every comment.
If this video has been helpful, click the Like button.
And if you're new to this channel, Click Subscribe so you don't miss out on future tips to help you succeed with Agile.
Thank you for watching, and I'll see you next time.

Agile Estimating Explained — Story Points and Planning Poker

Transcript

OK, let's go ahead and get started.
We're going to talk about agile estimating this afternoon.
Actually, that's a little bit of a mistake.
I'm going talk agile-estimating.
You're gonna do it, OK?
So we're have a lot of exercises interspersed in this one.
And I know we have full day like this.
It's really hard with these one-hour sessions to do much actual hands-on or activity type of things.
But we are going do some of those in the session in particular.
So I want to get you to make sure you have some practice estimating.
So here's our agenda.
Here are the four topics we're going to talk about.
Start out with kind of what is agile estimate and planning?
What are we after here when we call an estimator planning approach agile?
Second thing we'll talk is something called story points.
We'll talk about something called ideal time.
These are the two units that agile teams use for estimating.
They'll use one or the other, story points or ideal-time.
Then we'll get a chance to practice some estimations with a technique called planning poker.
So I'm going to want you to get the chance practice this.
We've got three exercises, I believe, interspersed through these four activities.
Let's see what agile planning is all about.
Agile planning is about separating the planning process on projects into two layers.
We're gonna have one layer of planning, estimating planning at a high level, where we plan something like a release or a three month time horizon,
a six month horizon.
Even pretty successfully up to about a year out into the future.
So we're going to have approach that we use for that longer term planning and then we'll have a second approach that we use when we're planning what Scrum
teams call a sprint, what other Agile teams might call an iteration.
So two different types of estimating and planning going on.
We're going to plan our projects at two levels.
What we'll start out talking about is this product backlog thing over here.
A product back log on an Agil project is meant to be the high level features.
So if we decide to compete with Excel, we're going to write a spreadsheet product.
We're gonna have high-level features like add pie charts, add spell checker, or add mathematical formulas, right?
Add text string-oriented formulas.
Things like that.
Be able to format cells for currencies.
So those will be the type of things that we would have as features, big items on a product backlog.
Some of you will know those might be called user stories on an agile project.
So that's what we're going to be talking about right now is how to estimate those type items.
What I'd like to do to start with is to have you get a little bit of practice estimating something.
what I would like you to is estimate two things.
I like have to you estimate how long it would take to drive from right here to downtown Paris.
Let's go to the Eiffel Tower.
Might as well go somewhere scenic.
So let's to go the the eiffle tower.
I'd like you to estimate driving from here to there.I'd also like to you estimate how long it would take to read the last Harry Potter book.
Now don't cheat and look it up on Google Maps or Amazon or something.
Because there's no test coming here.
I don't care about your answer.
What I care is that you learn something about real-world estimating.
Learn something real world estimatting here, so we're going to use these as a couple of real word activities.
OK?
I think the best way to do this is going be to this in small groups.
So I'll let you kind of turn backwards and forwards and stuff and form up into just some little discussion groups and think about it.
And I'm not going insist that come up with an exact mandated answer, consensus answer for your little group of five or six people.
but we're gonna do a couple exercises later where groups are gonna be necessary.
Wouldn't really need to do this in a group, but it'd be a good way to start out as some groups, okay?
So I'm gonna ask you to estimate these in groups.
While you're doing that, I wanna pass around a sheet of paper that we'll use for exercise later today, later this afternoon.
So go ahead, estimate those two things.
Driving to Paris, Harry Potter book.
I'll pass her on some sheets of papers for the next exercise.
Okay, so give that a try.
You don't need to do the sheet of paper now, that's just for later.
So just estimate these two things for now.
Okay.
Give you a lot of time to talk about that, but enough to just get started here, perhaps.
Somebody shout out an estimate for Paris for me.
Help me out.
How long do you think it's going to take to get to Paris?
Two days, 20 hours?
A week?
I haven't thought about it.
Maybe that's the scenic route.
Plenty of places to stop.
I guess it depends how we get down to Copenhagen or something.
Take the ferry.
All right.
Somebody give me an estimate on that.
Ten points, okay?
So we got somebody who knows where we're headed with the points here.
And that's actually an interesting point to raise here right now.
Telling a boss or customer, I'll be done in ten points doesn't help, right?
Tell me, oh I will be reading the Harry Potter book in 650 pages.
Doesn't help, right?
So that may be an intermediate step.
That's part of what we're gonna build up to here.
We're going to use this as an immediate step, perhaps thinking about how many points something is.
And I'll explain what a point is, I know we don't all know right now.
Let me get another couple estimates on the Harry Potter book.
Anybody over here Harry Potter?
15 hours.
20 hours?
Let's get one more from over there.
A year.
I can beat that.
I've been reading the fourth book for about four years.
The way you might have come up with one of these estimates is you thought about having done something similar.
And I remember when I read the fifth.
That was when it was on holiday.
I was here and it's about a week.
Probably read two hours a day, I'm going to say 14 hours.
So you might estimate by analogy, by comparison to something else.
I've never driven from here to Paris, but I remember the one time when I drove from Trondheim down to Rome.
That's longer, so let me subtract a certain amount on each end.
Estimation by analogy, it's a good practice.
Another thing you might have done is you thought about the size of the work.
I'm just gonna pick some easy math here.
You might have said the book is 600 pages, looks like about 600 to me.
I bet I read 40 pages per hour, 600 divided by 40, I am done in 15 hours.
All right, so you might've done some math like that.
In doing that, what we'd be doing is something like this.
Estimating the size of the work as a single step, deriving the duration as separate step.
I teach a full day class on estimating.
When I do, I tell that class there's five words I want them to memorize.
I'm going to give you right now for free four of the words.
They're on the top of this screen right.
Now I don't know if the fifth word will come up today.
Maybe you got to take the class just to learn that fifth.
But four other words, 80% of whole class that I am teaching when I teaching estimator class for a day, the benefit is to get people to realize estimate
size derived duration.
Do these as separate steps.
The Harry Potter book is 600 pages.
That's an estimate of size.
Driving down to Paris is, I don't know, 2,000 kilometers.
This takes some 3,00 kilometers, right?
I take some guess at how big that is.
And then as a separate step, i will derive the duration.
I might derive duration by reading Harry potter for one hour.
Okay, in one our I read 40 pages, do the math, and I'm done.
Right?
Those of you who know Agile will know we call that something called velocity.
I might start out the drive to Paris.
First hour's not going to tell me much, because I'm going be sitting in my car on a boat.
But the second or third hour, I may start to get enough data that I could figure out, OK, here's how long it's going take.
So we're going estimate the step.
We're to drive the duration.
Now, we want to talk about two units.
I had them up there earlier, Story Points and Ideal Days.
I don't want to introduce either one yet, so I'm just going to toss up an example this way.
We might think about the number of kilograms a project is.
Now, this is totally silly, right?
Weigh the spec, and it's 300 kilograms.
It would be a very big spec.
We find at the end of the first sprint, the iteration, we've done 20 kg.
We could divide that out and say we'll be done in 15 iterations.
That's the concept.
I know it's silly with kilograms.
Now this idea of estimating size-deriving duration is not new to Agile.
I wish we agile people had made this up.
If it wasn't me, I'd wish it was one of my other agile friends, Esther Derby who was in here earlier, Bob Martin who's giving great talks at NDC this week.
But it's been around since the traditional days.
In the tradition days, we've had alternative approaches to estimating size, though.
We've thought about things like lines of code and function points.
Now, we can all make fun of lines of code as a measurement.
We know it is a bad measurement, but it's literally true.
IBM, I think it was in the 70s, actually offered a bonus to the programmer who wrote the most lines a code.
This sounds silly today.
So lines are code, not a good measurement of size, But it a start.
If, for example, I asked you to rewrite a program for me and I said, you could rewrite one of two programs.
One program is 100 lines of code, the other program's a million lines a code.
And we all know we choose the 100 line program, right?
So lines of code, not a good measure, but I mean, it's something.
With a gross margin of error, that's a start.
So it was there.
It was OK.
Function points, something that we tried in traditional software development.
function points were meant to be a measure of the number of inputs and outputs and data tables accessed, things like that.
Well, the more inputs now outputs to a program the bigger the program is.
These are measures of size.
They didn't work out too well.
In Agile, we do it a different way.
We have these units, story points and ideal days.
I had two different units.
So I want to start out with storypoints.
Let's see what storypoint are all about.
Storypoints are a relative measure of size.
They are absolutely an estimate of how long something will take.
Some people try to make story point harder than they should be by renaming them.
They'll call them complexity points.
Maybe story point sounds too silly.
Sounds like something you do when you're eight or something like that.
So it's got to sound fancier.
Let's call it complexity point.
And this is a mistake.
This is mistake, I don't want you to do this.
Story points are still about how long something will take.
Complexity is factor, but it is not the only factor.
Now let me give an example.
Suppose we go outside.
It's a beautiful day out there.
I took a chance during lunch to walk out and just enjoy the day for a few minutes.
So we got outside, and there is a building over here on my right.
And I point to that building and say, that build will take us one unit of time to walked to.
Don't mean one minute or one hour, just one of unit time.
That building, over there, is about twice as far, it's going to take twice long.
The building will takes two units of times to get to, We're estimating time.
Now one of the things that's nice about story points is that that relationship is true.
One unit of time, two units of times to get to that building.
For you, you're going to walk there.
You're able-bodied, and you are going walk over there, I'm on crutches.
I have to hobble over on my crutches.
Well, even on my crutches, that building will take twice as long as that.
So one of the advantages here to story points is they let people or teams with different skill sets put the same relative numbers on things.
I like to run.
But I'm a horrible runner.
Suppose one of you is a good runner.
I'm a horrible runner, you and I go out to the start of a trail.
And I say, that trail's 10 minutes long.
You, a much better runner say you're crazy.
It's a five minute trail, and so we argue.
Five, 10, five, ten.
There's nothing you can do to convince me it's five minutes.
Oh, I can't run it that fast.
Maybe I could convince you to take 10 minute, but that's not a real good answer, right?
Maybe we agree on seven and a half.
That's probably the worst possible thing.
Now we got an estimate that's no good for either of us.
So we keep arguing, 510,510. We keep going, and you eventually say to me, Mike, it's a five-minute trail.
It's one kilometer long.
I say, you're right.
Its one-kilometer long, going to take me 10 minutes.
Soon as we put a size on it, we could agree.
And then we look at some other trail, And I'm looking at that trail thinking, wow, that one's going take twice as long!
That trail's gonna take 20 minutes!
And you're looking at it thinking, wow, that trail's twice as long.
It's going to take me 10 minutes.
Well, we can both agree to call that trial a two.
If the first trail is a one, the trail a is two, right?
So story points are still about relative size, not about complexity.
But I said earlier, complexity is factor.
Let me show you what I mean by complexity's a factor, remember our two buildings.
That building's one unit away, and that building is 2 units away.
Behind me is another building.
It's the same distance as the two-unit building.
The same number of steps, same physical distance, but there's train tracks.
And I've got to wait for the train sometimes.
I walk back to that, I go to the building, and every now and then there are train track and the trains going by.
and I'm stuck standing there waiting for a train to go by I don't want to call that one a two then, because sometimes when I got there it takes longer.
Sometimes it's a lot longer, so I'll call it a three.
It's the same physical distance as that building, but sometimes it takes longer, so I'm gonna call it a three.
That's not really an example of complexity, it's an examples of risk or uncertainty being a factor in our estimate.
Complexity, risk, uncertainty, things like that will influence our estimates, they're not what we estimate directly.
I had a class, give me a great example one time, a few years ago.
They said you have a two person team, doctor, brain surgeon, and a little kid.
I don't know why they're on the same team, but they are.
Brain surgeon and a little kid are on a team.
We have a two-item product backlog.
Perform simple brain surgery.
Snip, and you're done.
And lick 1,000 stamps.
Those two items, perform simple surgery, lick a thousand stamps, are chosen to take about the amount of time.
If you disagree, add or remove stamps and make it more stamps if you want.
Those two things should get the same number of story points.
If they're going to take the amount of time, they should the get same the number story point.
Because we make the simplifying but realistic assumption, the right person for the job will do the jobs.
We're not going wait for a little kid to finish school, finish university, finished med school.
Then do their brain surgery, right?
We'll be dead.
So the person right for job, will the do job.
In that case, those two thing get to same numbers storypoints.
Complexity is a factor, but it's not the only thing we're estimating.
Now with StoryPoints, I want the basic math properties to hold.
That always sounds complex.
It's like, oh my gosh, you're talking about math property in the afternoon.
All I mean is stuff like 5 plus 5 equals 10. I what the product owner or key stakeholder on a project to be able to look at it and go,
OK, my team tells me there's room for 10, what do I?
Oh, no, this one 10 point story.
No, I don't.
I want these 5 2s.
No.
no, no.
i want this 1 5 and these five 1s, right?
Anything that adds up to 10 should be about the same size.
That's all I mean by basic math property you should hold.
5 plus 5 equals 10. Either of those should take the amount of time, OK?
These are weird.
Story points are very, admittedly, weird I'd like to have you leave here thinking they're not so bad, though.
So what I want to do is if story points or weird, I wanted to you do something even weirder.
We're going to estimate in zoo points.
What I'd like to have you do is, in the brutal groups you were in before, maybe adjusted by new people who have come in,
or left, what I would like you to do, is estimate in zoo points.
Where a zoo point is a combination of how much of the mass and the volume of an animal.
How much animal there is.
Now a giraffe is pretty tall, but they're kind of skinny things, compared to something like a rhino.
So how many of animals there are.
Mass and volume somehow combined together to make up a total zoo-point.
So talk about this in your group.
Here's eight zoo animals for you.
See what you can come up with in terms of zoo points for those eight animals.
May not have given you enough time to do the whole thing there, but good enough to at least kind of start to get a feel for this.
Did any group get far enough along that we can start use your numbers just as an example here?
Yeah, thank you.
What did you put on our first guy, our lion?
Okay, so lion a one, everybody okay with that?
No?
Woo.
Yeah it's hard to be wrong on the first one.
That's actually a key point, right?
You can only be wrong here in comparison, when he says Lion's a one and Hippo's half.
OK, now we got an issue, but you can't be on the first one.
So let's go with Lion.
We got Lion as a 1. What about a kangaroo then?
OK.
so we're saying here, Lion and Kangaroo about the same overall mass and volume.
Seems OK to me.
You never see them together at the zoo.
I guess if they were together, one would be eating the other.
That's why you never seen them.
What about rhinoceros?
OK, so rhinosceros of five.
Rhinocerous about the same as five lions.
Picture five lion together.
Maybe a little bigger, I don't know.
Seems close.
Bear.
So a bear is a little bit smaller than a rhino.
I was thinking about those Australian guys.
Koala bears.
You're probably thinking of a big ice bear or something, a four.
All right, so here's one of the key things here.
Did everybody know there's multiple sizes of bears, right?
Everybody knew there were multiple size of bear, all right.
So I know koalas aren't really bears.
They're marsupials, whatever a marsubial is.
But I don't know.
I just know they are one.
One of the key things to do here is, if you have something like this, what I gave you was a vague requirement.
I give you a big requirement, one of best things do with the vague requirements, ask your product owner for clarification.
Nobody asked me, and I know it's kind of hard in a group like, this nobody asked, hey what type of bear?
Another thing to, do and here's actually I will give, you the fifth word that I teach in my one day class, use a range.
Range would be that fifth, word.
Anybody remember the first four words?
Something to do with size and duration, right?
Estimate size-derived duration.
What I'm talking about there is estimate how long it's going to take to read Harry Potter by estimating the page count, then deriving the duration by actually
reading for an hour.
Estimating size, derived duration in separate steps.
Fifth keyword of advice, use a range.
So it might have been better off with a bear here saying something like, oh, there's those koala bears.
Let's go with one to four.
Now I won't go through the rest of the numbers here, but I want to mention I forgot to add one animal up here.
And I don't know if he's really a zoo animal.
But I did want put one more up there and forgot type him onto the slide.
Blue whale.
Anybody have an idea what you want?
One gazillion.
There's always a good estimating technique to use a meaningless unit.
And hope your product owner doesn't know.
So I got to share with you an old joke then.
This is a joke you probably haven't heard, because this is joke that was popular in the US about six, seven years ago.
I remember we had President Bush six or seven year ago, and there was a job that he was getting briefed in The War Room that that his secretary of state
was debriefing him on some activity and said, well, you know, overnight we had some conflicts and we have three Libyans died and a Brazilian died.
And President Bush is really sad about these people dying and he goes, remind me again, how many isn't a Brazillian?
Right?
So use meaningless units as one estimating technique.
So this is what a story point is about.
A story is only meaningful in a relative manner.
Five is twice as big as two and a half.
5 is half of a 10. Story points are relative.
I made the point here about the blue whale to point out one key thing about being good at estimations.
No matter what unit you leave here with liking, I want you to be good estimators.
A key step in being a good estimate is to stay within about one order of magnitude.
We could have argued about this, and we could argue about is a tiger bigger or smaller than a lion, things like that.
But there's nothing we can do to put a number on Blue Whale.
It's just too out of the realm here.
All right, we're good in about 1 to 10, one-order of magnitudes.
If we get out one of order magnitude, We are no longer good estimates.
Plenty of studies that show this.
So you want to have the bulk of your product backlog, the book of requirements, whatever you're estimating, be in about one order of magnitude.
You get outside of there, start to get nervous.
Key tip in getting good at estimations.
Now this was probably hard to start with.
It's really hard to start with.
What do we call the first one?
How do get going here?
It doesn't bother me if this technique is hard start because it's easy to continue with, it is easy continue.
Suppose we had our numbers up here, actually let's go with it, what did you have on Tiger?
You had one on Hawaiian, Tiger is probably the same?
Two, so Tiger bigger than Hawaiian.
Okay, fine with me.
what would you put on cheetah?
Or how would you estimate cheetah, right?
You'd look at your other big cats, and you'd make an adjustment from there.
You might say, oh, yeah.
Cheetah's a little bit smaller than a lion.
Let's call it 3 fourths or something.
So we can estimate relatively gets easier over time.
The more items on your backlog, the easier it is.
Because you're not going back to first principles questions.
Your just looking for something similar.
I got cheetah estimated.
Now jaguar comes along.
OK, how big is a jaguars?
Oh, it's about the same size as a cheeta.
Whatever number I put on there, I'll put it on this.
So estimating relatively gets easier over time.
The other unit favored by agile teams is something called ideal time, Ideal time is the amount of time something will take if three things are true.
It's all that you work on, nobody bothers you, and everything you need is on your desk when you get started.
This is clearly why we call it ideal time, right?
This stuff never happens, all right.
But the point with calling it ideal time is to think about how long it would take if everything went well.
Isolate yourself from distractions, interruptions, everything else.
OK, if this is all I did, I could be done with this in three days.
If I drove from here to Paris, could I be there by tomorrow night?
Well, I'm not going to get there by tomorrow night.
I have to stop some bio breaks, some meal breaks.
So let me make it this long.
How long would something take if that's all we did?
The best example I can give for ideal time is to think about something like American football.
Now, I know everybody here has not seen that, so I won't use that one.
But if you have ever seen an American Football, start to kind of mentally switch this example to an America Football game,
and you'll see why it's such a great example.
I'm going to actually use my favorite sport, which most of you, for sure, have seen, basketball.
I love basketball.
So if we think about a basketball game, if I were to go to a baseball game and I tell my wife, I'm going to the game.
International basketball games is four 10-minute quarters.
I'd tell wife I am going the basketball, game I will be back in 40 minutes.
She's going to be a little mad when I come home two, two and a half hours later.
So that game is not going be 40 minutes long.
Clock stops, all sorts of things like that.
Now, football, this isn't the best example because the clock kind of keeps running.
But American football.
Those of you who have ever seen a game know the clocks stops all the time.
The American Football game has 60 minutes of actually playing time, players are running around for 60 minute, but the game takes three and half hour.
At a basketball game, they're running for 40 minute but they game take two hours.
So we can say the ideal time of a basketball game is 40 minutes, but the elapsed time is longer.
The elapse time, it's more like two hours.
So, we have a difference here between elapes and ideal times.
I might look at it and say my Monday work day has eight hours, my work week has 37 and a half or 40 hours but that's not what I'm going to get.
I'm going to come in to work, and I have to answer email, do all sorts of other things, meetings.
So there's a relationship, a ratio here between elapsed and ideal time.
They're not going be the same thing on a project.
Now when we estimate in time, this actually creates some problems, because sometimes your boss walks in and says, when will you be done?
Or I say, how long to read the Harry Potter book?
And you say 20 hours.
Wow, 20 hour?
You're going have your hands on the book for 20 No, no, I meant I'll be done 20 hours from now, because I also got to sleep tonight and things like that.
So we've got be careful with time as an estimating unit, Because sometimes the boss or client is asking for an elapsed time estimate,
and we're giving back an ideal time estimates.
There's a little bit of room for confusion there.
We've gotta make sure we are using the same unit.
This is back to that point about estimations, size, driving, duration.
Sometimes we were being asked for estimate of size and give back and estimate duration, so it causes confusion.
I like story points.
Most Agile teams use storypoints.
A couple of key reasons why I liked story point.
Story points are additive.
Time is not.
This is back to the example of you and I going out for a run.
And I say it's 10 minutes, you say its five minutes.
If we put your estimate on some things and my estimate other things, we can't add those up.
You're estimating in your time.
I'm estimatin' in Mike's time, they're not the same.
Story points are additive.
They let people with different skill sets use a common unit.
We can both agree that running that trail's one point, running out of their trail is two points.
Another advantage with story points is they help avoid a problem with what I call unit confusion.
Let me show an example of what mean by unit conclusion.
Suppose we have this.
I had this picture up here earlier.
We had a product backlog, and we had an iteration or sprint backlog.
If we look at that product back log on the left, we've got the 30, the 50, to 50. And then we run a sprint or iteration.
The team turns the work into the working iteration, And they estimate the hours they run the sprint iteration on their right.
When we get to the end of that first iteration and somebody says, When will we be done?
When we'll we done.
Well, let's do the math.
Let's figure out when we're going to be.
Done we figure.
Out how many hours are left on the project we add up the numbers on.
The left 50 50 20 and 20 that 30 is done so we just add.
Up the other four we said we got 140 hours left.
On the.
Project okay well how long does it take us to 140. Hours we.
Add up.
the Numbers on their right 12 plus 8 plus 4 plus 6 plus 5 we had that up it equals 35. I've obviously contrived the numbers here to make the math easy.
I divide 140 by 35, and I say we'll be done in four sprints or four iterations.
No.
It's wrong.
What we're doing there is bad math.
We're literally dividing apples by oranges.
All right, we are doing bad maths.
Those numbers on the left, let's not call those hours.
Let's call them hours we pulled out of the air.
Because a team, on average, is going to spend two or three minutes estimating those.
In a couple minutes, I'll show you how.
A team is gonna spend 2 or 3 minutes estimated those anybody who's ever done a Scrum or Agile project knows sprint and iteration planning,
long and painful.
So let's not call the hours on the right hours.
Let's call those hours we thought a lot about.
Those are painful We cannot divide hours, we pulled out of the air by hours We thought about, it's different numbers.
If you're experienced with adjunct, you might have noticed the little trick or the problem that's occurring here.
I have to be consistent in the units that I use.
If I say we have 140 hours left, that a true statement.
On the left it's 140. But I need to divide that by something.
And I don't divide it by the 35 that get by summing up the things on the right.
Anybody know what number I should divide by?
The 30 on left.
The 30 on the left turned into 35 hours.
But before I got into that work, I thought it was only 30 hours, right?
Well, before i get into the 140 hours of work I think it's 140. I bet it is going to expand too when we go to do it.
So we have to use consistent units.
Now when use story points here instead of hours or days, when you story point here, we change those to points, We're not likely to do bad math.
Somebody's gonna add this up, and they're gonna say, okay, when are we done?
Okay, let's add up the numbers on the left.
We got 14 left, how fast do we go?
Well, we can go 35 hours.
14 points divided by 35 is, whoa, I can't do that.
How about 14 point by three points?
Oh, it will be done in five sprints.
I maybe seem like I'm making an esoteric point here.
It's actually a key point, because when I see this, They're almost always one to two sprints late in delivering their project,
because work expands when looked at in detail.
That 30 later turns into 35. So I want to get a chance to practice estimating here with a technique called planning poker.
Planning poker is a consensus-based approach to estimatin, very loosely based on wideband Delphi approach, which came out of the Rand Corporation in the 1940s.
The idea here is our product owner walks into the room, reads a user story or product backlog item to the team.
Team members talk about it.
Each team member is holding a set of cards.
We'll pass out a bunch of card so you have some to do this.
Each teamwork is a holding bunch a cards with the estimates on there that we have pre-agreed to use.
Remember we're outside.
That building is one unit away, that building's two units away.
I point to another building off in the distance and I say, That buildings is 17 units way.
And you tell me, no it's not.
It's 18 units a way What a crazy debate.
17, 18, 17 18. Who cares?
We're not going to be right.
We can't distinguish those numbers.
They're too close to one another.
So we're going not to use both of those number.
If we pick one, we wouldn't use the both.
All right?
So the way planning poker works, each person has a deck of cards.
Each person listens to the product owner or key stakeholder.
The pick a number indicating their estimate.
all at once, the estimators turn their cards over.
if every estimator has the same number, write that number down.
we are done.
If we don't, the outliers talk about it.
They argue.
Here's why it's big.
No, here's it small.
Let's say we get them in the room, and they start estimating.
And we'd get, in this case, two fives and eight and a 20. I would ask the outliers, I'd ask Johannes, why a twenty?
Oh, this is going to be huge, i'm going have to do such and such, it's going be hard because of this.
and I ask Anna Ertrond, Why a five?
What's gonna make this easy?
And they'll tell us why it is gonna be easy.
The next round.
People change their opinions.
We get, in this case, three 8s and a 13. I'd ask Johannes again, come on, you're the high number.
Why?
Convert us.
Give us a reason to convert.
All right?
I was with a team recently in Atlanta in the US.
They had all 8's 113. The guy with the 13 gave the reasons.
In the next round, everybody switched.
So notice it's not a vote.
we don't, this in case say the 8 win.
You repeat until we come to consensus.
OK?
The consensus may be a little false.
A couple more rounds after this, Johannes may say something like, You want an eight?
Here's your blankety-blank eight.
He'll probably add something like, but remember this day.
Some of you have worked with him.
Reserving the right to remind us when he turns out to be right.
So I don't need him to go to his grave defending an 8. I do need to fold eventually and go, OK, you guys have heard me, I still think it's bigger,
But I'll go with an eighth on this.
We've got to get to team consensus.
Yeah, so the question is do I go to an average?
This is always a tough one for me.
I'm okay with you doing that, okay?
I totally am.
Here's the problem.
Each team has to figure out a way to come to agreement, right?
i don't want to be the one to say, hey, everybody in the world, here's how you should do it.
Some teams choose after three rounds, they pick the high.
Other teams after two rounds or three runs, the pick low.
other teams will pick average.
I do want to caution you a little bit with going with the average, because I think a big part of the benefit here is the fierce debate and the arguing
and trying to convince each other.
And some teams find it just too easy to just, OK, we'll just go with average and they miss out on a lot of debate.
It's not that the debate is that great, it's that debate what brings out all the hidden assumptions.
I think it's big because we have to do this.
Oh, I hadn't thought of that.
You're right.
It is bigger.
And so I don't want to cut that debate short.
So if you feel like your team is still having good debate, this is a quicker way to end.
I'm fine with it.
Right?
So I want to give this a practice try here.
Here's my recommendation, two tips.
One tip and one recommendation.
Think of the numbers as buckets of water.
OK?
I'm going to you cards here, you can see the number I am going give you up here?
For example, an 8 and a 13. Maybe even better, buckets a beer, right?
If I give an eight and 13, and you've got a backlog item, if you want call a 10, The 10's got to go in the 13, right?
Imagine you have an 8-liter bucket and a 13- liter bucket.
You've got 10 liters of water.
It's gotta go into 13 liter buckets.
So we're gonna have a slight rounding up, a slightly pessimistic bias, we would call this in estimating world.
Slight pessimist bias here.
Now here's my recommendation on how to get started.
With the zoo animals, I didn't care.
There was not very many of them, it didn' t matter.
Here's recommendation in real world, look for a 2, Look for 5. Right?
Remember, we're only good about 1 to 10. I'm going to consider 13 to be close enough to honorary member of order of magnitude.
But we are only going across about one to 13. So look for a 2. Look for 5. Don't necessarily play planning poker on those.
Just somebody on the team says, that one's a two.
Okay, or you're crazy, this other one's a two.
Once you find your two, look for a five, something about twice as big.
Then kick in with planning poker.
So I want to give us a chance to try this.
We don't have a lot of time, we'll do this for about 10 minutes, so we will just wrap up for just a minute at the end.
I'm going to pass out a bunch of planning cards, I've got big boxes of them.
Everybody take two boxes, that way when you go back to your team, they'll have enough for eight people, plus we'll add extras up here.
But everybody take to boxes as we get these passed around quickly.
I've got your back log on the next slide, it's also what I passed it around, so you have it on a handout, because you might need to write some of the numbers down,
unless you got a good memory to remember them all, okay?
So, form back into your groups, look for a two and your five, while you're doing that, I'll pass around a bunch of cards,
everybody takes two decks out of, two box out here, OK, let's come back together just for one minute to wrap things up.
Apologize for taking it right up to our one hour limit.
Hopefully that went OK.
Planning poker is really tough the first 20 minutes or so.
So this probably didn't start to feel real good yet.
But I do encourage you to check this out as a technique back in the office.
I think this is a great way to do this.
Two last things here.
My got tired of not having a good answer for distributed teams a while ago, so I programmed up and got one of my My programmers,
to help me, we build a website for distributed teams.
You'll log in here, you get a private URL, and you can share it out with your team.
All the cards flip over at the same time, so nobody can cheat.
Makes it nice.
So check that out if you've got a distributed team!
I'm back here every three months or so doing training sessions for Programming Up to Clean.
If you're interested in Scrum or Agile stuff, I'll be back every few months.
Thank you all very much!