San Skulrattanakulchai
Apr 17, 2018
You have come up with user stories and total time estimates, say 489 days. However, the customer wants the software finished in 90 days! So we need to cut back and prioritize.
Priority must be set by the customer, not you.
To help the customer make the decision, shuffle and lay out all your user story cards on the table. Ask the customer to order the user stories by priority (the most important ones first), and then select the set of features that need to be delivered in Milestone 1.0 of their software.
Your first major release of the software to the customer. This is the first time your actually deliver your software and expect to get paid for the delivery.
Help the customer understand what can be done in the time available. User stories that don’t make it into Milestone 1.0 aren’t ignored, but postponed until Milestone 2 or 3.
Don’t get caught planning nice-to-haves. Milestone 1.0 is about delivering what’s needed.
Don’t worry about length yet.
At this point we have all known features the customer wants in Milestone 1.0.
Add together all the user story estimates for Milestone 1.0.
If you’ve got 273 days of work for Milestone 1.0, but your customer want delivery in 90 days, go back to them and re-prioritize until you come up with a workable feature set.
In your Milestone 1.0
cut out more functionality
aim to ship a milestone build as early as possible
focus on the baseline functionality
If no matter how you cut the user stories up, you can’t deliver what the customer wants when they want it, and the customer won’t budge, confess and walk away from the project.
Or you can try adding new people to the team. However, simple math doesn’t work here. Adding 2 developers won’t get the work done in 1/3 of the time.
Each new team member needs to get up to speed on the project: they need to understand the software, the technical decisions, and how everything fits together, and while they’re doing that they can’t be 100% productive.
More people sometimes makes the project take longer.
What’s the maximum team size that works best? No fixed formula. It could be 20; it could be 3. You have to monitor performance closely and make amendments based on observations.
At this point you have a workable set of user stories in Milestone 1.0. Next step is to play the part of the customer and assign priority to the Milestone 1.0 user stories.
For each user story, assign it a ranking according to this scale:
10 - most important
20 -
30 -
40 -
50 - least important
Order the priority, most to least important to the customer.
You can help the customer & advise during this priority setting. However, the final decision on priorities is always the customer’s to make.
Now that you have your user stories in Milestone 1.0 in priority order, it’s time to build iterations. Lay out the user stories so they make iterations that make sense to you. Be sure to write down the total days of work, and how long that will take our team of 3 developers.
At the end of each iteration, show your software to the customer and get their feedback.
Keep your software continuously building and always runnable so you can always get feedback from the customer at the end of an iteration.
Keep iterations short and balanced.