I have collated below the best practices that I have figured out being scrum master. There is no one way that every agile project can follow to have the efficient sprint planning. Each scrum team is different and unique in terms of compositions and experience. Below steps is just an advice and the same can be adapted as per individual needs.
It’s good to conduct the sprint planning in two phases, one being backlog grooming and other sprint forecasting. Backlog grooming should be ideally conducted by product owner and scrum team or at least with product owner and scrum master. Ideally backlog grooming should be conducted first and later sprint forecasting. For second phase i.e. sprint forecasting its mandatory for Product owner, scrum master and team to participate.
Important step in sprint planning is backlog grooming, to have a healthy backlog Product owner should have good visibility of roadmap of product/feature scrum team is responsible of. Also product owner should make sure the roadmap is made available to scrum team and any changes to the roadmap is communicated. During the backlog grooming product owner explains the user stories to team, and what to be achieved in the sprint. Requirement shall be analysed, clarified and agreed upon by the scrum team. Also the backlog will be updated with the user stories on priority basis and each user stories shall be estimated.
Definition of done and sprint forecasting:
Scrum master should come prepared with the team’s capacity for the sprint considering scrums teams availability and holidays/vacations and also accounting the team’s velocity from previous sprints. It’s good to maintain the capacity sheet, and made sure everyone in scrum team updated their absences and availability for the sprint before the sprint planning meeting. Now with the sprint forecasting available, team can decompose the each user stories into design, coding and testing components. Output if the decomposition will lead to definition of done (DoD). DoD shall be agreed with the product owner. User stories shall be re estimated if needed during this phase, lastly based on the capacity of the team, top user stories shall be picked up for execution in the sprint from backlog.