Agile processes advocate not mixing promises with estimations. When doing any kind of promise an agile organization is better to base the promise on the historical performance and be explicit about the degree of confidence. That sounds quite a common sense, but how do you start a new project, if there is no team assigned yet?
Starting the project
The way of starting a project is naturally dependent of your organization realities and charter. Here is a way for starting the Scrum project that works for many organizations.
1. Initially somebody from higher management, possibly CEO or Vice President comes up with the initial idea and asks a [future] product owner to figure out how much it would cost and how long it would take.
2. The product owner stocks up the initial product backlog mostly on his own, possibly consulting with the specialists available.
3. After the initial backlog is ready, product owner borrows an existing team for a couple of hours long estimation session and gets the estimations together with a handle on the expected velocity range. If the initial product backlog happens to be not good enough, the estimation session can happen two or three times. The borrowing process naturally happens in a way that is organization dependent. Sometimes it is as simple as to ask informally a nearby Scrum Master working with a relevant team.
4. Product owner presents the initial estimations of the costs to higher management. If the project prospects seem good and project gets a "go" decision, product owner talks to [possibly another] Scrum Master and figures out what would be a good team for the project, who should be on the team, etc.
5. Once a team was assigned, the regular Scrum process starts with the new estimation session performed by the team that is actually going to work on the project.
Your experience
How do you start projects in your organization?
Photo courtesy of zhurnaly @ flickr
Comments
Interesting, But...
April 9, 2008 by Dan R. (not verified), 1 year 48 weeks ago
Comment id: 1506
Typically there are failures right from the get-go, even with the process as described by you in this entry. The first failure stems from the definition of the "initial idea". Executives often want to know how long the whole thing will take -- which is humorous since "the whole thing" is not a well-understood concept. The second failure occurs when the estimates are presented to the executive team for a Go decision. It is at that point that your "estimation != promise" is broken as executives then budget in accordance with the estimates, patting themselves on the back for making 50-100% higher to give "wiggle room" -- and then later discovering that the actual product differs from the initial concept so wildly and the team's estimates were so wildly off (new team, new idea) on top of that, that the budget is blown up with a nuclear device and the entire team is sacked or put under pressure to finish.
My favorite so far was a project that went Scrum from the get-go and when they finally ran into budget pressures the executive project lead put down a decree that the team "work nights and weekends to finish it by the promised date". Needless to say, it came out buggy, hurried, and ultimately not quite done despite best efforts. And the team lost its passion... which was probably significantly more costly than the executives realized.
There are no simple answers. Any blog entry that specifies 5 steps to starting a Scrum project is likely wrong for a significant portion of the population as such things are *highly dependent* on the people involved and the processes and culture already present prior to starting the project.
Thanks for the discussion starter :)
Dan
Indeed it all depends on
April 10, 2008 by Artem, 1 year 48 weeks ago
Comment id: 1507
Indeed it all depends on your concrete situation and it is quite difficult to produce the universal simple answers :)
The process I described is something that I've seen working. Naturally if your management treats the very initial estimate as a hard promise (as it happens often), it is quite difficult to develop software whatever process you use. Then anyway this post is not a clear instruction, but rather a conceptual overview.
Post new comment