I worked with many agile teams on different projects. Most of them were running Scrum. The way different teams are running planning and estimation is different from team to team. Planning meetings were also different between teams. In some teams we did max of 3 to 4 hours for 2 weeks’ sprint. Another team we used to do a full day (8 hours) for 2-weeks sprint. Most of the time it was 2-weeks sprint. Except maybe once or twice where it was 1-month sprint. And we changed that to 2 sprints eventually.
Here are some examples of how the teams I worked with were running planning and estimation:
- Estimating whole story in hours using normal playing cards. Min: 1 hr. Max: 10 hrs. If a story exceeds 10 hrs. it a sign that it is too big and we start to split it into smaller user stories and estimate each one of them. We used references/history when possible to compare user stories for better estimation.
Our velocity was calculated in hours i.e. 80 hrs. per sprint.
If a user story not finished during sprint. We calculate how long did it take during the sprint to be added to the velocity. Then re-estimate the remaining work in next sprint planning.
- Pre-estimated user stories in T-shirt sizing or points (by PO/BA and Scrum Master). Then we create tasks on each user story. Estimate tasks in hours. Min: 1 hr. Max 8 hrs.
Again velocity was calculated in hours.
- Estimating story with points. Then create tasks and estimate them in hours (this is the one that usually take full day planning meeting). Applying min/max values for stories and tasks.
Velocity was confusing a bit. Because you have 2 measures now (points vs hours). And they rarely match. for example, you may find yourself achieving 20 to 25 points per sprint for 3 sprints. And when looking at hours you may discover you made 60 to 80 hours. Points here were better indicator.
- Estimating story with points. Using planning poker cards (0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100). We also set max points per story i.e. 8 points. If we agreed a story exceeds 8 we try to break it into smaller ones. And estimate them.
Velocity is calculated in story points per sprint.
There are many more techniques I've seen. I didn't participate in all of them though.
Whether you agree with the examples above or disagree. There is a team somewhere around the universe maybe doing one those techniques or running planning in totally different way.
While technique D had a great success hit. Others also succeeded to some extent. They were not as efficient. And they were also totally bad at times. But I can't say it was a completely disastrous failure.
I totally dislike B from the above. But I am happy I tried it. Technique C made me understand that hours and points don't mix. Some use points in C to estimate user story level and use it for velocity and reference. And then create sub tasks and estimate hours on them on the fly just for micro level tracking.
I don’t think there is a fixed one way of running planning and doing estimation. You’ll find recommendations of what different people think. It will evolve with you. And later you and your team will feel comfortable with few techniques.