A milestone represents a significant achievement or goal in your project.
Each milestone should be easily and commonly understood by anyone involved. They are like a common language between the people working day to day at the ground level and those who understand things at a higher level without necessarily understanding all of the details (like execs or sponsors).
You can run a milestone kickoff to bring everyone together and get a common understanding of what a milestone represents.
For those involved at the ground level - they provide a waypoint to steer the project towards, providing guidance for which stories should be included.
For those with a high-level understanding - they provide a simplified view of what will be achieved and when it is likely to be achieved.
graph TD
Milestones[["⛳️ Milestones"]]
Higher("☁️ Higher Level (Stakeholders etc.)") <==> Milestones
Milestones <==> Team("🧑🤝🧑 Team")
Team --> Stories["📚 User Stories"]
Team --> Epics["⛰️ Epics"]
Detailing scope for a milestone helps people reach a common understanding of when something will be done (if at all).
For this reason Out of Scope is more important than In Scope. If you think there is something that people may be tempted to believe will be included in a milestone but actually won’t, add it to Out of Scope. Help people understand that if something they are interested in is not included in In Scope then it isn’t part of the plan.
Change milestone status to indicate the current state of the milestone:
Keeping the status of each milestone updated allows you to report the status of the overall plan in a single page.