Release Planning with Story Points
Once you have estimated enough user stories in your backlog, you can batch the ones that represent a set of features that you would like to release to customers and plan a completion date.
Below is a sample backlog of user stories.
Given a team velocity of 18 points per sprint, you could map the stories by assigning as many user stories as possible until you hit the maximum.
Assuming that the product backlog is prioritized with the most important user stories at the top, then pull from there to fill your sprints.
You can see that the first three stories have a total of 18 story points. Take those items to form your first sprint.
Use a similar calculation for the second sprint, bringing in as many user stories as possible without breaching your limit of 18 estimated points.
Do a similar exercise for the third sprint.
As the final story for this release will be completed in sprint three, you know that after the sprint is finished, you can release all these user stories. Dates have been added for each sprint in blue in the release plan below. You can now plan a release with these seven user stories. They will be complete on June 10th and you can release them at any point after that date!
Adjusting for Resource Availability
Although the velocity in the above example is 18, this doesn't take into account things like member time off or team sharing.
In this case, make a pro-rate adjustment to your estimated velocity. For example, there are eight team members. A two week sprint would mean that there are 80 team days if each member of the team is available for each day of the sprint.
If one team member takes a two week vacation and two other team members miss a week each for some reason, then that represents one team member missing 10 days and another two team members missing five days each. This gives you a total of 10 +5 +5 = 20 days of missing resources.
Therefore, your resource allocation for this sprint is 60 days instead of the usual 80 days. This is 75% of your full velocity. Therefore you would take 75% of 18 story points = 13.5 story points (although you would probably round down to 13 story points as estimated velocity for this sprint in that case).
If you know the velocity of your team and have estimated points for each user story that you would like to put in a release, then you can estimate the number of sprints and the release dates.
Assign as many user stories to each sprint as you can. Add to the sprint in priority order until the total estimated points of that collection of user stories would exceed velocity.
You can also adjust velocity pro-rata for expected team member absences.
A Scrum Institute article on Scrum release planning.