Probabilistic Project Sizing with Randomized Branch Sampling (RBS)
In order to forecast the time and the budget needed to deliver a software product we need to be able to quantify “what” we are building since the resources required are related to “how much” software is built. That quantification is referred to as “sizing”. Software sizing is an activity in software engineering that is used to estimate the size of a software application or component. It forms the basis for estimating resource needs. Software sizing is different from delivery time estimation. Sizing estimates the probable size of a piece of software while delivery time estimation forecasts the time needed to build it. The relationship between the size of a piece of software and the time needed to deliver it is referred to as productivity.
The question many of us in software development try to answer is - how can we estimate the size of a project without prior identification and analysis of every single user story? The answer is needed for portfolio related decisions, quotations on prospect projects etc.
Analyzing all the stories in a project requires significant time and it can easily happen that great part of this effort will be pure waste. Priorities of initiatives and features change and some features could not be developed at all.
If you don't want to analyze all user stories in your project in order to estimate its size then Randomized Branch Sampling (RBS) is an approach you can use.