Committing for the Sprint
This is, to me, still a New Year. A friend suggested I discuss New Years’ resolutions. Or something like them, Sprint commitments.
Henry Ford said: Whether you think you can or you can’t, you are usually right. So, let us work backwards.
To me, in most business situations, the main thing is satisfying the customer. Helping the customers solve their problem(s). This is very hard because:
* the customer does not understand his or her problem well
* the customer cannot articulate the problem well
* the customer typically does not understand the technology capabilities that might be brought to bear in the solution, and what their strengths and weaknesses might be
* the customer cannot describe the solution
* we (technologists) don’t hear very well (we are human, after all)
* we tend to want to build what is cool to us
* our companies tend to be overly involved with existing products (‘to a man with a hammer, everything looks like a nail’)
* and several other reasons…Still, satisfaction is what we are after.
Typically with what we have to build, building a first release takes several sprints. (The length of time depends on many factors, but first the general domain and what one might call the maturity of the product line or its current technological complexity.) Most products take more than 1 sprint. Some take 2-4, some take 20-25+. Most are in-between, I find. At least for the first (next) release.
So, how do we climb the mountain? One step at a time, of course. We know it is hard and fraught with many misunderstandings, so we try to enable more feedback.
We have Sprints and Sprint demos, among other things. And by going slowly (eg, by taking the time to optimize negative feedback early) we can go fast (deliver the product the customer really wants sooner).
Within Sprints we have ‘stories’ or Product Backlog Items — small pieces of functionality or features. A customer never really wants the individual pieces (maybe with a few rare exceptions). The customer wants what we like to call the Minimum Marketable Feature Set — that set of features that helps him or her (partly) solve a problem.
We have to focus and enable feedback at a detailed level. The point is not the detailed level, but rather customer satisfaction with the production release (ie, that’s what the software people call the final product).
Is it worthwhile to have a Sprint goal? Yes, absolutely, although it is possible for it to become more important than it should be. The Sprint Goal does tend to give a common goal for all the Team. So the team tends to work together better. And, the Sprint Goal tends to diminish the possible myopia of too much focus on individual stories, or being “lost in the weeds” as they say.
Now, should the Team commit?
This has recently become a controversial question. Let me explain.
In the new Scrum Guide (Oct 2011) from Schwaber and Sutherland, they have eliminated the word ‘commit.’ They are rightly concerned I think, that some managers are forcing Teams to fulfill commitments under ‘innovation’ conditions. And they say, and I agree, that with innovation conditions (which is what most of us should be working in), forcing people to fulfill every Sprint commitment is silly. Just too many variables in our business, too many unknowns. Forcing overtime or punishing people because our work is uncertain just does not help.
Still, after the Sprint Backlog is done, the Team still should commit to the plan. They should start believing that they will be doing it (I say ‘8 times out of 10’); not that they always will do it. But, today (the beginning of the Sprint) with what we know today, we feel this is reasonable and can be done. It is nothing like a fantasy plan, that could never happen. That’s the way I have explained ‘commitment’ for years and how I continue to explain commitment. A commitment in our business can never be a ‘guarantee.’
Managers may not ask (should not ask) a team to work overtime to fulfill a commitment. This is silly and unproductive. (A discussion for a later blog post.)
Now, the biggest problem I find is that Teams over-commit. And then disappoint everyone, including themselves. This must stop. Promise what you really have a good chance of delivering fairly reliably. If you have extra time at the end of a Sprint, take on an extra story. But do not pretend to be able to do more than you can reasonably do. ‘Stretch goals’ do not help. (Again, a topic for another post).
So, what should the Sprint Goal be? Well, something that brings the Team together, and that represents the main focus of the Team for that Sprint. Typically, a one sentence version of the top 5 stories out of the 8 ‘committed’ for the Sprint — something like that. So that if things change significantly, and maybe things need to be adjusted, we might modify stories, but we are less likely to modify the Sprint Goal.