Committing for the Sprint
This is, to me, still a New Year. And a friend suggested I talk about 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
* 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. Unless silly lawyers and such get in the way.
Typically what we have to build to assist with gaining satisfaction 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+. Although most are in-between, I find. At least for the first (next) release.
So, how do we climb the mountain? Well, one step at a time, of course. And because we know it is hard and fraught with many misunderstandings, we try enable more and more feedback.
So, 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. Now, a customer never really wants the individual pieces (well, ok, many 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.
So, we do have to focus and enable feedback at a detailed level. But 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 (to some people) than it should be. But 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, 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 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 in innovation conditions (which is what most of us should be working in), forcing people fulfill every Sprint commitment is silly. Just too many variables in our business, too many unknowns and unknowables. 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 that plan. They should start believing that they can do it (I say '9 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 (ok, 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 Team's over-commit. And then disappoint everyone, including themselves. This must stop. Promise what you really have a good chance of delivering. 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 'commited' for the Sprint -- something like that. So that when we learn, and maybe things need to be adjusted, we might modify stories, but we are less likely to modify the Sprint Goal.