Simple Guide to Quickly Sizing/Costing a Project Up Front
By Neil Killick
- Identify high level requirements (epics and stories) and size them XS, S, M, L or XL (T-shirt sizes) so that each story in each category is roughly the same size (in terms of effort) as the other stories in that category
Ensure that the XS stories are extremely small pieces of work that cannot be broken down any further (like a 5 minute change to the system) – if you do not have any of these, break down the S stories to ensure you have both XS and S stories
Now have the project implementation team (i.e. developers, testers, analysts, etc. – not product/project managers) perform Fibonacci Planning Poker estimates (1,2,3,5,8) for 5 stories in each of the S, M, L and XL categories (we will assume all XS requirements are 1 point)
If there are less than 5 stories in a category, or not many more, simply estimate all the cards for that category
L or XL stories that are larger than 8 points should be made XXL and re-estimated including the 13, 21, 34, 55 and 89 point cards
If you have estimated all stories in a category, simply total the points for that category, otherwise total the points for the 5 stories you have estimated, divide by 5 and then multiply by the total number of stories in the category (we can do this because we determined that the stories in a given category are roughly the same size)
e.g. 10 S stories, 5 estimated = 2,3,3,2,3 = 13/5 * 10 = 26 points
Simply add the point totals from each category to give you your project total
Now the team should decide roughly how many points they can complete in a Sprint in a pessimistic to optimistic range, e.g. 20-30 points (this part is less than ideal because the real velocity will be established once the team starts the project, and thus the estimate will become increasingly accurate as the team’s output becomes more predictable and scope changes emerge – however, it is a reasonable baseline)
Estimated no. of Sprints = Total Points / Sprint velocity
e.g. Total points = 320
320/20 = 16 Sprints
320/30 = 11 Sprints
Take the mean of the range to form a final guess at the number of Sprints required to complete the project (in this case 14 Sprints +- 21%)
As the project goes along remember to adjust the total project size by adding/subtracting points when the initial estimates are adjusted (or stories are added or removed)
Now the projects’ progress can easily be tracked be “burning up” points completed against total project points
e.g. After Sprint 3, 50 points have been delivered and total project scope has increased to 340 points
% project complete = 50/340 = 14.7%
Total expected Sprints = 3 / 14.7% = 20 Sprints (> 16 Sprints) (==> OFF-TRACK, consider removing scope or delaying launch)
An even quicker method is to simply assign Fibonacci points to the T-shirt sized categories, i.e. XS = 1pt, S = 2pts, M = 3pts, L = 5pts, XL = 8pts, XXL = 13pts.
So long as it is agreed that the stories in each category are roughly the same size, and it is understood that these base units will be used throughout the project for Sprint planning and for burning up to the total project size (e.g. an 8 point estimate in Sprint planning means an equivalent size to that used in project planning), then this approach is completely acceptable.
Hope this helps you kick-start your projects when you are asked to give a reasonable estimate of the time or cost for the entire body of work.
Happy estimating and good luck with your projects!
Neil Killick is a highly skilled I.T. professional with 17 years of varied experience in England and Australia. His background is in Java/Web development, but his more recent experience has encompassed being a ScrumMaster, Iteration Manager, Senior Agile BA and Product Owner, as well as a Team Leader, Coach and Mentor in Agile or transitioning environments. You can read more from Neil on his blog.