The team should always meet its date. The job of the Product Owner
is to manage scope to get the best possible product By The Date.
Ron Jeffries
www.XProgramming.com
You do ill if you praise, but worse if you censure,
what you do not understand. --Leonardo da Vinci
Is the team completing their work at the end of each sprint? Meaning,
the work result is shippable?
Are estimates of scope by the end of a sprint tied to the actual
velocity or to someones wishes? (It might be the team members who are
wishful and unrealistic. It might be the company who is demanding
fixed scope in a fixed amount of time, which will not happen. It
might be everyone still ignoring reality and planning on heroics.)
The team should not be committing to more work (scope) in a sprint
than they are able to deliver. They know how much they can deliver
based on what they have been delivering, not on what they
optimistically think they can do.
The Product Owner should not be committing to more work (scope) to the
stakeholders than what the team can deliver. The PO knows what can be
delivered by what the team has actually done before.
The company needs to know the work (scope) that the team can actually
deliver, not what someone tells the team to deliver.
Don't commit to dates. Scrum operates in time boxes and the dates are
fixed. Commit to scope and get better at delivering what was
committed at the Sprint Planning meeting.
Alan
> --
> You received this message because you are subscribed to the Google Groups
> "Scrum Alliance - transforming the world of work." group.
> To post to this group, send email to scruma...@googlegroups.com.
> To unsubscribe from this group, send email to
> scrumallianc...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/scrumalliance?hl=en.
>
Don't commit to dates. Scrum operates in time boxes and the dates are
fixed. Commit to scope and get better at delivering what was
committed at the Sprint Planning meeting.
One way to look at a project is through the "traditional" project
management view. One of the tenants of that view is what is sometimes
referred to as the "Iron Triangle" (See
http://en.wikipedia.org/wiki/Project_triangle#Project_Management_Triangle)
The triangle has three points of focus: Scope, schedule and cost.
Quality lives in the center to indicate that it does not change. The
other points are supposed to be negociable to allow for the needs as
the project progresses.
A very common is that most project managers, customers and management
attempt to define scope, schedule and cost up front and fix them, as a
commitment. This is fantasy as shown by industry and personal
experience.
A careful reading of the Agile Manifesto reveals that it holds cost
and schedule fixed, the team does not change (cost) and time box end
dates are known (schedule). What varies in Agile is scope. We know
the end date of the sprint or iteration and we know how much it costs
to work the project for that amount of time. What we don't know is
the exact amount of work that will be done.
That last sentence is scary for many. It is the "elephant in the
room" that all the Gantt charts in the world cannot make go away. The
more creative and innovative the domain and solution, the more true it
is that we don't know the amount of work that will be done. And
further into the future we gaze, the less we know of exactly what will
be done. This is the very reason Agile is scary and also why Agile
works!
If we don't know what will get done, how can we plan or commit to
deliver? How does the customer know they will have value from the
cost they spend?
- Don't gaze far into the murky future. Plan and execute in short
time boxes (Sprints) that end within the "horizon of predictability"
for you and your customer. (See
http://www.energizedwork.com/weblog/2006/01/planning-with-horizon-of.html)
- Because we don't know exactly the scope of the entire project, we
prioritize. Work on today's highest priority, most valuable stuff
now. That way, when the future date of end of money or sufficient
value is delivered, we know the most important work is done. The
highest value is completed, whatever date is declared as the end of
the project.
- At the end of the sprint, everything stated to be done, must be
done. As in shippable, can be deployed and used by the customer. The
customer gets value at the end of every sprint. The team is able to
change direction, adjust and adapt to the new environment and see to
the next horizon of predictability. If they don't get done, they
cannot be agile. Getting done is what allows agility.
- Measure what actually got done (i.e. the scope that was delivered).
Several measures of what actually got done gives velocity. Velocity
allows you to look further into the future, to move the horizon of
predictability further out. Use the measure of done as a basis for
planning the scope next sprint.
- Now the team can commit to a specific scope for the current sprint.
They know how much scope that can commit to by the end of the sprint.
For the time of the imminent sprint, they can fix scope, schedule and
cost. And they can commit to it on data, on what they have done.
So, the team doesn't commit to dates. The team commits to a specific
scope by the end date of the sprint. They commit that the product
will be shippable at the end of the sprint. They commit to being done
at the end of the sprint. And they commit to doing a certain amount
of scope every sprint. They need to measure the scope they are
capable of completing in a sprint so that they can be more confident
of their commitment. And as their commitment to scope per sprint
becomes more accurate, the company and customer can use this velocity
measure to be more confident that deliveries will be met. And the
customer is getting value each sprint, learning what is really
valuable and what is not, guiding the project sprint by sprint.
Alan
- The developer should not be doing estimates without the rest of the
team. Generally. Estimates from a team are much more accurate than
one person alone, even if that one person ends up doing most of the
work being estimated.
- The manager is by-passing the team and Scrum, as is the developer.
They should not do this.
- The developer should not be committing to things that require extra
work time. In fact, the developer is undermining the team by doing
so. In Agile the team commits to parties outside the team, not
individuals. Team members commit to each other.
- The manager is undermining the sprint planning process and derailing
the direction of strategic work. He should be interfacing with the
team through the Product Owner and the Product Backlog.
The scenario you describe is neither Scrum nor Agile. If it is a
common occurrence, it is a dysfunction and source of impediments, as
you have described.
A correction to your second summary point: Don't commit to dates. The
team commits to a specific scope by the end of the current sprint.
Dates are just markers of the end and beginnings of sprints.
Alan
> Instead, the Product Owner would have worked to
> understand the stakeholder's need in terms of implemented
> functionality that could be objectively verified and validated
I like the answers from John and Alan. One thing I'll add: An especially hard part of the Product Owner's job is to maximize the amount of work that won't be done. Schedule problems are prioritization problems.
When a team has completed a sprint, they have a velocity metric, of
how many story points they can deliver per sprint.
If the team goes ahead and does a rough estimate on all stories that
are of interest, then the PO can use those estimates combined with the
velocity to give a very rough estimate of which stories could be
delivered by which date.
Of course the further out the date, the rougher the estimate. And
stories further down on the prioritized product backlog should not
normally have as accurate estimates anyway.
Keep in mind that the velocity normally changes every sprint too, as
the team gets better at estimating, so these longer term estimates
could be continually revised.
> Consider this scenario:
> We want to make a long-term estimation/guess ( 1 year ) because a date is
> very very very important for the business, and we need
> to have a minimum functionality working for that date:
> In this case, what a lot of managers would do, is to multiply what they
> think it is going to take by 2.
> Does Agile speaks about this scenario? How far in time have you guys
> estimated in an agile way. Agilel is about finding the balance
> between Agility and Predictability, is not it? I know you guys mention the
> predictability horizon, but I would like to hear about your experiences on
> this and I will tell you mine.
Agility and predictability are not opposite ends of a stick. More
agility provides better predictability, not worse. Here's what I
recommend.
1. Choose a date to ship.
It does not matter how you do this. Quite possibly the best dates
are chosen by fiat. (So visit Fiat and find out how they do it.)
2. Ship the best possible product by that date.
This is done by the Product Owner selecting the features that
will, by the date, provide the best possible product. It works
best if done very collaboratively with the team, and with end
users.
Perfectly predictable, perfectly agile.
Ron Jeffries
www.XProgramming.com
Wisdom begins when we discover the difference between
"That makes no sense" and "I don't understand". --Mary Doria Russell
> Which is true as well, is that it is necessary to think whether a long-term
> date is necessary.
> In summary, in the sprint 0, it is important to think whether a date is very
> important. You can do efforts on estimating
> long term which are not going to be very useful as priorities can change.
Dates are very important, almost always. We do not hit dates by estimating. We hit dates by steering.
Ron Jeffries
www.XProgramming.com
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it. -- Brian Kernighan
--
> What is your experience on this? Is this entirealy true:
> "A careful reading of the Agile Manifesto reveals that it holds cost
> and schedule fixed, the team does not change (cost)" by Alan.
I'd like to hear Alan tell us where it says that. I don't think it
says that.
Ron Jeffries
www.XProgramming.com
Accept your conditions, but not your fate. -- Rod Walsh & Dan Carrison
--
Here is what I mean for the Agile Manifesto holding schedule and cost
constant. It's in the principles
(http://agilemanifesto.org/principles.html)
Schedule
Several of the principles define the goal of the product is ready for
use "early," "continous[ly]," "frequently" and "working." This means
that, beyond some threshold of minimum functionality, the product is
"always" usable and done. Once that threshold of must-have features
is met, the schedule is just a calendar. The amount of functionality
shipped, i.e. the scope shipped, is what varies. Pick a date and ship
the current scope.
Cost
Several of the Agile Manifesto principles point to a consistent team
membership: "work together daily," "motivated individuals,"
"environment and support they need and trust them," "face-to-face"
interaction and "the team reflects."
All of these points are the basis for maintaining a consistent team
membership for some length of time. For example, trust takes time to
create and is easily disrupted by a change of team membership. I
assume, perhaps wishfully, that knowledge of team building research,
social relationships and "The Mythical Man-Month" were part of the
input to these points. Agile literature supports my assumption with
many discussions about the deterimental effects of breaking up teams
by shuffling people around often.
For nearly all software projects and most other projects the highest
cost is payroll. So, if your team is not changing significantly over
time, cost is also not changing significantly.
Conclusion
So, I read that in agile practice, schedule and cost are not where
significant adjustment occurs. Scope is negociated. Specifically,
what features are included and which are not on a given date, is
adjusted based on the capacity of the team to do work and the needs of
the customer.
Is that too big of a leap?
Alan
> Here is what I mean for the Agile Manifesto holding schedule and cost
> constant. It's in the principles
> (http://agilemanifesto.org/principles.html)
> Schedule
> Several of the principles define the goal of the product is ready for
> use "early," "continous[ly]," "frequently" and "working." This means
> that, beyond some threshold of minimum functionality, the product is
> "always" usable and done. Once that threshold of must-have features
> is met, the schedule is just a calendar. The amount of functionality
> shipped, i.e. the scope shipped, is what varies. Pick a date and ship
> the current scope.
Always being ready enables hitting the date (or almost any given
date). It also enables making decisions to ship early (which is not
holding schedule and cost constant) or to defer shipping when some
threshold of features is done (which is not holding schedule and
cost constant).
The agile style enables decisions. It is my view, and I think it is
likely shared by many of the other authors, that the initial
schedule is often politically important. However, shipping well
ahead is often better (and does not hold schedule and cost
constant).
So I would have to say that we did not have holding schedule and
cost constant in mind, and that the manifesto does not imply that
schedule and cost should be held constant.
Ron Jeffries
www.XProgramming.com
The "rules" are ways of thinking, not ways to avoid thinking.
Thanks for the clarification, Ron. An participant report on the
creation of the Agile Manifesto is far more correct than any
interpretation of the words. I agree with your points.
I failed to think of the full ramifications of "constant." I mean,
delivering early is a change to schedule and cost and I was not
thinking of that. Let me try again.
In more traditional frameworks (waterfall, chaotic, etc.) there is a
great deal of talk about "schedule slips" and "cost overruns." In
Agile these do not exist in the same way.
- The schedule does not slip, the amount of scope delivered by a
certain date changes from what was initially estimated.
- The cost does not overrun, the customer decides another sprint is
needed to get certain functionality that has been deemed worth the
additional cost. (This is still an overrun of the original budget, if
one was estimated. This overrun is softened by the fact that the work
of previous iterations is already deployed, creating value.)
Most important, the customer is not forced to agree to overrun because
the entire value of the product is not held hostage. There are no
statements like "We have to spend $XXX,XXX more for three more months
or the product is unusable." or "We can't finish early or we'll have
our budget for next year cut." ROI can be calculated per iteration
and work can stop once return is too small. The funding and schedule
can be agile too, instead of set in a read-only spreadsheet.
I'm having a hard time expressing myself on this topic. The bottom
line is that Agile allows discussions of schedule and cost to be easy,
in small iteration sized chunks because the main variable is scope.
Alan