Agile and Scrum Videos

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

All Videos

Need Some Project Cushion: Add a Time Buffer Where It Counts!

Transcript

When working on a high-stakes project, it can be useful to add a buffer, but add the buffer to the overall deliverable rather than to every sub-step you
or a team will take to get there.
Let me illustrate this with a simple example.
I'm planning to meet my wife for lunch today, But before doing that, I want to drive to gym, exercise, relax in the hot tub,
shower, shave, get dressed, and then drive the restaurant where we're meeting.
I should add a buffer to the overall set of tasks I just described.
Suppose everything I listed will take two and a half hours.
Maybe I add 15 minutes of buffer and start driving to gym two hours and 45 minutes before we're planning to meet.
I've buffered what matters, getting to restaurant on time.
Don't need to buffer each individual task.
And don't think driving the gym usually takes 15, but to be safe, I plan on 20. My wife will care if I'm late meeting her for lunch.
She won't care whether driving took 20 minutes instead of 15. So I need to buffer what matters, the overall duration of the morning that includes driving,
exercising, and so on.
On an Agile project, management should not care if one product backlog item takes longer than expected.
And they definitely shouldn't care, if 1 of the many tasks needed to deliver that product back log item, takes long than they expected Testing taking 12
hours instead of eight should not matter to anyone.
That's like my drive to the gym taking longer.
Who cares?
Unfortunately, too many managers and leaders do care.
They micromanage.
And this creates problems.
If I know a manager is going to yell at me if I take longer than expected to code something, I'm going pad my coding estimate.
If my manager's going be mad if a product backlog item takes longer that expected, a pad the estimate for the product back log item.
In the larger picture, being late on these should not matter.
A task or backlog item that takes longer than expected should be offset by another that take less time than is expected.
Managers should instead be concerned with the team's larger objectives.
Will the teams, for example, be able to deliver in six iterations the functionality they promised, which is needed to achieve some business result?
That matters.
And if a plan to deliver that needs to be communicated or there are significant downsides to being late, you might want to consider adding a buffer to
that plan.
When necessary, buffer what matters rather than the smaller components of that.
If you found this video helpful, please do me a favor and hit the like button.
It really does help YouTube know to show the video to others.
And click the subscribe button if you'd like to be notified of future tips.
Thanks for watching and I'll see you next time.

New Scrum Master: 4 Tips to Avoid Traps

Transcript

Beginning an assignment as a scrum master is exciting, but there are four traps into which I often see new scrums fall.
The first is thinking one size fits all.
I recommend new teams or scrummasters begin by the book.
Do Agile in some known, proven way.
That may be following the Scrum Guide, a trusted book on Agil, or what you learned in a class.
However, over time, it is a critical success factor that the team owns its process.
The way to do that is by experimenting with small adjustments to whatever agile framework you use.
Keep the experiments that work, toss away those that don't.
The best way to avoid a one-size-fits-all mindset is to look for good ideas in all the various agile frameworks.
Start with Scrum, Kanban, XP, Safe, or whatever you want, but remember to inspect and adapt, mix and match, to make the process the team's own.
A second trap I see new Scum Masters fall into is thinking they alone are experts at Sc rum.
A scrum master may have been a team's only expert in the early days of Scrum, but Scum and Agile are pretty prevalent today.
Almost every team will have at least one person with solid Sc rum experience.
Rely on these folks.
If you're new to the team and they aren't, ask them to share with you what has and has not worked in A third trap is falling back into the activities of
your prior role.
I see this all the time.
One scrum master, Tice, told me that he reverted to his programming responsibilities because he was not initially comfortable with everything expected
of him as a scrummaster.
He said it felt good to do something he knew he did well.
If you've been promoted to Scrum Master and told to continue doing your old job, then you need to do so.
But avoid falling back into old habits merely because they're comfortable or to improve your feeling of self-worth.
A final trap is not becoming an expert on your product.
During a meeting, I was embarrassed for Annika when stakeholders asked her how certain features worked and she couldn't answer.
She'd anticipated the product owner being present at the meeting but something came up and the Product Owner could not attend.
Annica was left alone to discuss recent changes to the system with stakeholders.
No one was expecting her to know the product as well as the Product Owner, but her inability to demonstrate the latest features hurt her credibility.
You don't want to be a scrum master who doesn't know how to use the product you're helping a team develop.
A new role can be intimidating at first, but by avoiding these four traps, you can help your team succeed with Agile.
By the way, if you want get beyond just avoiding traps and really excel in your scrumm master role, consider participating in one of our Certified Scrum
Master or Advanced Certify Scum Master courses.
I've put links in the description.

No Estimates: Fewer Estimates. Better Decisions: Agile Planning with Mike Cohn

Transcript

Welcome back, Agile Mentors.
We're back for another episode of the Agiles Mentor's Podcast.
I'm here as always Brian Milner and I have the original founder back with us, Mike Cohn.
Welcome, back in Mike.
Hi, Brian.
It's good to see you.
Really glad as all as, always to have Mike here when he can make time for us because Mike has so much wisdom and knowledge to share and especially on the
topic that we have for today.
we wanted to talk here in this new year a little bit about estimating and planning and really kind of dive into that topic in general and why that still
is important, why it still matters here in our current day and age.
So I guess, Mike, I'll start with this.
I know estimations is sort of an emotionally charged topic a little bit.
Why do you think it remains such an Topic in the agile community and just in teams when it comes up.
That's a good question I made a silly little YouTube video years ago where I'd bought a Styrofoam 5 and I think a styro foam 8 They were pretty big big
styrophoam numbers out there for like, you know kindergarten rooms or something like that and with this video of a guy dressed like a manager beating up
a developer with the 5 in 8 that were representing estimates right and i think apart of it is because That's most developers experience with estimates,
you know, they give an estimate and they're beat up with it.
Right.
You know you're wrong and you can't win, right?
You, know.
you've given estimate, and if you make it, nobody says good job or just go on their day.
And if.
Miss it you get beat.
Up with.
It right.
So we were beating people up.
With these styrofoam numbers.
and so it becomes this very emotionally charged thing, because I think a lot of developers don't see.
you know, what's in it for me, right?
What's it in for you with an estimate?
And so they're just kind of get opposed to it and they've been beat up by too many bad managers with estimates in the past.
Yeah, I try to explain that to people in classes sometimes that, you know, as a developer, or as past developer I know like we're always looking for the stick,
right?
The stick is around the corner and we don't know how far around that corner, but we know that we are going to get beat at some point and were just a little
leery that this might be just another way to facilitate the beatings, if you will.
Yeah.
Um, I know one of the, there's a lot of different thoughts and opinions on this in the agile community.
There's the no estimates movement and planning, that kind of thing.
What do you notice that people are reacting really against when they, they argue for those kinds of approaches?
I think they're a reaction to excessive estimating, excessive planning.
And I've written about this essentially probably since my Estimating and Planning book and talked about it at conferences since the early 2000s,
that you want to estimate so that can make a decision.
You don't estimate just for the hell of it.
I mean, estimations can be a useful activity.
Planning can useful, but they can very easily cross over into waste.
And I don't want to have a team spend time, waste time estimating just so the boss has a number they can beat us up with later,
right?
Or so, the Boss can, you know, sleep at night, Right?
You know?
And the BOSS probably was a developer who was asked to estimate when he or she was younger.
And now they ask their team to estimated out of habit, and no, estimate so you can make a decision.
If no one is going to use the estimate to make the decision, then don't estimate, right?
It's a waste of time.
And that's where I'm on board with the no estimates thing.
A lot of the, no-estimates people are, I don t know, it's the world's most clickbait title because it s not really about no estimate.
It s about fewer estimates in most cases, and totally, totally on-board with that.
Estimate to make a decision.
Don t estimate just to have a number.
Yeah, I remember years ago that I actually went to a local meetup group here in my home area and Woody Zool was there and he was talking about the no estimates
kind of approach to things.
And I remembered thinking, oh, i'm ready to fight this guy.
Like I had never met what he before for, and I thought, you know, am an estimates kinda person.
I think estimates make sense and i am ready, to have that discussion.
Right.
But, and then, then Woody comes out and he's this nice guy.
It's like everyone's grandfather.
He's just as kind person.
One of the kindest people I've ever met.
And he starts talking about it.
I remember writing in my notebook from that session.
That it seems to me like the, the S the sum of this is really estimate when there's value to estimating.
Yeah.
Yep.
Hashtag fewer estimates doesn't go anywhere.
So it's a click baity thing to get attention.
And that's fine.
I mean, Kent Beck acknowledged when he called it extreme programming, that it was going to give a lot of attention, right?
That was why he named it Extreme Programming to Get Attention on his process.
Um, so there's no problem with that, but you know, it does harm when people don't really understand the nuance and think that that means we throw all estimates out.
Estimates can be helpful.
We just don' want to overdo it.
Yeah, kind of like it wouldn't be quite as much of click bait to say Agile is done wrong.
It's much better to Agiles dead and then I'll explain to you why it's really just Agil done-wrong.
Yeah.
Well, back to thinking here about estimation a little bit.
I know that you've been talking about this for a long, long time and this has been something that has evolved a bit and I want to kind portion of this
show to talk about really how thinking on this has evolved over time.
So how's your thinking, on estimating and planning changed over the years, especially recently?
There's been a number of things.
When I wrote my book on Agile Estimating & Planning, I rode it with, there were two chapters kind of in the middle.
One was about story points, one was estimated in ideal days.
And I was totally open through the rest of the book, either of those approaches working well for estimations and I've really switched around on that where
I don't think talk about ideal days is a valid approach because it just leads to too much confusion over who's day and things like that.
And so I like the abstraction layer of a story point.
I think one of the mistakes I made in that book was not being clear enough about what story points really are.
You know, go over it again and again to really make the point clear.
And it's led to a lot of confusion where people just think, you know story point is a day and, and crap like that.
That's really caused a a of harm in the agile world.
I'll go into companies.
Oh, we do story points.
You set one story a point equals a.
And it's like, no, she can't do that.
And we were trained by somebody who said they read your book or something.
Um, and it definitely does not say that, so, um, I've become more adamant about, trying to help people understand what story points really are.
and they're a measure of effort where effort is defined as a combination of complexity, risk, uncertainty, volume of work.
We've got to mix all four of those factors together and come up with some sort of effort estimate.
And that wasn't clear enough in some of my early writing.
Another big thing that I've changed in how I think about estimating is a little bit more tactful about sprint planning.
I was pretty adamant for a long time.
And I think I can, maybe I'm just rationalizing, but I was pretty adamant for a long time about how teams should create a sprint plan that included a list
of activities and, and quick estimates, often referred to them as just guesses, But an estimate for each of the activities on a Sprint Backlog.
And, I am quite open these days to teams not doing those estimates of Sprints Back Log items.
I still do recommend teams start with estimates on their Sprits Back log items until they prove to themselves they're good at it.
But once you're good at it, you don't necessarily need to put a number on there.
But I never intended those numbers to be much more than guesses, right?
They were literally 30 second things.
They weren't like big discussion estimates.
Yeah, by the way, I don't think I've mentioned this yet, but if you're listening along to this and are interested in this topic,
we did put together a PDF for this episode as well that you can download.
Look in our show notes.
It's really kind of a field guide to estimating and planning here in 2026. So just know that that's there in Mike, I agree.
I think there's an aspect of this that when it comes up in classes, actually have started begging people to kind of do something here.
And that is that if you're making that connection, if your organization has a story point equals this amount of time, no matter what that,
is hours, days, whatever it is, my ask, My beg that I make in class is just estimate in time.
Yeah, absolutely.
I haven't had anyone.
And so this is a challenge to the audience here.
If anyone knows of a benefit of making that conversion, then please let me know.
But I don't know what the benefit is.
It's just confusing to developers.
Hey, this going to take me about, I dunno, 10 hours.
Story point equals six.
Let me do the math.
I just don' know the benefits.
There is no benefit.
That's just extra complexity, right?
If you're estimating hours, just use hours and don't be apologetic about it.
We're estimated hours.
And that can work for some teams.
Where that becomes a problem is when you have the superstar and the junior intern, Because the superstar says two hours,
the junior intern says, two decades, right?
I mean, you know, they're just not going to agree on if he's that bad, if she's bad about whether or not our junior interns.
But you, know if somebody says 2 hours and somebody else says 20 hours.
How are they going come to agreement?
Right?
They can't, but the Superstar and the Junior Intern can, we're dealing with the extremes here, look at things and say this thing will take twice as long
as that other thing, and that's the benefit to points.
Absolutely agree.
Well then let's reframe it a little bit.
Let's refrain estimation.
If it's not really about prediction, what would you say it really is for?
What do we use estimation for.
To make the decisions that we've talked about, right?
You want to estimate so that you can make a decision.
Put a product backlog item and we call it three points.
And the product owner says, three point's cool, I want that thing.
If we had said that thing was 20 points, the product owner might say, nah, that's too much.
It's not worth 20 point.
And so that quick estimate on a product backlog item lets a team know, or lets the product owner know how much they want the thing,
right?
It's desirable, but not at that price, I'd like a Ferrari, not that at price.
So it helps us make those decisions.
We put a estimate, if we do it in sprint planning, we put an estimate in a sprint backlog, say a programmer says, eight hours and the tester says they'll
take 12 hours, the programmer might say, wow, 12 to test that, you know, is there anything I can do to make that easier for you to.
Well, if you coded me a couple of hooks, I could cut the testing time in a fourth.
Oh, let's code those hooks in there.
And we add an hour to the programming time and we cut testing by 75%. So those estimates can help us make decisions.
Yeah, I agree.
And I think that's kind of the focus is on the purpose.
What are we trying to accomplish with this?
And if it's to make a decision, then yeah, we should keep that as our central focus.
Is it possible then to That's a great question.
And it's the subtle one.
This is where I will have arguments to people that are kind of opposed to estimating.
They'll say things like, oh, no, we don't estimate.
We make all of our product backlog items the same size.
Well, think about what's going on in someone's head to make all their backlog items the same size.
They're looking at a new item and saying, is it the I mean, we're estimating all the time.
You know, you and I scheduled time to do this podcast recording.
I had a doctor appointment about a half hour away from me this morning before we started recording, I have to estimate how long would my doctor take?
How long it would take me to get home?
Things like that, right?
So we are estiming all of the times.
We don't often talk about the estimates, they're just implicit in our head, but I don't think you can get away from estimating.
You're doing it implicitly, whether you want to admit it or not.
Yeah, I agree.
And I've talked to some of those people who do that same thing, who say we get it all down to the same size and so everything's a one.
My response generally is, well, that's great.
I mean, if you can do, then I think there's value in being able to do.
That I can only speak from my experience.
haven't worked on a team where we've been able get everything to same.
There's just always some things that are bigger than others and we can't split those things further.
So that why for me, estimations better.
I mean, if I was on a team where we could get it all down to one, great.
I don't have a problem with that.
But I'm with you, I'd rather have the thing where say, okay, everything's one to five, right?
If that's what we want to do, we wanna target things that are twos and threes, of course we have trivial things, let's call them one.
Of course, things are a tiny bit bigger, will come fives.
That'd be a better approach to me.
It'd faster, be faster.
Yeah.
Well, that leads us to kind of another big area because I know one of the things that people often talk about with estimation and planning is that it is
maybe it's anti-agile, you know, like it keeps you from being adaptable and it''s framed in that kind light of it being an obstacle to being adoptable.
Do you think that's actually true?
So it's a good observation.
Some of the early days of Agile, there was a lot of talk about what do we call the enemy, right?
And some of it was, you know, it, was Agil versus plan driven.
It was agile versus waterfall, what, do, we, call, the opposite and plan-driven was one of, that was discussed.
And I don't think we want to be plan, driven, I mean, when I'll be driven by the plan.
But I think a reasonable amount of planning, and again, it can easily be overdone, a reasonably amount planning improves our agility or our adaptability.
You know, think about a team that's planning to summit Mount Everest, right?
They have no idea when they set out all of the conditions they're gonna face, right?
And the troubles that they are gonna have, the obstacles they gonna encounter.
And so they plan, they planned that the trip up the mountain might take longer than expected.
They plan by taking extra supplies that can use on the way down.
So that planning improves their agility and improves the ability to adapt to the condition.
Yeah, I agree.
It's kind of like this concept of the sooner we know about a problem, the more options we have to actually address that problem.
And I think that's one of things that this gives us in that kind planning is that if we kind can look ahead and see, well,
this is a potential issue.
Well, now we can have more possible avenues to solve that rather than when we're right up against it, there's maybe only one way to deal with it.
Absolutely.
Well, I know one of the other areas that, that's kind of, the hot button topic, or I hear this talked about quite a bit.
I get asked about this in class is kind flow metrics.
And I, know that that is a popular thing right now.
So I'm sure people are kind, of interested in your thought on that.
From a flow metric's perspective, what do you think it does well or what are you thinking it struggles with and falls short with as,
as a way of planning?
I think tracking your flow is a great thing to do.
I don't think it should be the only thing you do when we have novel work, when were doing something that's completely new.
There's extra complexity there and I dont think the flow metrics handle that as well.
um so having you know having kind of more traditional metrics having estimates and you're balancing them out right with the flow metrics is going to be
the way to go you this is the thing with any sort of metric or measurement you never want to rely on just one thing right think about you get on an airplane
you look up and see how many controls or gauges the pilot has like, holy cow, right?
You wouldn't want to fly a plane with one gauge, or you want.
Have multiple views of where you're at.
And so for metrics, you are a good supplement, but, um, I think they help ground conversation.
But I.
Estimating more traditional estimating helps us think through the challenges that we can anticipate with, with work, especially novel work.
Do you think these two kind of compliment each other flow metrics and, and estimating with some story points?
Yeah, I think they can be a good balance.
It's certainly useful to see how many items are flowing through our process, right?
But it's also good to what the sizes of those things are.
I just want to mention, again, if you're listening into this, we do have a PDF about this very topic that you can download in our show notes.
So make sure you take a look at that if this is a topic you want go a little bit deeper on.
Let's talk a bit about the human impact of this.
What do you think happens, Mike, to teams when their planning and estimation are kind of stripped away entirely?
Well, this is a little bit back where we started, where I was saying the developers kind to say, what's in it for me, right?
I estimate what is in for it me.
I gave the boss a number.
They're just going to beat me up with it.
There's no benefit.
We need to get to a point where developers understand that estimating well or planning well, even more importantly, planning can be beneficial,
mad to them, beneficial to.
Imagine a team.
That's just horrible at, at estimatin.
They're just horribly at estimated and planning.
And they're never right.
The business comes that or that, that development team and says, Hey, we need this in three months.
and the developers say, can't be done.
Can't.
Well.
I think the business has every right in the world to say, give it a try.
Right?
Because this team's never been right.
In the past, right?
If they say it can't be done in three months, maybe it, can go give.
Give it.
A try, Right.
And so in those organizations, we see businesses leaders putting a lot of pressure on the team to go do it anyway.
Go give, it try and make it happen.
Now, imagine a different scenario where the team is good, not perfect.
No team's perfect, but they're good.
They say something will take three months.
It takes almost three minutes.
You come in a little bit early.
The next thing they say, it'll take two months and say it takes two and a half.
Again, they are not perfectly, right?
But they were pretty good and they built up this track record of being pretty.
And now the business comes with that same new project and says, can we do it in three month?
And the teams says no.
Now the business is gonna listen, they're gonna say, oh, okay, it can't be done.
What would it take?
And here's the key thing.
what would take for us to get it done in three months?
Well, if you relax this one requirement, right?
Or if we could stop doing second level support of the other product for two months while we work on this, Right?
If we have one more person, whatever it is, we'll have different tools.
So, but now it's a collaborative discussion of what can we, stakeholders and team do to achieve that three months, or maybe we can't do it in three,
but we could do in 3.5. And it's a collaborative discussion now.
Whereas before, when the team was bad at estimating our planning, it was just to dictate, make it so.
That's not a good position to be in.
When we drop the planning or we just kind of give up on it, we're losing a way for teams to establish credibility.
Yeah, I think you're right that it does.
It has quite a lot of impact on just the morale of the team and kind of how they approach the work and everything.
This is kind a bonus side question here for you, Mike.
Just want to see what you'll do with this.
But I know sometimes I will talk to leaders who say that their team is bad at estimating, that they don't estimate.
points well, that they want them to be better at estimating points.
And I'm kind of curious what your take would be on that.
Is it possible for people to better or worse at Well, absolutely, but it depends on why they're wrong.
So let's just talk about a few things there.
Um, so the most common thing when I hear that a team is bad at estimating and they are using story points, it's probably because they do not have a solid
understanding of what a point is.
Right.
You've got people in there thinking that their time, other people are thinking they were just complexity, right?
Points are not complexity.
Complexity is a factor in the effort that is appoint.
So you end up with these, these funky, inconsistent, incompatible definitions.
And that's of course going to lead to problems, right?
So what I want to make sure people do is that they have a common understanding of what a point is.
If you sit in on a meeting like that and you ever hear somebody say, well, it's five points if I do it, but 10 points, if you do.
You know, they don't agree on what point it is, because that is the antithesis of a Point.
So I'd want make they had a very clear definition of, of point.
From teaching this for so many years, that's hard.
There's this magic point people have to get to with points.
And I see this when I'm teaching.
When they get it, it clicks, and all of a sudden, every single thing about estimating makes sense.
Everything makes But they have to do this magic inflection point.
And I contrast that with something like stories and backlog management that I teach as well.
Those are, those are like golf, right?
You can always get better at writing stories.
You always have better splitting.
They're very linear skills.
Just keep getting better with those things with practice, estimating there's this.
Magic point, and you have.
The team members, ideally all of them, at least a majority of.
To that inflexion point If we've done that, there's all sorts of things that we can do to get teams to create better estimates.
I'll just share two.
One is a technique called unpacking.
What unpackings entails is discussing the components of the work, right?
Oh, to do that big feature, we'd have to this and this, and that's right.
Don't necessarily write them down, but just talk about them and then go back and estimate the big things.
So don't estimate to small things, the unpacked refers to identifying those small thing.
So you unpack the big thing, identify the sub-steps, and then re-estimate the Big Thing.
That has been shown through academic studies to be a way to improve estimate quality.
Another thing that teams can do if they're bad at estimating is to make sure they agree on what they are estimations.
And you might have somebody on your team who's very conservative, very nervous and they're estimating kind of the worst case scenario,
right?
Not normally at the worse case narrow, but kind like the 90% scenario.
Right?
You know, they were thinking about all sorts of things going wrong.
You might have somebody else on the team estimated most likely scenario what most like will be done in three days, You might have other people in there
thinking about the median estimate, the kind of 50-50 number.
50% of the time it'll take more, 50 percent of it will take less.
These are all different numbers.
And if you have that going on on a team, you're going to have fights.
You're gonna have arguments.
So if your in with a time and you see them having big discrepancies in their story values, because of that.
Yeah, I just wanted to see what your answer was on that, because I know a lot of times I get that question in classes as well.
I can go on and on.
But I think I've got a video of about five things to do to get better and four things stop doing that'll get you better.
That's awesome.
Well, that kind of naturally leads us to talking about the misuses of this as well, because I think a lot of times that's where a lots of the problems
come from, is just sort of a misunderstanding or misusing of story points.
I know for one, I always know that there's a misunderstand and misuse when I hear developers talking, about I want to get credit for the work from this sprint.
Uh, know there is a, a misunderstanding or a miss use of them.
If the misuse of these is so widespread, why do organizations keep asking for story points then?
Because they...
I mean, I don't know that organizations ask for a story point, organizations asked for plans, right?
You know, give me a date, when will you be done with this stuff?
And it's because, to a large extent, that's how organizations run.
We can pretend that it should be, well, we'll just deliver features as fast as we can, but there's often other parts of an organization that need to coordinate
with the release of something, right?
We might need train users on it.
We may need update website documentation about the new features, all sorts of things.
Having some sort of plan, it doesn't have to be very far into the future, some plan is extremely helpful.
Do you think estimation can become harmful in the organization and what kind of things would signal that it's kind it has taken on a harmful turn?
Well, that's when you're running around beating the team up with the five and the eight that I mentioned, right?
When estimates are used to punish developers, when exceeding an estimate is viewed as a bad thing, it's an estimated you are going to be over.
And I just talked about most likely median and 90% case estimates.
I recommend teams estimate at a 50% level.
Now we do that so that we can plan at more of like a 90% level.
But individual estimates, if we're doing them at a median, that means we are going to be off half the time, right?
If we were to do it well, we would be of half of the times.
And most teams would off a little bit more than that because they are not particularly good yet.
So we have to in some ways celebrate the fact that some of our estimates were over, what we want to have is a process where we some over some under and
they balance out, and that's where a lot of teams go astray.
So I think, you know, punishing people for high numbers, um, publishing teams for, uh, high variance in their work.
Um, I have tracked hundreds of teams, which means thousands of sprints.
And what I noticed was that a typical velocity for a team will bounce around in a plus or minus, 19%. That's very precise.
So it's rounded up and called 20 plus, or 20% range.
What that means, if you've got a team that averages 20 points next sprint, they might get 24. The next after that they make it 16. And those are not good
and bad news.
They're just random statistical variants or variability.
Um, you know, when a, team is bouncing around in a range like that, that's a good thing, right?
And you don't want to punish a.
Oh, no, You were two points under.
You only got 18 done.
It's like, yeah, That's random variation.
Yeah.
Yeah, I agree.
It does have the propensity to be misused.
And I do think that there are a lot of situations where it has been mis-used and people come out of that, those situations and think,
oh, estimation itself is bad, but it's not really the estimation.
That's the way you're doing it.
Now that really ends up being the problem.
Yeah, there's just numbers.
It's all about how the numbers get used.
And that's normally a failure of leadership intent in how leaders are intended to use those numbers rather than of the estimates or the team themselves.
Yeah.
I kind of think about this in the terms of like, when you see adult beverage ads, it always says, you know, drink responsibly.
And so I kind of think about that with this as well, not drink responsibly, but use responsively.
Estimate responsably.
Maybe that's your show title this time.
Yeah.
I estimate responsivly.
What would you give as advice to estimate responsible?
We haven't talked about this, but I think one of the important things is to think about estimates as ranges, and think of plans as range.
The team that I mentioned climbing Mount Everest, I mean, they might have a day they intend to summit, But they're probably looking at a range of days
they are going to submit, depending on the weather when they get close to the summit.
So use a arrange.
If we say we're going finish something, we'll be done in two to three months or two and a half to 3 months, or we're going to be done in four to five sprints,
things like that.
Or we'll be down in 4 sprits, but it'll have between this and that much functionality, right?
Use ranges on things.
Don't overdo it with estimating.
Estimate only if something's going make a decision.
And I think it's very fair for team members to say, would ask for an estimate, very fare for a team member, say cool, we will do that,
by the way, how will this number be used?
Right?
Oh, I don't know.
I just need an estimate.
It's like, we're not estimating that.
So estimate if there's a reason.
Right.
And I do think that teams can get better at estimations.
Most teams don' t give their own little feedback loops.
You know, why were we off on that estimate?
Talk about that in a retrospective, right?
Why did we miss a plan?
I think it's useful in estimating to state our assumptions.
What are we assuming will go right?
If we're summiting Everest, I assume that we are going to have good weather one day during the third week that were on the mountain,
whatever.
So I have to think about things like that and use the estimates, the estimations sessions as an opportunity to discuss the work because that's the real
benefit is the improved and shared understanding that comes out of those discussions.
I've literally done this with teams.
where this was a sprint planning meeting I'm thinking about where we had a Google sheet up.
We put all the estimates in the Google Sheet for the, estimates for this sprint backlog.
And at the end of the meeting, I deleted all numbers.
I just deleted that column and the team members are kind of pissed because I'd made them estimate the numbers and they said,
why did you have us do that?
And I said I don't care about the number.
So I cared if we put the right amount of work in this print and those numbers were there to help us put them out and work.
There we go again.
They were about making a decision, right?
Those numbers helped us make a.
Do we have the right amount or not?
And I didn't want the numbers to remain because then people were going to feel like, Oh, no, I said four hours to code that thing and it's going take me five.
I'm going feel bad or I better rush and be sloppy.
So I knew that was kind of a propensity of that team.
Deleted the column.
Right?
I say, this isn't important anymore.
We got the benefit out of those numbers were done.
I love that.
I think that builds trust as well because of the reason you said you're not going to hold someone to five hours if they said five.
It takes what it takes and we just learn from it.
Yep.
Um, well, I know these, this is a, as we kind of wind this down, uh, there's a lot of hot button, Uh, topics on this.
I'm sure every time you talk about this, your inbox gets flooded with, you know, different opinions and hot, hot takes on these kinds of stuff.
And insults and all sorts of things.
Right.
Exactly.
Please be kind.
Everyone please just be, kind, right?
Uh there, it doesn't cost you anything to be.
Don't insult my mother.
You can insult me.
Right.
Right, but I think the thing I'd want to ask you, Mike, is, uh, as we kind of wrap up is if you could give a message to the,
those listening, the agile community in general on estimation, to help them kind better understand this or, or maybe set right something that's not really
correct on, on this.
What, what, would be your one message you'd people to take away and hear from this?
My one thing.
Yeah.
Your one.
Probably that estimating and planning don't eliminate uncertainty.
We're not estimations so that we can predict the future, we're estimators so we that can make decisions.
And when we estimate and talk about the uncertainty in items, in work, it allows us to navigate that uncertainty, allows to create plans to get around it,
right?
We can dock those assumptions, create a plan together to go around.
But we are not going to eliminate uncertainly and that's absolutely not what estimatting is about.
Yeah, I love that.
I loved distilling it down to just making decisions.
That's a great way to put it because there's lot of decisions we make from them, but those are all kind of the driving point of it.
We're doing it for this purpose, and if you don't keep that in mind, you can really get screwy with these things.
Yep.
If it won't help you make a decision, don' estimate.
Yeah.
Absolutely.
Well, this has been great, Mike.
I really appreciate you coming on.
Now, again, everyone, you know, if you want to read more about this, look in our show notes, find the PDF for this one, and it'll give you some more insight
and information on this.
So Mike, thanks for making time for us and coming onto the show again.
Thanks as always, Brian.

Overlapping Work: How Agile Team Collaboration Happens

Transcript

On a traditionally managed project, one person finishes their job and then hands the project off to the next person.
The second person does their work and the hands things off, to a third person and so on.
This is the opposite of how a good Agile team works.
Hi, I'm Mike Cohn.
I've helped thousands of teams succeed with Agil and I want to help you too.
With Agile, team members strive to overlap their work.
A programmer starts coding while the designer is still designing, and then a tester begins testing while programming is happening.
Two good things happen when an Agil team overlaps work like this.
First, they shorten the time to value.
When team members overlap work, it takes less time to complete a feature or product that can then be delivered to customers and users.
A shorter time value increases the value of a product.
If you're selling the product, you can start selling it sooner.
You also get a reputation of being faster and more responsive at adding features, so you often sell your product for more.
The same benefits exist for internal use software.
If your coworkers are waiting for your team to solve a problem for them, solving it earlier is a win.
It's important to note that time to value can go down even if the time it takes to do each step goes up.
And some tasks will take longer when overlapped.
Testing will takes longer, for example, when it overlaps coding.
Some tests will need to be run multiple times, and there can be inefficiencies when overlapping.
but time to value still goes down.
If getting your product into users' hands as quickly as possible is important, this outweighs any slight inefficiencies.
The second good thing that happens when individuals overlap their work is that we accelerate the feedback.
Suppose, for example, that a programmer is using a new commercial component.
The component seems to work fine for the programmer, but when it's given to testers, they discover it won't scale, occasionally crashes,
or can't handle realistic amounts of user data.
When coding and testing overlap, the team gets this feedback much earlier.
That gives them time to consider looking for a New component, fix the problems in this one, Or perhaps develop their own.
To see how this might work, I'm going to pick a really small feature, something you might think is too small for work to overlap.
Logging into something.
It could be any product, a website, an app, or anything else.
Work on the login capability begins with a conversation.
A product owner explains what's needed, and the programmer and tester ask any questions they have.
You can imagine more people involved if you'd like, but three is enough to make a good example.
In this conversation, the product owner explains that they need users to be able to log in, log out, reset their password,
ask to to remembered by this system, and they to enter a strong password.
After the Product Owner states what's needed, I'd the programmer and tester to discuss where to start.
That's probably a very short conversation because there's a natural starting point.
If a user enters the correct credentials, they're logged in.
if they enter the wrong credentials they are not.
The programmer starts coding this.
While that's happening, the tester is creating the test plan, creating test data, and perhaps even scripting how the data will be executed.
When the programmer is done, they hand their code to the tester, who has already created the test data needed for validating this part of the overall feature.
And the two talk about what to do next.
Perhaps they agree to use the password reset feature next?
The programmer starts coding that while the tester validates that the first chunk of code works as expected.
That won't take long because remember the test has already created a test plan and test data.
After that, the Tester extends the Test plan to include resetting a password.
Both the programmer and tester finish and the program hands over a new build that includes password resetting.
The two discuss what to do next, and they choose to work on requiring users to enter a strong password.
And the pattern repeats.
In overlapping work this way, the team is shrinking the size of the handoffs between programmer and tester.
When first adopting Agile, many teams will have a programmer work on a product backlog item, finish it, then hand it off to a tester,
That's a start, but what you really want is for product backlog items to be handed off one acceptance criteria at a time.
In this example, we had a product-backlog item, quite possibly a user story, about logging in.
The acceptance criteria for that were users can login with the right credentials, users are denied if they enter the wrong credentials.
Users can log out, user can reset their passwords, and users need to enter strong passwords.
As each is started, the programmer and tester and others as needed do their parts.
They overlap their work.
You can see from this how overlapping work will result in completing the backlog item sooner.
This is true even if we assume the individual tasks take a bit longer because of the overhead of extra communication.
In many ways, overlapping is an indicator of how agile a team is.
The more a Team can overlap work, the faster and more responsive to change the team can be.
This video is part of a series on how to work as an agile team.
Be sure to check out the rest of the videos by clicking the onscreen links.
In the comments, let me know how your team is doing at overlapping work.
I read every comment, and many of your questions there turn into my next videos.
If this video has been helpful, click the Like button.
And if you're new to the channel, Click Subscribe so you don't miss out on future tips to help you succeed with Agile.
Thanks for watching, and I'll see you next time.

Planning Poker Explained: How Agile Teams Estimate Story Points

Transcript

So let's talk about how to pull all these ideas together into an estimating approach that works.
The technique is called Planning Poker, and it's loosely based on the Delphi and Wideband Delphin approaches that date back to the Rand Corporation in
the 1940s.
In Planning poker, each estimator, which should be everybody on a team, is holding a set of cards that contain the numbers the team has agreed to use as
their estimates.
Normally this will be the modified Fibonacci sequence, but that's really up to team.
The product owner reads a product backlog item, usually a user story to the team.
The team and the productowner discuss the item.
Team members ask questions.
the Product Owner clarifies expectations.
This can be as short as a few seconds, but it can take as long as needed.
Once each team member has decided upon an estimate, they pull that card out of their hand, holding it so no one else can see it.
When everyone has picked an Estimate, the cards are revealed all at the same time.
If everyone is holding up the same number, we're done.
Write that number down as the estimate and move on.
But if the numbers are different, We discuss it and then estimate again.
Let's see an example.
During the first round, our estimators hold up a 3, 8, a 2, and a 5. At this point, I really want to hear from the outliers.
Why an 8? Why a two?
Anybody can talk, but in this case I would really like to know from Vadim and Anne.
Vadim might say, well, I'm the tester on this project and this is going to be really hard to test.
I need to build a new test framework, and so on.
Anne says, Well, Vadem is right.
My 2 is too low, so I am going up.
But I've programmed this type of thing before and it's not that hard.
So I m coming up, but not all the way to an 8. Anyone can talk at this point, but I especially want to hear from the outliers.
After anyone who wants to has had a chance to talk, each team member again picks a number from their cards in their hands,
and then all at once, the cards are revealed.
This time, let's say we get three fives and an eight.
At this time point I'd ask Chris with his eight to give us an impassioned plea for why eight is the right estimate.
I was with a team a little while ago that had all eights except for one 13. I asked the guy with the 13 why.
Boom, boom, Boom.
He gave three good reasons why he thought it was a 13 and on the next round, everyone switched to agree with him.
So notice this isn't a vote.
We don't say that the majority rules and pick a five.
We keep going until we get to a consensus.
The consensus may be a little false, but that's okay.
Suppose we go another two or three rounds, with Chris holding up an eight while the rest of us have fives.
At that point, I'd probably ask Chris if he thinks we've heard his arguments but we just disagree.
If he does think we heard him, he will eventually fold and hold up a five.
I'm okay with Chris folding.
After all, the difference between 8 and 5 isn't that great, and we're pretty far up the effort accuracy curve we saw a few minutes ago.
Now, if Chris had been holding up a 100 instead of an 8, I wouldn't want him to fold.
If we are that far apart, we probably are facing one of two problems.
One, product uncertainty, which is the product owner saying something like, good question, better run that by some users,
it could go either way.
Or two, technical uncertainty.
which is when the team thinks that doing the user story will be easy if they use one particular technical approach, but hard if take another approach.
So whether it's product uncertainty or technical uncertainty, if the estimates are hopelessly far apart, put the story aside,
do the research, and then estimate the users story next week or whenever you get together again.
Or consider using a range if reducing the uncertainty will take more effort than you want to or can invest.
If team members ask the product owner what type of bear, koala bear or grizzly bear and the Product Owner can't say, your best option is to write down 5
to 100. One challenge with relative estimating is how to get started.
My recommendation is for team members to look at the product backlog and find something they want to call a two.
Don't play planning poker quite yet.
Just find a 2. Something small, but not the smallest.
I don't want you to waste time doing a bubble sort on your product back log, looking for the small item.
Instead, someone on the team points to one user story and says, that one's a Two.
Team members can argue if they disagree, but they keep at it until the team finds one user story that everyone can agree is a two.
Then, look for a five.
Remember, we're only really good across one order of magnitude, so finding a 2 and a 5 establishes us a good baseline across most of that order or magnitude.
I don't really care if you find a two and a five.
Maybe find one and five, or a 2 and an 8. Any of those is fine.
The idea is just to get a pair of numbers that everyone agrees on and then start playing planning poker.
I want to mention briefly that if your looking for planning cards, we do sell the cards at our cost on our website at store.mountaingoatsoftware.com Also,
we have a free website you can use for playing planning poker with a distributed team.
In the next video, We will look at some of the reasons why planning Poker works.

Project Late: The #1 Reason Your Agile Project Is Running Behind

Transcript

Your product is bigger than you think it is.
You think you're building this, and instead you are building that.
Let's look at four reasons why products end up being bigger.
The first is that needs evolve.
What your users need today will not be what they need later.
the longer it takes you to go from learning their needs to delivering on them, the more those needs will evolve Second, requirements emerge.
Some features in a product can only be discovered after you start developing the product.
As you do, you give early versions of the project to users.
They play with it, they experiment, and they come up with new ideas.
These emergent requirements are features no one would have thought of until they experienced the partial product or system.
The make your product larger than you thought because they were unanticipated.
Third, some requirements are overlooked.
No matter how hard you try, it's probably impossible to identify upfront everything your users will need.
When interviewing users, you'll forget to ask a question, You won't follow through with something a user mentions, or you will run out of time.
You'll overlook something.
Fourth, Some objectives will be harder to achieve than expected.
Teams add features, functions, and capabilities to a product to achieved defined objectives.
For example, an airline may want to improve software used by its customer service representatives so that those reps can more quickly reroute passengers
affected by flight cancellations.
The airline's developers plan to achieve that objective using a new AI system to suggest passenger rerouting.
After implementing that new capability, team members measure the impact and learn that it has only gotten the organization halfway to the desired outcome.
In that case, there will be additional work required to obtain the objective.
And so, the product has become larger than initially thought.
So, what should you do about this?
First is to acknowledge that no matter how well team member do the job of understanding user needs, they will not think of everything.
Second, have a frank conversation with stakeholders about this.
Get them to acknowledge that they aren't done thinking about what's needed and that their needs will evolve and it's impossible to think of everything.
Third, avoid making promises about when a product's full scope can be delivered without adding some amount of buffer to account for how much larger the
full product may truly be.
But how much buffer?
Here's one technique I've used for deciding how big a product will likely become.
Ask team members what percentage of the ultimate solution they think they see.
If they say they believe they can see about half of it, that means the unknown part of their product backlog is the same size as the known items on the backlog.
if so, the full product is double the size you think it is right now.
The formula for this is just 1 divided by the percent the team thinks they know times the current size of the product backlog.
I just gave the example of a team thinking they currently see half of The Ultimate Solution.
Substituting 50% or 0.5 into the formula, you can see that the full size for that product is double the currently size.
Looking at one more example, suppose the team has a series of conversations with users and stakeholders.
Based on those extra conversations, team members believe they see about 80% of what users will ultimately need in this product.
When we substitute 80 percent into the formula, we see that the full size of the backlog is 25% greater than the current size.
A rough calculation like this can give you an approximation of how much larger your product is than the team thinks it is presently.
This larger size can be used in forming more accurate long-term forecasts when necessary.
What have you experienced that made your products bigger than anticipated?
Please share your experience in the comments.
If this video has been useful, please do me a favor and click the Like button.
And if you're new to the 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.

Role Playing Landing Page

Transcript

Tough conversations don't have to catch you off guard.
Scrum Masters face tricky conversations every day with teams and stakeholders.
What if you could rehearse those moments before they happen?
With this free guide from Mountain Goat Software, you can.
Our AI-powered practice prompts let you roleplay realistic scenarios with tools like ChatGPT, Copilot, Quad, and Gemini.
Build your confidence.
Sharpen your approach.
Improve your results.
These aren't generic questions.
They're crafted to mirror the real-world tensions Scrum Masters face so you can show up ready.
Download now and start practicing.

Scaling Agile with Distributed Teams

Transcript

We're talking about scaling agile up and distributed teams You got three key topics I want to discuss in this one.
First one, dependencies.
Talk about how to manage dependencies on an Agile project.
Second, I wanna talk about, how do the iteration planning meeting.
This is probably the most challenging meeting when we scale Scrum or Agil up and we have lots of people.
How do we plan a Sprinter iteration in the next couple of weeks?
And then third, wanna to talk how we coordinate teams.
together.
What can we do to get teams working together within an iteration or sprint?
So let's start with our dependencies here.
A couple of things we can do the manage dependencies.
The first thing I'd like you to do is to what is called rolling look ahead planning.
Now, if you heard one of my earlier sessions today, first thing this morning we talked about scrum, right after lunch I was talking about estimating,
and in both of those I kind of hinted and touched on a meeting called iteration planning meeting or sprint planning.
And I said that that meeting's long and painful.
I say that the meeting might go three, four hours.
And said some teams might spend eight hours doing that.
So here's what I want you to do when you scale Agile up, when scale Scrum up.
Don't just plan one sprint.
It takes four to two hours to plan.
But no, you're not locked in that room for 12 hours.
That would be unbearable, right?
I want you to stay in the room and plan one sprint.
And that's going to take two, three, four hours, then I you want to plan two more sprints.
But I wanted to do those in no more than 10 minutes, OK?
No more 10 than minutes.
We're going plan that second and third sprint at a much lower level of fidelity, a must lower-level.
That's higher level but lower level fidelity.
We're not going to plan as precisely as we plan the coming sprint.
So here's how I want this to happen We get the team together and the Team is going plan one sprint They do that by taking product backlog items,
which I'm showing there on the left on index cards How I like to do this tend to think of these as something called user stories should be our last session
today and And so we take these user stories, we break them into tasks.
We estimate those tasks in hours.
This is the part that takes two, three, four hours, maybe an entire day if you're doing a long iteration.
Then what I want the team to do is to grab a second user story.
They break that into task and hours they repeat this until they're full.
That's one sprint, one iteration Now what we do is we stay for another 10 minutes.
And in that 10 minute, we plan the second and third iteration.
In this case, that'll be iterations five and six, because we're doing iteration four here.
So we want to plan iteration five in six in a maximum of 10. We're going to do it at a velocity level.
What this means is, were going look at the high level estimates we put on those backlog items.
Were going say something like, our average is 20 units of work per sprint.
20 story points, 20 ideal days, if you're familiar with those terms.
And we're going to pull that amount of work into the fifth sprint.
But you'll notice here we are not doing it at the task level.
We're bringing these things in at user story or product backlog level The idea here is to look ahead to sprints.
Here's why.
Suppose we only plan one sprint, my team plans its sprint you are in another room planning your sprint My team discovers a dependency on you.
And we walk over and we tell your team or ask your teams, very politely, can you please do this task for us?
It's part of your part in the system.
Can you do please this?
We need it done so we can finish our work.
You tell me no.
Because you've just planned your sprint.
Your full.
you can't do that six hour thing for me.
So what I want to do on my team, I wanna look ahead a second and third sprint, now I walk up to you and say, hey can please you this thing from me?
And you still say no.
You say, no, we're busy.
And I say I don't need it now.
Can you do it next sprint?
Oh sure, sure.
We can do a free next print.
So you'd do for me in the next spring, which would be sprint five up here, and now my team has it by the time we start sprint six.
so we are always looking ahead two sprints here.
Now this is not a commitment, it's not guarantee, not very rigorous at all.
It's just a best guess of what we gonna do one and two sprint ahead.
That's all we looking at here So rolling, look ahead, planning, one way to manage dependencies.
Look ahead a couple of sprints, be able to predict what you need from another team.
Second thing we can do to manage dependencies is to share team members.
I got to list this.
This is a possibility.
But I've got say I'm not the biggest fan of this one.
Right?
I am not a big fan multitasking, of spreading people across multiple teams.
We spread people are cross multiple team, we lose a tremendous amount of productivity.
But we'll help address dependencies here.
So if one of your issues, one the big issues in your company are dependencies, this might be a much better option.
And I can live with the fact that I'm losing a little bit of productivity due to that multitasking.
Here we might see sharing a couple people across different teams.
In thinking about dependencies across teams, I want to think about the type of interfaces that we have between teams.
Teams interface have dependencies in different ways.
One type interface is what we're going to call an unattended interface.
An unattented interface, is one that, we know that exists, But we're not very worried about, right?
It's not a big deal.
There's an interface between these two systems.
But I'm not worried.
About it there's no problems there.
These teams used to have to interact, but there is nothing there to worry about.
And so we just don't pay attention to it.
It is there, But were not going to attend to.
We're just going let it go.
It's low risk, it's not important.
The other type of interface that we have is what is called an unidentified interface.
An unidentified interface, we don't even know there's a dependency there.
Later we're going to find one and it is going bite us.
But right now we are unaware of it.
So two types of interfaces that can affect us, unattended, unidentified.
Then of course there's ones that are identified that we are attending to.
So these are the two type to be worried about.
One of the things that with these interfaces here is use an integration team.
Sometimes when we scale Scrum up, we need to introduce an Integration Team.
Often the Integration team can be a virtual team, let's say we have five teams, each of five team is doing their own good work,
but they're all building something together.
We create a virtual integration team.
What that would mean is we have one person from each of those teams, and they get together in the morning each day and talk about any integration issues.
One of the best things to do would be to have an integration test that runs at night.
It runs night, checks for interfaces between the code.
If it finds any problems, that build breaks.
The five members of the virtual integration team show up tomorrow morning.
They notice the broken build.
And among the five of them, they figure out whose problem it is.
It's your team.
You go fix it.
No, you go to fix.
Right?
They talk about it, and they figured out who it was.
they may get it wrong, but at least they take a first stab at who should address that problem.
Later, as we build that project up, maybe we get 12, 13, 14 teams, we're going to introduce a dedicated integration team,
right?
It'll be people, each team will give up one person perhaps, and that person goes and lives on an integration.
That is their job now, be on that integration Team.
Now one of the tips with an Integration Team is do not use this as a dumping ground for poor performers.
I will see this very commonly where a company will say, yeah, well, I don't need this guy.
I'll put him on the integration team.
And that is not the type of person we want on The integration Team.
The Integration Team often needs to be some of our better performers.
All right, and I know it can be tempting to not put them there.
But the Integration team needs the best performers, this is the Type of Person who needs To go to a meeting with Team A today,
And listen to Team a, three or four days from now they're in a Meeting with a different Team, And they're the person who's smart enough to connect what
this team is talking about with what that team said three days ago.
Oh my god, it's gonna blow up.
That team just said this, this thing just the other.
I remember one of the guys I was talking to was on a team like this and he happened to just, you know, there were just very innocuous little comments.
One team had discovered because of a library they were using that in their JVM, their Java virtual machine, they needed to set headless equals true.
It just happened to come up in a discussion, and he heard it.
And then he's like about a week later in another meeting with a different team where they had come with the reason why they have to have head less equals false.
And these are all part of the same application.
And he was able to pick that up and notice it, and he ran the application with the wrong settings just to see what was going to happen.
It was some very subtle bugs.
This is a guy who was smart enough to pickup on that.
Now, obviously, you can't have headless true and headlessness false.
Even if you don't know what it is, it doesn't sound good.
It can't be both numbers or both values.
But this is a guy who is smart enough to remember it.
Most of us would have just heard that.
It's some weird statement.
I don't remember.
This guy heard the two statements, put that together.
So I need people in here who can look for dependencies, look subtle interactions.
so it's not a dumping ground for our poor performers.
That's three of the ways we handle dependencies.
I want to talk about the iteration planning meeting.
It's one of our bigger, more complex meetings, probably the hardest one to scale up.
So in iteration planting, there's two general approaches for how to do this when we scale.
I don't know what that was.
When we scale Scrum up, two general approaches to this.
The first thing is to stagger our meetings by a day.
Have some teams plan today, other teams planned tomorrow.
And that works up to a certain size.
This is a nice approach.
You have somebody on a large scale, Scum or Azole product we call a chief product owner.
Our chief product owner can now go to some meetings today, some meeting tomorrow.
Our Chief Architect can go some meetings today some tomorrow, so staggering by a day helps us scale up to a certain size,
but there's a limit.
You can't really go more than maybe five, six, seven teams at the most by staggering.
The approach that I prefer for doing this is an approach called the big room.
Now I'm going to let you in on a secret.
I have some clients that do this.
I've introduced this to them, and we do.
And I, of course, charge them.
I'd probably do this for free.
This meeting is so much fun when we do that.
I love this.
Now, you don't know any of my clients I'm doing this, of course.
You can't email them and tell them or tweet, hey, Mike will do big room techniques for for.
But I actually love doing.
It's one of favorite days when I get to go work with some of clients.
So let me describe what we're talking about here.
What we doing here is we bring all the teams together into a room.
All right, now let's assume we're all co-located for a moment.
We got our entire project here in Oslo.
So we are going to get a big room.
It holds 50 or 100 people, whatever we got on the project.
Typically, this meeting is going start out by somebody like our chief product owner making a few announcements.
You know, we've got the whole team together.
Let's make some announcements if there's anything to share with everybody.
I had a great client visit.
Our customers are real excited about this set of functionality I've got.
Man, we're getting some deadline pressure from this other client, but I think I put them off.
We'll start out with a few announcements like that.
Then what happens is each team grabs a corner, some wall space, maybe a table in the middle of the room, whatever it is.
Each team grab some space around the realm.
each Team sits down with, if they have a dedicated product owner, their product It's very common when we scale up 10, 15, 20 teams that we might have a
product owner shared across a couple of the teams.
Let's say we've got 10 teams, we may have six product owners total.
I got a chief product donor and maybe four or five product donors to help out.
So each team sits down.
If they have a product owner, their dedicated product sits with them.
And what's nice about doing this all in one room is each teams starts their planning meeting, but key resources like that chief architect can move between teams.
Our chief architecture can back and forth from teams who need him or her.
Or chief product owners can around between team.
It's very easy to get all of us done.
Now, if I need something from your team, I just walk over and ask for it.
I might walkover and hand you an index card and say, hey, can your Team do this for me?
And you're too busy.
You can't answer me right now, so you just kind of wave me off.
And I go back to my team and I'm sitting here with my Team doing my work.
Look over five minutes later and you give me a nice thumbs up.
So I don't have that guaranteed dependency that we had in the first section of this class.
So the big room technique.
Now what I like about doing this is the ability for people to move around.
This is, when you do this, this why I liked this so much, it's a very kind of loud, cacophonous meeting, but it's very energetic.
You can feel the energy in the room when you're doing one of these.
Now, a little tip for doing this.
One of the things I like to do is to get nautical signaling flags, those flags that mean Admiral aboard, about to turn to starboard,
stuff like that.
Get those type of flags.
Give each team a set of that you are going to use.
So each might have four or five flags pick a meaning for the various flags.
One of the flags might mean something like, we need the chief architect.
Now any team that needs the Chief Architect sticks that flag up on the wall near them.
The Chief architect is over here working with a team.
Every now and then looks around, nope, nobody needs me.
And our chief architect stays over here.
Maybe they finish.
They walk over and just see if another team needs any help.
A little bit later, chief architects looks round and sees three people, three teams with his flag up.
Wow, I better go.
I got to see what they need me for.
Chief product owners got a flag.
Our chief product owner does the same thing.
She's sitting with a team.
she looks up, uh-oh, two teams have my flag, up I'd better to go, right?
So we pick some nautical signaling flags.
Common one we need the product owner.
We need The Architect Got a recommendation for a couple of other flags two other Flags I always use one flag We need a pizza.
We have a team of way to signal that we need some food.
Another flag that I tend to use is we're on a break.
So real good kind of high bandwidth way for teams to single each other.
And this is great.
If you think about this, boats out at sea, and you signal each without being able to email each.
Well, this how we are going to see each in that meeting.
This to me is a good way too run the sprint planning meeting, If you have any questions as we go, let me know.
I want to talk about how do we coordinate teams, some of the techniques we'll use to coordinate team during the sprints.
The most important thing I find for coordinating work among teams is something we call a community of practice.
A community practice is a group of like-minded or like skilled individuals.
It's a groups of people who have something in common.
Maybe it's their skill set, maybe it is their interest.
We have a people inside of our company after going to a conference like this who go back excited, about test-driven development.
And they're going to go back and they are going figure out a way to make test driven development work inside of our company.
So here I'm showing a couple of different communities of practice, a programming community, testing community.
One of the first places I ever discovered the need for a community of practices was a game studio I had consulted to.
We were doing a sprint review.
Now, game studio sprint reviews are fun.
You play the game.
So we're doing the sprint interview, playing the games.
And we were playing level five, and we finished the review, And in level six, we are doing review of the team that did level 6 of this game,
the bad guys behave differently.
In the first level, the bad guys, now this game is what's called a first-person shooter.
You're basically a game, you're a gun, and you just shoot at everything that runs at you.
And in the 1st level the Bad Guys spread out.
The challenge was to see if you could shoot all these guys who are all spread-out.
In then next level The Bad guys ganged up and the challenge is could you shoot them fast enough as they all ran at from one direction.
Well, the poor programmer on the second team, artificial intelligence programmer, we asked him, he said, why do your bad guys behave differently than the
bad guy's an hour ago?
And he says, well we're on separate Scrum teams.
I said yeah, I know you're in separate scum teams, but why are your guys behaving differently?
He said because we are on a separate team.
It turned out some bad scrum consultant had told them, you're only allowed to talk to your scrumb team.
You're not allowed talk other scrumm teams.
Bad advice.
And we said, not only do we want you talking to other scrum teams, we're going to make you talk the other Scrum Teams.
So we created a community of practice in this case of artificial intelligence programmers.
We said you have to get together and talk.
Now in their case it was a very informal community practice.
Put it in the lunchroom with a sign, artificial intelligence programmers only.
Told them to meet and talk about artificial intelligent stuff.
They would get together and thought about, should we script this?
Should we code it?
Shouldn't it be table driven?
They're taught about things that were relevant to them.
So communities of practice can take on lots of different forms.
They can be informal like the one I just described there.
They could be formal.
We might have a QA community that is led by a qa director who formally gets people together and they talk about Qa issues across a project.
So communities take all different forms.
Most communities will have some sort of virtual aspect, something like an email discussion list.
Some communities we'll get together in person like our artificial intelligence programmers did.
These are some of the attributes I find successful for a community, meant to be self-organizing, normally going to best when we don't have somebody directing them.
All right?
Fairly organic.
I'd like them to form up naturally within the company, within a project.
Id like to have a group get together, discover they need to get to together and start discussing things, rather than a boss saying,
OK, you group have to talk together.
You group to talked together sometimes.
A boss needs to do that.
But I prefer it when these things are more organic communities can span projects if we need too.
Right?
But for now, what I'm mostly focused on is the idea that we use these across a single large project Not going to be a full-time job.
I mean, this is something where you're spending an hour a week as part of a community.
You're reading the emails that go.
It might be more active than that.
Might be less, but it's certainly not a whole time job Some communities will have a Community Organizer, Community Coordinator.
Done some consulting to IBM.
IBM has a couple of communities where they have over 1,000 members.
And they actually do have, if not full-time close to it, community coordinators.
They have a thousand people in their Scrum Master community.
That's not spanning a project, that's spanning across all of IBM, right?
So community co-ordinators can be a part- time to full time job if necessary.
Now when we think about communities, now I know I'm talking about this, you might be thinking about, do you have any of these?
Here are five levels of communities.
So as we go through this think of some that might in your organization.
Especially this first one here.
Unrecognized.
An unreconnaised community.
This is a group of people, they don't even know they're a community yet.
All right, this is you and I going to lunch, not on any regular basis, but just occasionally, once a week or so, maybe every other week,
you an I go to a lunch and we just talk about automated testing.
You and love automated test, our favorite topic.
And so we go lunch periodically, grab a sandwich and talk automated on our project.
We don't even know it yet, we are the beginnings of a community.
The next level up is what's called a bootlegged community.
A bootleg community is where it's visible.
Maybe we've invited one other person.
Hey, we get together once a week and talk about automated testing.
I know you're interested.
Come along with us.
All right, now we've identified ourselves.
We've realized we have a common thing here.
we talk about automated testing a lot.
So now, we're visible, not very big yet.
Third level up is legitimized.
This is where maybe the boss is picking up the bill, right?
Or the bosses letting us do this during work time, all right.
The boss saying, you know, hey, I like those conversations you guys are having.
You don't need to just do it at lunch.
Schedule meetings if you want.
So it's starting to be legitimate.
We're not given any responsibilities yet.
That comes with a supported one.
A supported community of practice is one where we are given company facilities.
Legitimized is where, or institutionalized, is we're given specific responsibilities as well.
You are the group to figure out how to get continuous integration going across our entire company.
So now we've been given a set of responsibilities.
So five levels of community.
We don't always start at the top one, and we don' always end at that bottom one.
A community might come in in the middle.
Team might move up rather than down in example I was giving.
But just five different types of communities.
Totally encourage you to do this.
This, to me, is one of the most important things in scaling up.
When we scale Scrum or Agile up, we need people talking across the teams.
We might have 5, 10, 15 Scum teams, I need on those teams talking to each other.
So here's what we can do to help have a vibrant set of communities.
Design them for evolution.
Know they will change.
Do not make it too rigid.
We want to have a dialogue between those in the community and those outside the Community.
I do not want this to be like a closed discussion list where nobody can see what's going on.
The best way to bring others into the process is let it be visible.
So let others, let outsiders talk into with this.
Now, we may have some private meetings.
We may some things that we just discussed in our community.
But I want to have sort of dialogue we can engage with outsiders.
I don't want have a single level of participation.
This is an easy example here.
Here we think about news discussion lists, Yahoo groups, Google groups.
Do I want every email or do I wanna daily summary?
That's a different level of participation.
So an effective community allows us to participate at different levels.
I can be involved for a while, then not, I could read weekly digest instead of every e-mail.
Maybe we have e mail discussion lists, we also get together in person.
And I don't have time to get to gather in-person, but I like to follow the e mails.
All right, so try to have your communities exist at difference levels, One of the things that you can do is to have public and private events.
It is sometimes nice to private event, members only.
That makes us feel good.
Members only get to go to this meeting or this celebration that we might have.
But to bring others into our community over time, we need public events, both types of things here.
Focus on value.
One of my favorite communities of practice is, it's disbanded now, but it was at Google.
Google's been a client of mine for years.
And Google had a community of practices they called the testing grouplet.
They call them grouplets.
What they did is they could have just focused on writing a bunch of white papers.
Think about testing Google.
What a complex application to test, right?
And so they could have had a testing community that wrote a bunch of white papers, and they would have posted them on a server.
Nobody would've read them.
But they did instead is the testing group there created a program they called Testing on the Toilet.
Testing on the toilet, you might have heard of this.
And they did, they wrote white papers, little one or two page whitepapers, and they posted them where you may expect given the name of that initiative.
So their idea was that while you were in there, while they had you as a somewhat captive audience, You might read a little bit about testing.
And this was a very successful initiative there.
They were focused on value.
There were not just some ivory tower thing putting out white papers.
Yeah, they were putting white paper, but they're putting them where they might catch your attention.
So focus on values, delivering value to people.
Combine familiarity with excitement.
Do novel things, have the regular routine, gets people involved, which is kind of the point with this last one, create a rhythm.
Having our annual meeting or our monthly meeting, things like that, a monthly summary, help our communities be successful.
To me, one of the most important things in scaling up.
Another thing that we do, and we hear a lot about this one, is something called a scrum of scrums meeting.
Now you've probably heard about a daily scrumb.
Even if you're not doing scrumm, you might be doing some agile process.
A lot of teams will do this.
I'll have a Daily Standup or a Dayly Scrum.
So that's what I'm showing down here.
And I suppose these are the teams on Microsoft Office.
We've got four teams.
On the left, they're doing, let's make that word, the three teams in the middle are PowerPoint.
The four team's on the right are Excel.
Each of those teams doing their daily stand-up, some in the morning, a couple in afternoon.
But every team doing it once a day.
Word is one product, though.
I want the Word teams to talk.
So we're going to introduce something we are going call a scrum of scrums.
And so I'm going have those Word team send one person and get together once, twice, maybe three times a week to talked about Word.
But Office is a single product.
Let's get one person to come from Word, one from PowerPoint, and one for Excel.
And we're going to call that a scrum of scrums of scums.
That one we are going do once a week.
So this is way to scale up the coordination on a project.
Who goes and what do they do?
Here we go.
The agenda for this meeting, we start out with three questions.
What has your team done since we last met that might affect others?
What will your time do before we meet again that may affect other teams?
And what's your teams having problems with that others might be able to help with?
So we start out with three questions like that, just to get the discussion going.
If you're familiar with the Daily Scrum, you'll recognize those questions.
Those questions were meant to be covered as quickly as possible.
Get done with part of the meeting in five minutes.
We do this just as a way to refresh each other's memory about what we're working on.
The rest of the meeting is meant to be a discussion of open issues.
In the old days, we would have just called it open issues list.
At Scrum, you've got to call it an open-issues backlog.
So here's a backlog of coordination issues, things that need to be resolved.
And so we come together to talk through those issues.
Scum of scrums.
Three levels up, be called scrum, of scum.
Each team picks one person to go, does not need be the scrumm master, doesn't need the tech lead or senior technical person,
anything like that.
each team selects who it is who should go.
Let's talk about distributing our teams.
When we distribute a team, there's two general approaches we can take.
The first approach is what I'm going to call a collaborating co-located team.
Apologize for not using Norway in the example here, but it was too long and skinny to put all the dots in, right?
So I grabbed a map of France here instead.
So here's one way to do this.
If we have a set of people in US, a of set people France, we can set up two separate teams.
We got the French team, I got US team.
And they don't necessarily need to talk to each other much.
They collaborate, they work together on a daily basis.
They collaborate a little bit, make sure they're building similar things, but they mostly let each other go.
The other approach is to do what is called a deliberately distributed team.
Deliberately distributed here I could have had an intact French team.
I Could have an in tact us team I had all the skills I needed in France to have in intact team there I'd programmers and testers and database people and
designers in france, but we choose to deliberately distribute I'm going to instead have a team that is half in the US half In France a second team,
that has happened each as well, so I've deliberately distributed the team and I have a background where a lot of the times where I've had distributed teams,
it's been because of acquisitions.
We acquired a company in another city, acquired another company another country, things like that.
And one of things I learned from acquisition is there's often a between people.
And when we set things up like this, that animosity can be a problem.
I had one company where we worked and we had this fierce competitor, this company that we were just fighting.
We actually had pictures up in the conference room of their executives.
And they had bullseyes on them and stuff like that.
And then we had just cut out pictures of people who looked like programmers out of newspapers and we have them up in the wall.
We had made up names for them.
So we hated these guys.
They were the enemy.
Then all of a sudden we merged.
Now you're merging, you were supposed to get along with these people that you've made names up for and that's tough.
Sometimes when you have this type of environment, even if it's not because of acquisition, This is tough.
There's an us-and-them mentality that can come into things.
So sometimes when we distribute, this is a better approach.
Now this more of a day-to-day hassle, but it gets rid of some of that us and them mentality.
So I'm not advocating either one of these approaches.
I am not saying one is better than the other.
That would be impossible to do without seeing the situation, seeing work, the skill sets, talking to the people.
So, I can't say one these are better then the others.
My point with this right now is make a deliberate decision.
Most of the time, and I will back up one more time.
We just do this because it is easier.
Most of the time we just do this because it's easier.
But I want you to make a deliberate decision.
Maybe that's right, maybe it is not, and maybe we should be doing this.
So the point would be, if you're on a scaled up project, you are probably distributed across multiple locations, so you have to be deliberate.
Coordinating co-located teams, we're separate in our separate cities.
We just coordinate our work.
Or should we deliberately distribute things out?
We get rid of some of the us versus them problems, but we got more hassle.
But it depends on how far distributed we are.
This is one thing.
If I'm in the US and Paris, if I am in Denver and in Paris and I seven hours apart, that's a hassle!
If i'm Bergen and Oslo, not so bad.
I can get on the phone anytime of day.
Could fly to each other if we need to.
So it's much more feasible than if we're seven hours apart.
Another thing we have to do when we are coordinating teams is to create coherence.
And I was writing a book called Succeeding with Agile a couple years ago, and I wanted to write about distributed teams.
And so I'm sitting there in my word processor and type, one of the things you need to do is create coherence.
I said, oh, I should look that word up.
But I want to make sure that that means what I think it does.
So I looked up coherent to see what it meant.
It's like, wow, that definitely is the right word.
Because it said it's from the Latin for sticking together.
And this is what we want to do, we wanna create a team that is going to stick together.
That is absolutely the right word.
So one of the things, some of things we're gonna have to doing creating a teams that sticks together is acknowledge our cultural differences.
Now, we have to think about the big cultural differences.
We have think the little cultural difference.
They're small things between different cultures.
And even if we're in the same region or same country, perhaps, right?
We to have about our functional and team subcultures.
Right here, I'm talking about, OK, in Colorado, the US, you're here in Norway.
But we're both technical, right?
That's a culture.
That is a common culture, all right.
So I want to strengthen that.
I wanna build on that as a fight against any other cultural issues that can be stronger.
And I build trust by pushing the team towards early progress.
Let me explain what I mean by these things.
So acknowledge the cultural differences.
There are, of course, great big cultural difference.
Right?
There was a great study done by an IBM employee years back where he looked at IBM employees across the globe and studied differences in terms of how different
nationalities view uncertainty.
how we view the long term to something he called power distance.
Are we comfortable with a boss who's a lot more powerful than us?
Or do we not like that?
Do we want everybody to be equal?
And so he studied these different types of things.
And these are big cultural differences among us.
We have to aware of these things, so if we have a team that is spread across different cultures, we need to being aware those things and we talk about
that a lotta times on projects.
I always hate doing some of this because we start to generalize whenever we talk about things like this, but one of the things that I learned early on
was with a team I was working with that was in California where I outsourced part of our team in India.
And we had to figure out when to do some meetings, and we talked about it, we picked a particular time, I think we said we'd do it.
It was gonna be eight o'clock in india.
Now eight in the US, not a great time to meet, but if we have to get on the phone occasionally, eight is not the worst time for most people in US that
they need to go on phone, occasionally.
This is gonna like a once a week, 15 minute phone call.
Um, it wasn't the worse time in world.
Most people, they got kids, starting to the kids in bed, or already in bad by then.
Nobody really eat dinner at 8 o'clock in the US.
It's kind of late for dinner.
So I was kind an OK time.
I said, OK, 8 O'Clock.
Let's do it at eight in morning in US, eight o clock in India, and then every month we'll switch.
We'll do the opposite.
And it turned out to be an absolutely horrible time in Indian.
Right?
I found out that that was actually a very common dinner time for them." I didn't know that.
So I was trying to be nice, trying pick inconvenient time, picked a horrible time.
Even worse, when I asked them, I said, hey, is 8 o'clock OK?
Yeah, yeah, right?
And I learned the other thing about India.
And again, I'm generalizing here.
Not real comfortable saying no to me, so more inclined to just say yes and go along with things.
Don't really want to cause any trouble.
So we've got to be careful with these things, we got learn those type of things but I think just as big as a lot, just important as the big cultural things
is often being aware of the smaller cultural differences.
Right?
Little things like holidays, stuff like that.
We've got to be aware about those type of things.
And the impact that those are going to have on our projects.
Right, we don't work the same hours.
I was talking to somebody yesterday about, oh, when would you do a meeting here in Norway?
And somebody said, well, you might do it at 8 AM.
And I was talking about a team in California.
No way would a time in a California do a meeting at 8 AM.
There's no way.
Now, you may think that's early for you.
I know not all Norwegian teams are going to be by 8 am.
But the team I'm talking to said, yes, that when they'd be in.
Seems plausible.
They go to the middle of the US.
Teams will be him by eight AM, but California, no.
Way a Team in Californias all in by 0 o'clock.
These are little tiny cultural differences, things like, You know, it's May 16th, and we're scheduling a meeting for tomorrow.
I'm not here, right?
So we are going to have problems like that.
We're going have issues, you guys don't mind a meet on July 4th in the US, they do, because that would be the equivalent of May 17th.
So you got to be aware of those type of things, just little things.
As a way to fight against some of this, I'm real big on building up our functional and team subcultures.
We are part of the team, and I want to build on that.
I wanna us to feel like we're part that team.
And I focus on our function culture.
For example, I travel around a fair amount.
One of the things I've learned from all the countries I have been in, despite all these differences we have, there's one thing I learned about people in
our industry and the technology industry, software industry.
A couple of things, in fact, we are much more likely to do things like own the Lord of The Rings box set and a Darth Vader costume than the rest of population.
These are things that are common to us.
I assume some of you own those.
Is it just me?
I'm the only one with a Darth Vader costume?
Don't tell me that.
So I know some of you have one, right?
There are certain things that bind us together as our technology nerdiness, so I want to focus on some those things.
Early in my career I hated, one day a year, I had the boss that made us used to go do these team building things.
And everybody's seen the joke ones where it's like I'll catch you when you fall over type of thing.
We actually did that.
Right?
And people would stand behind and have to catch me.
I was a little worried they're going to actually catch ME.
But we had to do those type things and we have these days where we'd go to the lake and just party and stuff like that and I'm like,
Please just let me stay in the office and code.
I don't want to do this type of stuff.
And I was so thankful when I soon progressed far enough up in my career that I as the boss and I didn't have to those things.
Right?
And say, we're not doing that stuff!
And, I'm not totally opposed, but here's what I found out about that.
Or later read this article that really resonated with me.
Because the article said, don' do those.
It's real point, though, was don do them too early.
All right, don't do them too early.
Now, I want a team to bond and come together and feel a shared sense of purpose.
But if we have the team do that too earlier, they bond around surface level things.
Whoever happened to sit together at the company barbecue, right?
And they don' bond anything meaningful, just whoever happened talk to each other.
And so early emphasis on relationship building is not good.
I wanna have that, Let's call it that team-building budget, the amount of time or money we're going to spend on team building.
I want to do that much later, once people have started to really learn about each other.
And then you and I are going bond because we are the ones who are passionate about automated testing, not because were the two who sat together during
the barbecue.
So I want to have team members bond around real things.
And the best way to do that is to save that team building budget for later.
One of the ways to get teams to bond together, and this is from this study I was reading, is put them under pressure to deliver something early.
We put a team under a pressure.
You gotta have this done by middle of July.
They don't have time for fighting and politicking and posturing, they just gotta figure out a way to get it done by July.
They're gonna have to work together.
So I'm a big fan of putting a team under, not artificial pressure, but having a time have that first early deliverable.
We gotta have something done soon.
It's a step towards our bigger goal.
And not artificially, having the team focus on something early.
Let's talk about how we communicate.
Last few things here, all in communication.
We've got to get together in person.
I do not mind scaling a project up.
And you not mine when we distribute.
What bothers me is when I see a company choose to distribute a product and choose, to cut the travel budget.
That is not going to work.
All right, we're going have to have together, in-person, occasionally.
Now, there's a couple of times that we can do this.
The first is what is called a seeding visit.
A seedings visit is where we try to get the whole team, or a large portion of the team together at the beginning of a project.
One of my favorite teams that did this had a team in, I think some of team was here.
Some of them was in Amsterdam, and then they had part of their team Bangalore.
And the Team in Banglore would go live in amsterdam.
Part of the team would go live there for, I think, two months at a time.
They had an apartment, three members would come at time, the apartment was more than big enough for the three people, and they'd live together in Amsterdam,
they had some bicycles so people could get around.
And those people came and essentially lived as part of a team.
These were seating visits to get that initial relationship established.
We need what are called contact visits, these are just kind of occasional visits.
I'm a big fan of what are called traveling ambassadors on a project.
I like old jazz.
Old jazz music.
And there was a famous jazz singer, trumpet player, Louis Armstrong.
You may have heard of him, probably have.
In the 50s, There were some problems with countries kicking their US ambassadors out.
US trouble, imperialism, all this crap.
They were kicking US Ambassadors out and Louis Armstrong was talking about it and referred to himself as the real ambassador.
And he said, you know, that what he did is he traveled around, played the blues, and met people face to face.
And, he says, I'm a real ambassador.
Right?
It's not these guys and you always picture ambassadors like out of movies, right?
You know?
Stuff suits and stuff like that.
They said I am the real Ambassador.
I travel around and I meet people.
That's also what I want on Agile projects.
That's part of what this is about, establishing these longer-term relationships.
So it's important to have people who can do this on our projects, beyond just the initial seating visits.
When we communicate, On an Agile project when we get large, we're going to have to add more written documentation.
I love the idea of face-to-face, of oral communication, but we are going have write more.
When you scale this up, when you distribute, you're gonna have more to write.
It's just going happen.
And I want to encourage what is called lateral communication.
in the middle.
I kind of assume that's our Scrum Master.
Especially I don't want to have that going by RSS, which is what that looks like I've got going on there.
So I should probably get that off of his head.
When I was a kid, I as 11 years old, had a grandmother who lived in Louisiana, southern part of the US.
I went to spend a month with her one summer, hot, sticky, horrible place to be in the summer.
And even worse, she lived a mobile home, this metal trailer thing.
No air conditioning, hottest, stickiest part in US, as I 11-years-old.
All I remember was complaining about the heat, just constantly complaining to my grandmother about heat.
And my grandmother, all I remember about her was her getting mad at me and yelling at.
It's not the heat, it's the humidity.
Okay, yeah, and it wasn't all that hot there.
If I were to look at the temperature, like 27, 28, but it was also about 150% humidity, right?
It was horrible.
I just remember laying in front of a fan the whole trip.
And so it's not the distance.
It's the time zones, right?
It is not a distance on a project that kills us.
This is a map of a product I was involved in.
We had a team in San Francisco, another one in London, and another part of the team Cape Town.
You can imagine who the communication problems were with.
London and Cape Town got along fine.
They communicated great.
There were, what does it say, two hours apart.
The challenge was the San Francisco team.
they had no real overlap.
It was a huge problem.
Here's some things I want you to do for every meeting.
So if you know anything about Scrum, you probably know there's this thing called a daily Scum 15-minute daily stand-up or daily scrum meeting.
When I have distributed teams, I often make that a 20- minute meeting, and I tell people, start with five minutes of small talk,
because this is something that we miss when we have a distributed team.
We don't talk about, hey, how's your kid doing in the football tournament?
How's How's your mother-in-law's surgery?
Did that turn out OK?
Things like that.
So we don't have those type of discussions with team members when we're distributed.
I will often tell a team that we are going to do a 20-minute meeting, and I'll tell them I mandate the first five minutes of small talk.
And I just sit down and make them.
OK, somebody talk about your family.
Somebody say something.
We're just going get to know each other a little bit.
Share the pain.
Don't ever take the attitude, we' re headquarters, We are doing the meeting at the right time for us.
I'll see this sometimes, like the California team will say, we're doing it at 10 o'clock.
I don't care that that's 6 p.m.
in Oslo.
We're doin' it 10. Don't do that.
Share the pain.
Make it equally painful for both cities.
That's what I was trying to do earlier when I gave the example of the Californian team and the India team meeting at 8 o clock.
And I screwed up because I didn't know that was dinner time.
Make sure you know who's talking.
Video conferencing is great for this.
One of the teams that I worked with had video conferenced, but it didn't work very well.
So I want to tell you what they did.
They invented a technique called low-fidelity video conference.
And they took digital photos of each team member, sent them to the other city.
The other the city printed out the digital photo, and they taped them onto little sticks.
Then whenever they were doing a meeting, when somebody on the others side started to talk, somebody in this city would hold up the stick of the person
who was talking, right?
Sounds silly, doesn't it?
It sounds really silly.
Here's what's sillier, people would stare at the It was like his lips were going to start to move.
People would look at it.
They built a game out of this.
I think it was, you got two points if you held up the right stick.
So whoever grabbed the person first would get two point.
But if he held the wrong person, he lost three points.
And they would track this, and at the end of three months or something, announce a winner.
It's actually a very beneficial approach, because then when that person would come from the other city, We all felt much more like we knew the person.
There's a weird little effect to this.
So low fidelity video conferencing here.
We're still struggling with some of the technologies behind video conference.
It's starting to get there.
You get to see things like Cisco telepresence and stuff.
we're going to have some really neat stuff in the future.
So that's for every meeting.
I want to talk about just briefly about a couple of meetings here.
So if you're distributed, here's what you can do for iteration planning.
One approach is to get everybody on the phone.
Did I lose the microphone?
It's still working?
Okay.
Okay, I know I moved it and it scratched.
All right, this works.
This will work.
We're in Oslo.
we're Trondheim.
That's fine.
All we can all get on the phone.
Oslow and California, nine hours apart.
this one's going to be pretty tough.
So we may not be able to do this.
I'm not going go through all the pros and cons.
Here, all these slides are on my website.
You can download the Pros and Cons.
you can imagine most of the Pro's and Con's with something like this, getting everybody on their phone for iteration planning meeting.
Not going work for a long meeting, people are going zone out.
They're not gonna pay attention.
Another approach for doing iteration planning, and this is actually my recommendation, this one I do want to talk about a little bit more,
is to do it as two phone calls.
Here's how we might do iteration Let's have California get on the phone at maybe 730. They're not going to make it into the office.
Most of them will have to call in from home.
But let's get them to calling at 7 30. That's going be 4 30 here.
And that's gonna balance the pain, I think, about equally.
We're going stay on their phone for an hour.
Sorry, but you guys are here from 430 to 530, But they had to get in the Office, or at least on phone, at seven thirty.
California, that is painful.
So we're gonna do 7 thirty to 4 thirty, on our phone one hour, after one-hour, We're going to go home, it's 5.30, we're getting out of here.
They are going stay and continue planning.
I can't finish it, they need us to finish.
But they're gonna take it forward a level.
There gonna do it for another hour or so.
We'll come back tomorrow morning, will pick up where they left off.
Though have left us a couple questions.
Will change some numbers, you're crazy, that's going take longer.
Oh yeah we can do that in that amount of time.
Well answer questions, well maybe add another backlog item, product backlog into the sprint.
Right, though come in tomorrow.
They won't come in early.
They'll come into their normal time, 10 o'clock or whatever it might be.
they'll look at what we did.
There'll make one or two last changes.
We're done.
On the clock, this probably took 26, 27 hours.
But for any one team, it only took two and a half, maybe three hours, so it didn't take any longer than an in-person meeting would take.
The meeting is done in two parts, in to cities.
It'd take a little bit longer that 24 hours to do, but done very effectively.
This is a normal way for doing this when we have a highly distributed team planning a sprint.
Daily stand-up, single phone call.
We're distributed again.
And we're perfectly fine.
All right, we are here and in Buddha, fine, get on the phone.
No problem.
Right here in California, that's going to be tough.
California does not want to get the on phone at 8 o'clock every day.
You do not wanna stay for a 5 o clock phonecall every.
So this is going be a tough one.
Another option is to write the meeting.
Don't bother, nobody's going to read it.
If this is your answer, don't even bother.
Nobody's gonna read those things.
So I don' recommend doing this.
Another approach is to do regional meetings.
For the daily stand-up, do a regional meeting.
Have the California group do their meeting, they'll do it when they want, at 10 o'clock.
You guys do your meeting.
Do it at 8.30 here.
So you do you're meeting, they do their meeting but it's very likely we've got one guy in California who's up at midnight California time.
They're happy to call in and listen to the Oslo phone call.
There's always a programmer up at midnight.
So if we've got one of our team members who's up most nights at that time, they can call in and listen to your phone call.
They'll report to their team.
Maybe somebody here is willing to call-in.
You know, their home, it's 7 o'clock at night.
Their willing call a couple times a week and listening to the California phone-call.
It's not too big of a hassle.
Somebody do it.
Maybe rotate it through the team members.
Do it three nights a week.
You're only going to do once every two months.
So every 2 months, you spend 3 nights on a phone call with California.
We can have one person dial into a regional call happening to the other, and they can represent the local city to other team.
That's the more common approach to doing this.
Now, we talk about as a daily stand up.
I want to make something that's probably real obvious.
we tend to not do this on the Fridays then.
Nobody here is willing to call in Friday at 7 o'clock to the California meeting.
The California guy is not up Sunday night, perhaps, willing call into your Monday morning meeting, so often we have four days a week,
it's not quite a daily stand-up when we do it with distributed teams.
That's everything I had that I wanted to cover.
We got a few extra minutes if you have any questions you guys want to raise altogether.
Anybody have thoughts on doing this?
Agile and Scrum do scale is one of the big keys for me to leave you with.
So it definitely scales up.
Distributed development's hard, it should be hard.
All the things that we get out of Scum and Agil I think help.
The fact that make progress visible, the fact we talk a lot.
These things make it harder, but it shouldn't be.
Other than that, thank you guys very much.

Scrum Explained — Roles, Events, Artifacts, and Sprints

Transcript

So we're going to talk about how to get agile with Scrum, how do you bring more agility into your organization.
I grabbed this quote out of this article, because I like this quoted, I think it gives us a good feel for what Scum is about.
Nobody is doing Sc rum in 86. What happened is a couple of Japanese researchers wanted to find out what was working well in product development,
not software development.
They went around and they studied successful companies.
They labeled what they saw, Scrum.
So that's where the name Scum came into things.
These authors wrote that the relay race approach to product development.
Now most of us are software people.
What's another word we use for relay-race approach?
What do you think they're talking about there?
We're software people, right?
What's the big nasty process?
Waterfall, all right.
Talk about waterfall.
So the waterfall approach may conflict with the goals of maximum speed and flexibility.
They say instead what we want is a holistic or rugby approach.
There's where this word scrum's going to come in.
It's part of the game rugby.
And they say we have this rugby approached where a team tries to go the distance as a unit, passing the ball back and forth,
and that may better serve today's competitive requirements.
Focus on that last phrase for a second.
Today's competitive requirements.
Remember when I told you this was written?
1986. They were saying waterfall doesn't work.
It's 1986 and waterfalls too slow for us.
We need something better.
What are we doing thinking 26 years later that waterfall might even possibly work?
Today's competitive requirements, 2012, 2013's, competitive requirement, we absolutely need something that is going to lead to faster and more flexible products.
This is where Scrum is gonna come in.
So Scum gets its name from rugby in the middle there.
And fortunately, I played rugby one drunken day during university.
So I can explain what a scrum is all about from that one drunken day.
We used to play American football every Saturday when I was in university.
The guys in my dorm, we'd get together, play America football, every saturday.
One Saturday we had a guy from London who said, no, now we're playing rugby next week.
And we said okay, you have to teach us how.
He did, he taught us to how to it.
I'm not sure all of his rules were the official rules.
which explains why it was a drunken Saturday.
One of his rules was the mandatory beer break every five minutes.
So every 5 minutes, we'd run over the sideline, have a beer, and come back and start up again.
And the thing I remember from him teaching us how to play, my job, I lined up over here on the right side.
I was in the front of the line of three people.
Had my left arm out.
Steve, our guy from London, was over on here the left side with his right arm.
In between us was third guy.
We were actually holding him up.
He didn't have his feet on ground.
And our job was to push forward, the guy without his feet on the ground, his job is to kick the ball.
The ball was rolled in between us like a puck would be dropped in a hockey game.
And so this was this metaphor for what software development was all about.
It was just this idea of kind of a chaotic environment, everybody with their own special responsibilities though, but a very common purpose.
We were locked together, we had our arms around each other.
The guy in the middle, for example, if he took his arms away, he'd fall down on the ground.
So we had our arms together pushing for a common purpose.
This is where this metaphor came from.
I work with a lot of different companies in the US and Europe.
And one of the companies I've worked with off and on for the last 24 years has been Apple.
I want to just share a little quote from Apple here, actually from an article about Apple, this is from article in Time Magazine,
a news magazine in US.
The author in here wrote that Apple employees talk incessantly about what they call deep collaboration.
cross-pollination or concurrent engineering.
Essentially means that products don't pass from team to team.
There aren't discrete sequential development stages.
They said instead it's simultaneous and organic.
Products get worked on in parallel by all departments at once.
Design, hardware, software, and endless rounds of interdisciplinary design review.
If you ask Apple what they're doing, they call it their own thing, the Apple process.
But this is very much Scrum.
This is what Scum is doing here.
So, Sc rum is about these lack of handoffs, it's about working together, interdisciplinary design, all working deep collaboration.
I just want to list a couple of the companies that Scrum has been used in.
I'm not going to read all those.
You can take a look at these.
By the way, this presentation is on my website.
This presentation in fully available in PowerPoint and Keynote format for you to grab and make your own.
So you've got to go back and introduce Agile or Scum to your organization.
And you can use this representation.
The slide was really useful 10 years ago when I first started putting a lot of this together, because people then were wondering,
well, who's using Sc rum?
It's kind of a dumb slide now, just about everybody's using Scrum, right?
We can make thousands of companies on a list like this for people who are using scrum, so it's not that unique anymore.
Scum's also been used in just every type of application, video games, Department of Defense in the U.S., government applications,
commercial applications websites.
federally regulated banks.
In fact, used by the main bank in the US, our Federal Reserve.
It's used in medical devices, so Scrum is used on just about anything.
A couple of the characteristics of Scum.
Scums focused on having what are called self-organizing teams.
Self-organizing team means that we do not have one person, typically called a tech leader, something like that, who gets to assign out all the tasks.
Why don't you do this?
You do that.
You did the other.
Oh, and I'll do the fun thing.
We don' have that person on a Scrum project.
On a scrum project, the team self- organizes.
They're given a challenge.
Build this.
we need it by the end of the year.
And the team figures out how to do that collaboratively.
They work together.
Hey, I was thinking of doing this.
Well, so was I.
Why don't we work on it together?
So the teams together figures who's the appropriate person to work something.
There's not one person who gets to delegate that task assignment out.
Another characteristic of Scrum is that the product or project is built in a series of what are called sprints.
Each sprint is anywhere from one to four weeks, no longer in a month.
Some teams do calendar month sprints.
Those are very rare.
Most common, two weeks.
So teams will work in these little two-week increments, and they'll build some part of the product each two week.
Every two we get to see what the team has worked on, give feedback on it or get feedback, show it to customers.
And we use that information to inform what to do next.
Do customers like what we build?
Scrum uses something called a product backlog.
So this is a term we'll hear during a session on the product back log, the end of the day today.
The last session will be on product the backlog, and something call user stories.
You've heard much about agile, you might have come across this term, user story.
There's just a way of capturing requirements.
I was saying that the Product Backlog is it prioritized, features list.
It's a list of things we want, prioritised by somebody we call product owner.
One of nice things, I think, but also a dangerous thing about Scum, is it doesn't prescribe any engineering practices.
Scrum doesn' t say you have to do test-driven development.
Doesn't say that you need to pair a program.
It doesn t have automated testing.
In fact, it does not say it has to test at all.
All right, Scum doesn''t say anything about the engineering practice.
The engineering practises are left where they should be for the team to figure out.
Now, all those things I just listed, I think, are all good things.
Scrum doesn't say you have to have version control.
I've never met a good Scum team that didn't.
But that's up to the Team to Figure Out.
What's nice about this, what this means, is that Sc rum is a general purpose project management framework.
Scrum can be used for all sorts of things, not just software.
In fact, if you think back a few minutes where I said it originated, it originated in product development, Not even software development.
Scum started to take off when it hit the software world, because software has such a need for speed and flexibility.
But, scrum can used anywhere.
One of my favorite examples is every year there are examples of people who plan their weddings with scrums.
Think about that.
Normally, things like pick spouse are already done.
But the rest of the product backlog has things, like picked the venue, picked a caterer, create the guest list, pick the music,
all that type of stuff.
So people will use Scrum to manage all sorts of projects.
That wouldn't make any sense to plan a wedding if you had test-driven development.
How do you do that?
One of the things that is nice about Scrum 2 is it's fairly straightforward.
It's very simple.
There's no 200-page rule book on Scum.
And there's not this massive list of rules.
You've got to do this, you've gotta do that, and you gotta this.
The few rules that we do have in Sc rum are what are called generative rules, Generative rules.
They're there not so much because we care about the actual following of the rule, as we about care the behavior that following that rule generates.
So one of things you might have heard about Scrum is we have a daily stand up or daily Scum meeting.
Teams come together and talk once a day for 10 to 15 minutes.
I don't really care that we get together.
I really don' care we have those 15 minutes of discussion.
What I care about is the discussion it creates.
So we've learned that having teams talk frequently is a great thing.
One of the easy ways to generate that behavior, that's what we want, is to put in place this rule.
Get together once a day and talk.
It's not the rule that you care as much as the behavior that it create.
And I mentioned that Scrum is one of the Agile processes, lots of different other Agil processes.
Feature-driven development, adaptive, Kanban, extreme programming, Lean, DSDM, Crystal.
I don't know if I've already mentioned one.
Lots of other agile processes Scum is the most popular.
Recent surveys showed about 70% of people doing Agiles were doing Sc rum.
So Sc Rum by far the more popular Now here's where Scrum is the most successful.
This is a graph showing the mapping of on the horizontal axis how uncertain our technology is.
And maybe you're doing your one millionth Java application.
You're pretty close to certainty.
Maybe you are doing you first closure application, the way over on the right now.
We've never done that, we've ever built anything like this.
On the vertical axis what we're showing is how far from agreement we are on requirements.
Do we know what were building?
We are building a simple address book.
There's bunches of these out there.
We know the requirements.
we can copy them from other products.
That would be low on the vertical axis.
Are we doing something novel, something that has never been done before?
or at least not by us.
We'd be high up on that vertical axis.
So what we're looking at here, if you map these two, we can see the projects that have a lot of technical uncertainty, a lack of agreement on the requirement
side is going to be in the top right there.
Right?
Probably nothing's going to work there, right?
You've got a lot of technical uncertainty.
You're not even sure what you're building yet.
The best thing to do is get some certainty around one of those two things.
Before you build the world's biggest, scariest, most novel closure application, get experience with the language, all right,
or prototype something so you know what it is you are building.
Move out of the anarchy region in one direction.
Let's go down to the bottom.
Down in the left bottom there we've simple.
This is right in a simple address book.
Done it before.
Same technology.
You can be successful with other processes here.
Scrum can't be okay, but it's not going to get you huge benefits there.
Where Scum is particularly helpful is what are called the complicated and complex regions in there, where we have fair amounts of both technical uncertainty.
This can tough.
I don't know how we're going do this.
And I'm not exactly sure what we're building.
We've got a vision, we are headed out here, but we have to see what our customers say.
Those type of projects, when there's a fair amount of uncertainty, that's where Scrum is going to have its biggest benefits for us.
That's what most of our projects are too, especially in the software world.
So let's look at what Scrum is all about.
And by the way, if you have questions at any point, just raise your hand or signal me in some way.
I'd like to take questions as we go.
We keep kind of scanning back and forth.
You've got this weird, long, skinny room.
So I keep trying to see if we have any comments or questions.
If we do, please raise you hand.
So let's see what Scrum looks like.
Let's build up a Scum process diagram here.
We're going to start out with something called our product backlog.
This is that prioritized features list.
Now suppose we're gonna build an e-commerce website.
I've got a couple of features I want to add to our site.
we've had a basic site up.
Where no Amazon yet, but we got to basic sight going.
And we'd like to ad to this return, gift wrap, and cancel.
Those are the features we want next.
Our product owner prioritizes those features for us.
The team is going to make progress against those features in sprints.
These are the one to four week time periods I mentioned.
At the start of a sprint, the team has to figure out, what are we going do?
And so the teams gets together and has a meeting to discuss the product owner's priorities.
And they select some amount of work off the Product Backlog.
In this case, I've only selected one item.
A team will almost always grab more than one.
For graphical simplicity, I'm just grabbing one item here.
Makes the picture easier.
So in this sprint, our team has decided we will deliver returns.
People can return a purchased item.
I don't like this book.
Sending it back.
All right.
Hope I didn't read it first.
To do this, we have what we call a sprint planning meeting.
The sprint planting meeting is where the team selects the amount of work to do.
In the sprint plan meeting, the teams creates what is called their sprint backlog.
A sprint backlog is a list of tasks necessary to deliver the product backlog.
Now here's something I wish we hadn't done in Strom.
I really wish that we had done this.
We've overloaded the word backlog, product backlog, sprint back log.
There's two, okay?
There are two.
Product backlog big visible features.
Look at the things up there.
Cancel, gift wrapping.
All right, return an item.
Those type of things, big visible things.
Customers might see those.
The sprint backlog is tasks.
It's going to be things like design the UI, all right?
Code, test, create some test data, automate this, have a review meeting with the customer about such and such, those type things those will be our task list,
our sprint back log.
At the end of the sprint, the team comes out with something we call potentially shippable product increment.
Basically, what we're talking about here is finished, done, tested, working code.
Some feature is done.
And we put the word potentially there to indicate that we do not need to ship this thing.
We may not release this at the end of the sprint, the ended the couple of weeks, but we could if we wanted to.
It's high enough quality that could.
So what were after here something that's, high quality, potentially shippable.
One of the things that appealed to me about Scrum when I first started to learn about this is that Sc rum takes essentially a two-faced approach to change.
Scum says no change in the sprint.
No change in the sprint.
What we're trying to do there is allow the team time to focus.
So the Team doesn't have to be always looking over their shoulder going, things are going to change.
I shouldn't make this big change on the code.
They're going change direction on me.
And I know I'm about to get interrupted.
Right?
So we want to create an environment where the teams can focus, but we know change happens.
We have accommodate that change, so we let that happen at the level of the product backlog.
Meaning, if our product owner comes up with new ideas, hey, let's take vouchers.
Let's offer voucher on our e-commerce website.
That comes in as a new feature idea, new product backlog item, and the product back log is sorted putting vouches in where it belongs.
So change happens outside the sprint.
We lock the Sprint down, letting the team focus on what it is they're building that Sprints.
One last thing I want to toss in up here, me in the top middle, I'm going to talk in our daily standup.
Daily stand up, this is where the team gets together, 10 to 15 minutes a day.
It's limited, no more than 15 minute, and they talk about it.
To synchronization, it's not a status meeting.
Status meeting always sounds, well first it sounds boring, second it sound one directional.
I will give my status report to the project manager.
You won't listen while I give my report.
And then while you give your report, I won'l listen.
That's a status meeting.
This isn't a statistics meeting, this is a synchronization meeting This is team members talking to each other.
Here's what I'm doing.
What are you working on?
Anybody stuck?
We go through things like that, trying to keep the project on track.
So that's it.
There's nothing else to scrum but what's shown up here.
By the way, somebody asked me this morning why I was qualified to talk about Scrum.
I didn't want to start with my bio-slide or anything this mornin' because we're time-pressed, so I don't wanna bore you with background.
But somebody did ask why i was qualifed to talked about scrum.
So, here's why.
i have a scrumb tattoo.
l have that picture on the wall on me.
so if I'm tattooed with scrumm, I feel qualified talk it.
Those of you close enough can tell that is a fake scrum tattoo.
At the end of our session today, help yourself.
I got a bunch of scrumb tattoos up here.
So if you're at all bought into this, grab some scrumm tattoos on the way out.
And I don't want to fly them home to the US, so take as many of those as you want.
Oh, I hate going back to animated slides.
But I just want pause here in case there are any questions on that, because this is kind of the whole framework in cases brings up any any question anybody
has right now.
OK.
Let's get through our animation here.
I want to talk about sprints, these one to four week time boxes where the team is making progress on the project.
By far the most common is a two week iteration.
My recommendation here is to find a link that works for you and stick with it.
Do not bounce around.
Don't go two weeks, one week, four weeks.
Three, two, to two.
One, for two don't bounce.
Around find the link.
That works.
For you.
And stick.
With it A lot of factors influence our sprint length.
Sometimes it's things like how long our product owner or business can go without changing their minds.
All right?
Sometimes, it is how quickly we need to deliver things to the market.
So think about pick a length that works for you.
It's not a life sentence.
You can change it a few months from now.
If it isn't working for ya, change by all means.
But don't bounce.
Don't balance around.
That rhythm is beneficial.
I don't like four-week sprints.
That's our maximum.
Calendar month is our max.
We end on the 18th.
Very few people do that.
Some people will do a four week sprint.
Every four weeks, we start a new cycle.
I Don't Like Four-Week Sprints One of the reasons I dont like 4-week sprint is it leads to thinking like this.
Oh, We got 4 weeks.
Let's use the first week for analysis.
Design the second week.
Code the third week, and we'll test the fourth week And that's not what we want to do on a Scrum project.
On a Scrum project, what would like to is to have a little bit of everything happening all the time.
There should always be some design going on, always some coding going.
Now in different amounts, we're not going to be doing most of our coding the last day.
At least I hope not.
But we wanted to balance that out.
We're in the analysis phase of the sprint.
And when we go to a really short sprint cycle, teams figure that.
You've only got a week.
You're not going to have a day of analysis, a design, and a coding.
So teams will figure that out with the shorter sprint lengths.
Longer sprints tend to get tempting to introduce phases into our sprint.
It's not a good thing.
Talked about no changes.
No changes in a sprint.
This slide is just kind of repeating that.
What we're trying to do here is to create an environment where the team is allowed to focus.
I remember it was about two weeks ago.
Before I left on this trip, I'd left the office.
I went home, and I was still trying to get some writing done.
All right, books.
And so I still try to do some riding done at home.
But it was starting to close to dinner time, And I could hear my wife banging around in the kitchen.
Dinner's getting ready.
So I don't want to start on the new article I have due, because it's almost dinnertime.
Don't wanna get my head into the article.
and so i replied to some email.
Read a couple documents.
Okay, play a game too.
And dinner should be done by now.
It's only 45 minutes, you know, they're banging around.
My wife's a good cook, but it's not like she cooks things that take hours to cook.
So I was like, dinner's got to be ready by know.
And so I go ask her, what time are we eating?
And she said, oh, not for another hour.
Our daughters had longer dance practice or something, so they weren't going to home at the normal time.
What had happened here is I'd let all that time escape because I kind of feeling this, you know, constant, oh, I'm about to be interrupted for dinner,
and so I didn't get productive.
I just kind let that time slip away.
So we're trying to create an environment where the team does not feel like they're about be to interrupted.
You've got two weeks, so i will not change my mind on you.
Go build gift wrapping or vouchers or whatever it is we've chosen to do in that sprint.
We try to leave the teamwork alone, let them focus, create that environment for them.
The Scrum framework is made up of three things.
We've got roles, and we have three roles on a Scum project.
And we've ceremonies, activities that happen on our Sc rum project, And artifacts.
So what I'd like to do is to dive into these roles and ceremonies and artifacts Let's start with our three rolls.
The first role on the Scurm project is that of product owner.
Our product owner is our key business representative, kind of the key stakeholder.
This is the person who is often funding the project or who represents the users to us on the product.
Product owners are responsible for the Product Backlog, for making sure the Project Backload is in the right order.
product owners also responsible from making what I refer to as scope schedule trade-off decisions.
Scope schedule trade-off decisions.
Here's what I mean.
We're sitting here in early June.
And we're thinking about it.
Should we release in September with that much functionality?
We can have that by September.
Or we could have much by October.
September, October, September October And so our product owner makes that scope versus schedule of trade off decision.
When would be the right time to release?
Early with not as many features, later with more.
So they're the one who makes those type of decisions for us.
One of the nice things about Scrum We don't need to decide that today.
Some of us do.
But others of can wait until maybe August.
And in August we'll decide, OK, we're pulling the trigger in September.
It's going to be September release.
Or we might get to August and go, yeah, our competitor didn't release their product.
Let's skip September, We'll go to October, and we really have a bunch of features in there for our customers.
So often we don' have to make that decision now.
At the end of the sprint, the product owner is shown by the team what they built.
And the Product Owner accepts or rejects each of product backlog items.
The Product owner can look at it and say, I love what you did with return.
That's fantastic.
Vouchers, we got to go back.
We got make some changes to vouchers.
So the Project owner accepts and reject the work of team at the ends of each sprint.
Now, I often think of the team as a race car.
That makes sense.
The team's job is to go as fast as they can.
So the teams a racing car, the product owner is the driver of their racecar.
They're the one aiming the car at the right goal.
We have another role on a Scrum project called a scrum master.
You might have heard about this role.
It's got a weird name.
Scum Master.
Now we've got this scrumm master role, I think of the scrm master as the mechanic for the car.
The scrmm master's job is to have that car as tuned up, as ready to go as possible.
So the Scrum Master helps the team go as quickly as they can, but not necessarily in the right direction.
That's the Product Owner's job, to get the Team aimed in right directions.
So we have Product Owners, Scum Master, and Team.
Often the one who is supposed to know Scrum the best, they're the ones that helps the team use Scum to be successful.
They're one that might make decisions like how long our sprint should be.
When I first started hiring Scrum Masters, I started doing this in 1995. We didn't have the title Scum Master.
So I needed to hire people to effectively do this job.
I just called them project managers back then, but they were a very different type of project manager.
And I told them their job was to be bulldozer and shield.
Bulldozer and shield.
They were a bulldozier.
Any problem in the team's way, get it out of the way.
That's your job.
You're a shield, you're there to protect the Team from any sort of outside distraction.
Later we started to think about the metaphor of coach for Scrum Master.
So I also think of a Scum Master as a coach.
Somebody there helping the teams on to their best performance.
And we think a about a Coach on a sports team.
Scrum Masters are a coaches.
There to help the Teams be the best they can be.
The third role is team.
Team.
Only three roles we have on a Scrum project.
Product owner, Scum master, and team, typical team size five to nine people.
I hate putting a number up there, though.
If I have to do it, if I didn't, you would ask me that.
How big should a team be or can it be?
Five to 9. For me, that does include the product owner and Scumbaster.
Five the nine.
But I don't like putting the number here, I like instead how Amazon does it.
Amazon talks about their teams as being what they call a two pizza team.
A team they can feed with two pizzas is the right size.
And I like that as a way to think about our team size, by the way, if you're hiring, that's me and one small tester.
Some days, a very small tester.
So as silly as that is, I think it's the right way to think about our team sizes, right?
And I'm not picking on any food allergies.
I've got my own.
But if you have a big team, you're not going to remember what people can eat and don't eat or like to eat, things like that.
If you've an eight-person team you know how many pizzas to order.
And you remember you got two people who are vegetarian.
All right, if got a 23- person team How many vegetarians do we have again?
And is he still gluten-free?
I mean, it's too hard.
It's to hard, right?
So if ordering lunch for the team is hard the teams too big.
I think that's the Amazon lesson.
And 5 to 9 a real good sweet spot for our Scrum teams.
Scum teams are meant to be cross-functional.
They're meant have everybody we need to go from idea to implementation.
Everybody we need from idea to implementation, we can take a product backlog item and fully implement it.
Meaning that team will have programmers and testers, maybe database people, and maybe UI designers.
UI's not important though, at least that's what I heard this morning right now.
Some teams it is, some teams is not.
Now you're doing more of an API team or something.
But we're going to have everybody on that Team necessary to go from Idea to Implementation.
I'd like most of those individuals to be full time.
that I've got the word should up there.
I know in today's world, we're not always going to have everybody full time.
But the more we can do that, the better off we are going be.
Self-organizing, we touched on this.
We said there is no one person, no tech lead, who gets to assign out all the tasks.
And then the last one, I mean, barely worth touching on here.
Memberships should change between sprints.
It's just too confusing for teams if you're getting new team members in the middle of the sprint.
So we try to put any team member switches should happen at the spring boundaries.
So those are our three roles on a Scrum project.
Let's touch on the four ceremonies of Scum.
Four ceremonies.
We've got one called Sprint Planning.
One called sprint review, another one called a sprint retrospective, and then a daily Scrum.
So let's start with our planning meeting.
The other three meetings in Scum are very short.
Very short, this one long and painful.
This is going to be a few hours.
Some teams will take a whole day to do this if they have a long sprint, complex project perhaps.
Most teams have got this done in two to three hours, but some teams'll spend longer.
Everybody attends the team, the scrum master, their product, or the whole team is going to be there.
That's going be a consistent theme across all four of these meetings.
The agenda is for the teams to talk about the top of the product backlog.
Remember the Product Backlog, our Prioritized Features List.
We don't talk but the Whole Thing.
The whole product backlog, there may be stuff on there we're never going to do.
There may stuff further down in that prioritized list.
We're not going do for six months.
But we are going come together and talk about the top items.
What might we do this sprint?
What's a little bit beyond this?
Maybe we can get it in.
So the team will talk the about top of the product back log.
They select what to do.
That is a really important bullet point.
The team selects what do do, the product owner does not tell the team.
No, the team selects how much they can do.
Teams are empowered to select the amount they could do, now they should be motivated, they shouldn't go, we get to choose,
okay, you know we'll just do that much.
The team should do as much as they, but it's up to them, nobody gets to say you have to do eight items or you do one fourth of the backlog.
The reason why we do this meeting is to feel like that what we are going to do has been talked about in enough detail that we understand it well enough
to have a chance of succeeding with it.
We come out of this with two things.
I mentioned the sprint backlog.
Sprint backlogs can be a list of tasks.
Spring goal, just kind of a one-sentence summary.
It gives us a once-entence-summary we can use to describe to outsiders, your boss's boss wants to know what you're working on.
That becomes our sprint goal.
A one sentence summary of what we're doing.
The way this works is we come together, the whole team, product owner, scrum master, and team members, And the team looks at the top of the product backlog,
They read that backlog item and they say, OK, what do we have to do?
They create the list of tasks.
Most teams will estimate those tasks, so that's going to take six hours, that can take four hours.
Mostly breaking things down into the kind of four to 10 hour range, most tasks They commit to one item, they grab a second item.
They break it into tasks, estimate the hours.
Commit to it.
The grab 1 third.
And they keep breaking these things down.
Now this is called a sprint planning meeting, but I think the meeting is a little bit misnamed.
Because it's not just a planning meetings, it is also a design meeting.
the team is doing technical design in this meeting the Team is Doing Product Design in This Meeting.
See what I mean here.
We're in this meeting, and the team says, how should we handle this error?
What should do if the user types in that?
The product owner says wow, I'd want you to do this, we've got to make sure this doesn't happen.
That's product design.
It's also technical design, when the time is making their list of tasks, they're talking about things like, wow should this in the middle tier?
No, no, we got to do this in the UI.
It's got be more responsive than that.
Let's do in this the JavaScript.
And so this is a technical design, a product design and a planning meeting all three together.
One of the reasons it takes a long time.
That's also the reason I don't get too frustrated when it's taking a lot of time because it is us there designing the project.
Designing the feature at a high level at the technical and product level.
It's our sprint planning meeting.
Longest, only real painful meeting on Scrum.
The shortest meeting of Scum, the daily Sc rum.
Here is where we get together once a day.
for 15 minutes maximum, not guaranteed minimums, 15 is maximum.
And we talk about how things are going.
This is a chance for team members to synchronize their effort.
It is not a problem-solving meeting.
We're not there to solve issues, we're there just to discuss things.
Now it's very common for the team to hang around afterwards, maybe half the time, and solve a But we don't mandate that the whole team has to stay there
to solve some problem that came up.
We just kind of raise issues, discuss things.
All right.
All I came across is, so we're just a little bug yesterday, but I got it fixed.
I recommend everybody change this parameter to your JVM.
Something like that might get mentioned.
Others are like, I'm really stuck on this.
Can somebody pair with me for a half hour today?
I just need to talk it through with somebody to figure out what's going on.
So we talk through issues like in this meeting.
The meeting is...
meant to be for team members only.
All right, now we allow others to talk, but it's meant, or we'll allow other to attend, But it is meant only for the team to members talk during this meeting.
And you might be wondering why I got those weird chickens up on the screens.
Let me explain the weird chicken up there.
There's an old joke in the Scrum world.
You gotta know this old jokes if you're gonna be anywhere near Scum.
The old is this, there's a chicken and a pig walking down the street.
When the chicken decides, let's start a restaurant.
Let's start a restaurant.
What do you think, pig?
And the pig says, that is an intriguing idea.
I'm a very entrepreneurial type of hog.
And I am sick of working for the farmer.
Let us do it.
But the pigs says what are we going to call the business?
What are going call to the restaurant?
The chicken says let's call restaurant ham and eggs.
The pig said no thanks, I would be committed.
You would only be involved.
Not the funniest old joke.
Not the funniest old joke, but a very common joke in the scrum world.
And it is meant to point out the difference between that chicken who just lays an egg or two, and the pig who lays down his life to be part of the breakfast.
Now, nobody likes to call a chicken or a pig, so I'm gonna beg your permission to let me refer to people as chickens and pigs for the next 60 seconds or so.
Because here's the idea.
The idea is that team members are committed.
They're pigs.
Is a pig?
The Scrum Master is committed.
There's debate.
Sometimes there's a debate about the product owner.
Is the Product Owner committed?
Are they a Pig?
Or are they just involved, or are just a chicken?
Well, here's the answer.
The early days of Scum, the 90s, Product Owners were chickens, and we were happy to have that.
But the 1990s model of Product owner was somebody who showed up, said, Here's what I want, I'll see you in a month.
And they came back in the month and they told us if they liked it or not.
What we've learned is it's a much better model to have a committed product owner.
Somebody who is a full-on team member, somebody who's there not necessarily every day, but somebody is there at least mentally with the team during the process.
So, today's world of the product owners are pigs, they are committed team members, and they're allowed to talk in the daily scrum.
But, your CEO, I'm generalizing here, assuming your C.E.O.
is not also one of your best programmers, Your CEO shows up at the Daily Scrum.
We tell your CEO, ooh, sorry.
Please be quiet for a few minutes.
Will finish our meeting.
And then we'd love to hear any questions you've got for us.
But let us get around the room and do our Daily scrum first.
In going around, the we answer three questions.
Each team member answers three question.
What did you do yesterday?
What are you going to do today?
And is there anything in your way?
I touched earlier that these are not status reports.
These are team members sharing information with each other.
Let's look at the other two meetings.
We've got a sprint review and a Sprint Retrospective.
Similar meetings, very different in terms of what happens, but similar meetings in this sense.
is about inspecting and adapting on the product.
We look at the products, we inspect the project, and we adapt.
we make changes.
Customers aren't going to like this.
Oh, wow, customers love this new UI we've added on this part of the application.
Let's go do more of that.
So we expect and adapt on a product The retrospective, We inspect and adopt on that process.
We talk about how Scrum's working for us, and we make changes to the process.
So the review, we inspect and adapt on the product.
It is a demo.
The team demonstrates what they've built.
Now, this takes very different forms in different companies.
In some companies, were demonstrating to product owner.
And other cases, the project owner is demonstrating outside stakeholders.
Typically going to be up to an hour long meeting.
I don't want this to go much longer than that.
It's a hard one to predict because if you're doing longer sprints, you are doing stuff that's very UI intensive.
You can have a longer sprint review than a team that is building a commercial API into something.
Everybody's got an opinion on colors and user interfaces.
So those type of meetings will take longer.
So this is the review, we're getting feedback.
We're looking for things we should change.
In the retrospective, were looking things for we change in the process.
Were talking about how is Scrum working for us?
And we might decide Scum's fantastic, but not those four week sprints.
Let's go down to two week sprint.
Nah, I think three week is better.
Lets go to three weeks, let's start with that.
Or I thinks Scums doing okay for but our product backlog items aren't detailed enough.
We're coming into the sprint with just something that says cancel an order.
That's not enough detail.
We need a little more detail before we start.
Let's find a way to add detail to our product backlog items.
Or maybe the other way around, we've got too much detail in our backlog.
So in a retrospective, were looking at ways to improve the process.
My favorite way The retrospective is just in what we call a start-stop-continue meeting.
We have the team come together and say, what should we start doing?
What should stop doing, and what shall we continue?
So not very touchy-feely here.
I don't really care.
Ooh, how do we feel?
No, no.
What are we going to change?
We're very action-oriented.
What are we going to start doing?
What we're going stop doing.
So we are focused on things very directly actionable that we can change in the sprint.
Lots of other ways to do a sprint retrospective.
This is just my preferred way to this.
Let's look at our artifacts.
Product backlog.
The product backlog, I mentioned this earlier, is the requirements list on a project.
It's prioritized by somebody called our product owner.
And the idea with the product backlog is that each item in a product back, I always kind of think of it as an Excel spreadsheet when we bring one up.
Each item and the project backlog should be valuable to our users or customers.
Each item should be valuable to our users or customers.
Now, if you've heard of something called user stories, a couple of these are in the form of a user story.
Probably the second, third, and fourth I would say qualify as essentially user's stories.
User stories are short, simple statements told from the perspective of the user.
As a traveler, I want to be able to book a room in this hotel.
As a traveler, I want to be able to specify the type of bed in my hotel room, something like that.
These are short, simple statements that a user might have for our system, in that case, the travel system.
In this case I'm showing a product backlog along with an estimate.
Next artifact is something called a sprint goal.
Sprint goal, just a short summary of what we're trying to do in that sprint.
One or two sentences.
And again, this is where I said earlier, This might be for your boss's boss.
You park, you get in the elevator, You push the nine button, and your bosses boss gets in, And your Boss's Boss says, What are you working on this sprint?
Well, your boss doesn't want to hear your whole sprint backlog.
Oh, I got to code this.
I've got design this, oh, we got a UI review on this and they don't hear that.
They don' even want hear all of the product backlog items.
they want a short one or two sentence summary.
Something like this Well this sprint we're working on basic shopping cart functionality.
Things like add review and update quantities.
A couple weeks later, bad timing, you get in the elevator with the boss's boss again.
And the bosses boss wants to know what you're working on now.
Well, he got another sprint goal.
You say, well, this time we're workin' on the checkout process.
Things like paying for an order, picking, shipping methods, things like that.
So it's a short one or two sentence summary that we can use for outsiders, outsiders of the sprint.
Next artifact.
Oh, I actually want to stick with managing the backlog here for a minute because I want show you a sample one.
The sprint backlog is always meant to be an up-to-date reflection of what we have to do.
meaning it's never complete.
We're going to do a sprint planning meeting, and we're gonna write the sprint backlog.
But we are not going think of everything.
In fact, I don't even want you to think everything, but I want to you think fairly hard, come up with all this easy stuff you can.
Don't stay in there forever thinking harder and harder, making that meeting longer than it needs to be.
Do a good job, think the stuff that you and then let the Sprint Backlog evolve.
New tasks will show up, you'll re-estimate things.
That's harder than I thought, that's good because this one is easier than thought.
So anybody can add to the sprint backlog once the sprints starts.
Any team member who discovers something.
So the key point here is that work emerges.
This whole idea of emergence is a very common thing with Scrum.
The product backlog emerges, we don't have the whole thing.
the Sprint Backlog emerges we, don' have everything identified on there.
So here's a sample sprint backlog.
We walk out of the sprint planning meeting.
Let's say we're doing one this morning.
You'll notice that coding the user interface, about half done.
Took that down from eight hours to four hours.
Middle tier went from 16 hours, to 12 hours We finished up the online help system.
Our tech writer had a good day yesterday.
Tech writer didn't work 12-hours, but did get to cross out a 12 hour task.
Had a real good productive day, and our techwriter finished that whole task Wednesday, watch what's going to happen on Wednesday.
Especially the bottom there, I added a task This is where we discovered a new task.
I forgot error logging.
We didn't think about that during the planning meeting, so we added it on Wednesday.
The other thing to notice there on wednesday is look at the top row.
Coding the user interface got harder.
I worked on it all day yesterday and it went backwards.
It's going to be harder than I thought.
Back to eight hours.
So the idea here is that the sprint backlog just represents our best guess at any point in time of what we have to do and how hard it's gonna be to that thing.
And then Thursday and Friday.
Sprint backlog looking something like this.
Another artifact out of the scrum process is something called a burndown chart.
This here is a sprint burn-down chart.
This is real one.
It's a team outside of San Francisco, California.
And you can see up there in the top left, the very first point is around 780 hours.
These guys were doing a 20-day sprint.
Those are dates on the bottom.
I should have changed those to be more European-style dates.
Just didn't think about it.
Wasn't looking at it The first day of that sprint, they had 790 hours of work.
The second day, They had more work They had a productive day.
They worked all day on Monday.
But when they added things up on Tuesday, they had noticed two things.
New tasks.
Things like error logging on that earlier screen.
Oops, new task.
And tasks they have identified got bigger.
So those two thing conspired the first couple days to send their backlog up.
Look in there at about 16, 17 days into the sprint, you'll see a big drop.
The dropped 200 hours.
Now that's a good day!
Well, except they dropped the 200 hours, they didn't actually make 200-hours of progress.
They dropped a product backlog item out of the sprint.
That moved them a whole lot closer to their goal.
So with the Sprint Backlog, all we get to see here, the sprint burndown chart, is how far the team is from the goal?
I don't know if that was a good or a bad thing, we just see where it is.
And they made progress there, but not in a great way.
Here's a sample of making a sprint burndown chart.
We add up the work.
Get a new dot, we put that dot on the chart.
The next day we add up the work there.
Put a dot new on a burn down chart, so each day, day by day were putting these new dots onto the burn-down chart this is something I would expect Scrum
Masters to be doing the Scum Master will do this in a minute or so a day.
A lot of tools will this do in an automated manner.
Not a big fan of the tools, they get in the way for other reasons but a tool does make this part of Scram a whole lot easier.
But hopefully adding numbers up isn't the hardest part in doing Scrom.
That'd be nice if it was.
Scrum Scales.
I've worked on a 560 person Scum Team.
And I've consulted two, three, 1,000 person Scrum projects the first time I said that, I say team.
No one is on a 560 person scrum team, right?
Imagine 5 60 people standing around in a circle trying to get a daily Scum done in 15 minutes.
All right, the point with that is that Scums scales up by having teams of teams, all right.
We don't get one big team we have teams teams.
So we're still going to keep our Scrumb teams in that seven to nine range, maybe a little bit bigger, Don't go too big.
Remember, we're going to cut the pizza slices too thin.
But maybe a little bit bigger when you have a 500 person project.
You're gonna have 10, 11 person teams more than the six person team just because of the hassle factor of having that many teams.
So a number of things will influence how we scale this up.
One of key things in scaling up is a meeting.
If you've heard about Scrum, you might have heard of this meeting, It's got a very catchy name.
I don't think this meeting is as important as its name is catchy.
So here's the meeting.
The idea is to do what is called a scrum of scrums meeting, picture each of those blocks of team members down there doing a daily scrump,
the little 15 minute meeting right now.
Imagine this is something like Microsoft office.
This makes Microsoft Word.
So I've got three teams working on Word, but you know what?
Word is one product.
I want to have one person from each of the Word teams come together and talk about overall Word issues.
All right, so we got 3 teams on working Word but let's pick one from those Word team, have them get together maybe twice a week,
and have another meeting.
We'll call it a Scrum of Scum of Scrums.
A third level would be a scrum of scrums.
And these are coordination meetings that we use to coordinate across the multiple teams on a larger project.
This is just one of the things we do to scale ScrumUp.
I think a more important thing we to do scale ScrumUp is this.
We call this a community of practice.
What I'm showing here are just our three Scrum teams.
What want to do is I want have conversation cut across our Scum teams, face it, I need the programmers talking to each other.
So we set up this thing called a community of practice, which is a group of like-minded or like skilled individuals.
And so I went to programmers, talking each to other, this might just be a shared discussion list, a little shared email list.
Maybe it's a share email in a monthly meeting.
Maybe it's a weekly lunch that the testers have.
The DBAs, our UI designers, are scrum masters as well.
the point here is to have ways to communication cut across our scrumm teams.
These communities of practice help us do that.
I'm not going to focus too much on this, just here's a list of books that are on Scrum in a significant way.
I've got a book on estimating and planning Scum projects.
We've had sessions on that later today.
Clinton Keith has a great book, on agile game development with Sc rum.
This is actually the best book to go into all the technical practices.
So if you're a programmer, tester, really looking to understand Scrom, let me skip testers for a second.
If you are a program, you really want to learn Scram and the practical practices, real good book.
I know Esther Derby is here tomorrow.
Agile testing.
This is why I said skip testers for a moment.
Here's the right book for testors.
Agile Testing by Lisa Crispin.
Coaching Agiles Teams by Elisa Adkins.
This is a book on all the soft skills for Scrum Masters.
All the ways to coach your team to the best performance they can.
Essential Scum is coming out next month.
Succeeding with Agile is my book.
Don't buy that book first.
That's kind of a second book on Scrum.
It goes into all the specifics.
Not a good starting point, but a great second on Scrum.
And then User Stories, I don't know if they have that out there, they might, is about the product backlog.
As I mentioned earlier, this presentation is totally available for you.
It's up there in PowerPoint in Keynote format.
Please take it, make it your own, use it to convert your companies, your friends, user groups, whatever you want.
Um, it's been translated into 23 languages, so go ahead and grab the, uh, kanji version and impress your boss with your,
you know, multilingual skills.
Flash up the Romanian version, just go, whoops, I was working on my Romanian over the weekend.
This is up there on my website, which is mountaingoatsoftware.com.
You'll find presentations up here, including this one in that format, plus a ton of other presentations.
They just asked that I put this in here.
I've got classes coming up on Scrum here three and six months from now.
And there's my contact information.
I'm around all day today.
So I am fair game any time for other questions.
And I've got a lot of other sessions on Agile.
Hopefully this one kind of piqued your interest.
Again, grab some Scrum tattoos because I don't want to have to fly them home to the U.S.
Any questions before we wrap up?
Get you guys on your way to next session a few minutes early.
One is based on the product backlog.
I know you have a separate session on it, but my understanding of it is more higher level user stories.
But let's say you had bigger tasks, such as if it's an existing software, so you need to do some major refactoring or not visible.
Right.
First question is how do you get those into the project backlog?
Okay.
If you have a small team and you also have running soft system so you get all this immediate bug fixes and all these things that will affect the team,
how can you best...
OK, two real good questions.
So the first question is, what do we do about stuff that's not really kind of new feature oriented in the product backlog?
Refactoring, cleaning things up, things like installing a new version of Windows or new Linux servers, all that type of stuff.
The product back log is meant to represent anything we need to do to get out a successful product.
Those type things do go on to the project backlog as well.
I think if we went back to the example product backlog I had up there, I'll just flash back there while I'm talking, the sample product back log I have
up here had at the bottom of it an item that said to improve exception handling, a purely technical thing, this would be some sort of refactoring thing.
We could change that into a user story that was user focused if want.
As a users I'd like errors handled in a more appropriate manner so I don't see a bunch of Java jumped on top of the screen or something like that.
So I do think those type of things are totally appropriate on a product backlog.
Sometimes we do have an issue with the product owner, having to convince them that those are worthwhile things.
Some teams will get around that by somewhat agreeing with their product.
Look, we're just going to keep a certain amount of our time for ourselves, for technical cleanup things, other times I'll meet teams that'll say,
We have a hard time convincing our product to allow us time refactoring.
All right, so here's my advice on how to get your product owner to allow you time for refactoring if they're not letting you do that.
Go to your project owner and make the same arguments about refractoring that you made when you convinced your products owner that need time to compile
your code.
probably didn't have that discussion, did you, right?
It's just part of doing a good job.
I have to compile, assuming I'm a compiled language, I gotta compile my code, so that's not the product owner's business.
That's me doing good a job, me writing good code is just me doin' a god job my product doner doesn't get to tell me about that.
Now when I something that gonna put me out of commission for three weeks while I refactor a huge chunk, okay, now we gotta have a conversation.
But all those little things that are just about doin a God job that I not gonna going to have a discussion with.
In terms of how do we get a team to protect the team's time if they're working on a new version or a big new set of features,
and they are also doing support on the current version that's out there, here's how I think about this.
I'll grab my water bottle here.
The first thing that you pour into the sprint is corporate overhead.
It takes a certain amount of time to be a good employee here, So I got a pouring corporate overhead.
The next thing is planable time.
That's how much time the team has that's their own.
Then I have unplanned time, unplan time goes to tasks I don't identify, tasks that get bigger than I thought, now both of those are kind of my fault,
but they also go to interruptions, servers down, Mike, please go fix it.
So I have to leave some room for plan of unplanned time up here.
Now let's hypothesize two teams here, one team is two people in a garage making their first iPad game.
Not a lot of corporate overhead, right?
Corporate overhead for them is, hey, you order the pizza today, all right.
Lot of planable time, not a lots of interruptions.
So they have a lotta time that's their own.
Now, hypothesize another company in a big bureaucracy doing second level tech support on their shipping product.
They have lot less time it's there own So when they go to plan their sprint, they will have less time available.
When we think about things like, and I think we've got one coming up here shortly, when we thing about thing like their burndown chart,
what I'm saying here is they would not start up as high vertically.
They wouldn't have as many hours at the start on that first day.
So, okay.
Thank you guys very much.

Scrum Master: Essential for Team Success in Scrum

Transcript

Can you do Scrum without a scrum master? Definitely not if you're a new team. A new will need someone who takes on the job of learning enough about Scum to guide team members through it. As the team gains experience, and I typically mean a lot of experience. It may be able to get by without the scrumm master. Notice I said get-by. I didn't say a team can thrive without Scumm Master. A good Scrum Master helps a team by anticipating problems, by facilitating meetings, removing any impediments to progress, coaching team members through the process, encouraging team-members to collaborate more deeply and frequently, and generally doing anything they can to help the team. The Scum Master doesn't always need to be a full-time position, but doing Sc rum without a Sc Rum Master is like having a cake without frosting. You can, why would you want to?

Scrum Police

Transcript

I'm Mike Cohn from Mountain Goat Software.
Rumors of the scrum police have circulated for years.
You've undoubtedly heard stories of a knock on the door at midnight and a scrummester taken from the team never to be heard from again.
These are rumors no longer.
The scrumb police are real.
As the new director of The Scrum Bureau of Investigations, I pledge to put an end to all scrump violations.
If you commit a Scum Infraction, the Scrumb Police will be knocking on your door.
But she was my boss!
I can't tell her not to talk during our team's daily stand-ups!
Ah, I thought I could be both scrum master and product owner.
I don't care if you're a product-owner or a scrummaster or the author of the Scrum Guide, i will put you behind bars.
i always knew that the definition of done was mandatory, but i didn't.
That was until a Scum Police showed up.
Bet you care now.
Oh, I care NOW.
The time for being soft on scrum crime has passed.
Have a planning meeting without a sprint goal, or skip a retrospective, and you'll do time.
What is wrong with coding in one sprint and testing in another, huh?
What is wrong with coding in one sprint and testing in another?

Scrum Success: Estimating Product and Sprint Backlogs in Teams

Transcript

Can you do Scrum without estimating yes and yes? Why two yeses? Because there are two levels at which a Scum team can estimate. They can estimated their product backlog items and their sprint backlogs items. You can be successful without estimate either, but there some caveats depending on your organization. That's because teams estimate product backlog items for two reasons. One, estimates enable you to make predictions, like how much you can deliver in three sprints, or when a certain amount of functionality can be delivered. And two, estimate help the product owner prioritize. If no one is asking you how it can delivered by when, and your product donor feels comfortable prioritizing without estimates, go ahead and forego estimating your project backlog. As for your sprint backlog items, estimating those can help the team determine more accurately how much work to bring into a sprint. But if your team often struggles to finish what they bring in to the sprint, try estiming sprint back log items at least for a while.