Do you really know where your project is going?
In general, a milestone is used to track progress toward a specific goal or event. Although projects are possible without milestones, the likelihood of projects being delivered successfully and on time is much higher with milestones in place.
But how do milestones work in Agile project management and are you creating them correctly?
Let’s see how you can set your own project milestones!
What Is a Milestone in Project Management?
In project management, milestones are one of the most important aspects of project planning as they’re visible indicators of progress toward an objective.
Simply said, a milestone marks an important change, moment, or deliverable in the project plan.
Milestones are used to spot memorable events during project development so the team can use them to stay on track. This is why they’re more than just another element on your project plan: they help teams communicate.
Although the milestones themselves will vary depending on the industry and specific goals, the concept stays the same. Failure to meet a milestone is a strong indication that the project isn’t proceeding according to plan and it might be time to adjust your approach.
The easiest way of distinguishing milestones from regular tasks is to ask yourself if the “task” is a deliverable that impacts the project’s deadline and will be reviewed by your client. If the answer is “yes”, you’ve got yourself a milestone.
Project Milestones Examples
Here are some examples of project milestones to help you better understand what classifies as a project milestone:
- Core feature deliveries
- The start and due date of each project stage
- Huge events, presentations, or stakeholder meetings
- Any other events that could impact the project’s progress including a new feature launch or simply completing a business/strategic plan
Critical milestones that most projects have include the project’s approval, reviewing requirements, design acceptance, the four project phases, and the final approval/project handoff.
Ok, so what’s their purpose? Is it just showing when a feature should be delivered?
The Benefits of Using Project Milestones in Your Project Plan
Imagine having a map with no checkpoints. So you know where you’re starting your journey and where you need to get, but you don’t know what you’re supposed to do on your path there.
That’s what milestones in project management do. They provide a step-by-step roadmap of every feature or item that needs to be completed so you’ll never be left wondering what’s next on your team’s work tray. Additionally:
- They give an overview of all major deadlines
- They allow you to spot potential bottlenecks on time
- They can be used to track project progress
- They help the team understand where the project currently is and what the upcoming steps are
- They let you and your team spot important dates during the project’s development
- They support that resource and time allocation process
- As a bonus, they give your team the chance to celebrate small achievements (i.e. the milestones)
Milestones in More Traditional Software Development
In the past, the software industry followed the waterfall development process, with projects broken down into logical and sequential stages. All discovery is completed before moving onto requirements, then design, implementation, testing, and delivery. While this might have seemed like a good idea, in theory, it wasn’t the best approach for highly iterative work like software development.
A major issue with milestones in waterfall models is that they overlook continuous evolution. Once an application is in the testing stage, it’s very difficult to go back and change something that was not well-thought-out in the discovery stage, making this model unsuitable for modern application development where there is a high risk of the project changing.
Another disadvantage of this traditional methodology is that it’s extremely difficult to measure the progress of the project during the middle stages. Progress of projects is typically reviewed at the end of each stage of work.
For example, once all requirements are complete, they’re reviewed before moving onto design. In addition to not allowing for constant iteration, this makes it difficult to use completed work to forecast how long the remaining work will take. In this instance, milestones may be planned but they aren’t necessarily realistic or beneficial.
What Do Project Milestones Look Like in Agile?
For a lot of teams, the waterfall development process didn’t provide the expected results, leading them to look for a different approach. Enter: Agile.
Agile development emphasizes flexibility, interactivity, and a high level of transparency. Projects in Agile welcome constant evolution and change, relying on frequent releases of usable code and continuous testing. Although an agile development approach is becoming increasingly common in software projects of any size, using milestones with Agile might seem counterintuitive.
A lot of developers highlight Agile’s rejection of deadlines and rigidity, but it doesn’t necessarily mean an absolute lack of goals or marking points in a project. Regardless of which project management approach you utilize, you’re more likely to fail if you don’t have a roadmap, Gantt Chart, or something similar to mark your progress.
With this in mind, let’s look at how Agile and milestones can complement each other. When managed correctly, project milestones are crucial to the success of a project, providing extensive insight into the software development lifecycle and how the team is performing against business goals.
Planning for Success with Milestones
While there are a variety of ways to start breaking down a project into milestones, one of the most common is to create a roadmap of the entire scope of the project.
Once a roadmap is complete, it can be divided into Sprints. In Scrum, Sprints are fixed lengths of time (typically two to four weeks) during which an agreed-upon chunk of work is completed to a shippable standard.
These chunks should be sorted according to priority, and grouped by feature or release. Sprints, or “iterations” are mirrored in GitHub with Milestones: groups of Issues that correspond to a project, feature, or time period. Simply set a start and end date, then add Issues representing user stories, to begin sprinting.
Each iteration gives you the chance to test and deliver a stable release and anything left unfinished can be moved to the next Milestone.
When Milestones are completed, it means that they:
- Met technical and design requirements
- Have tested code
- Ended with a shippable/deployable product
Getting Started with Milestones
For each project Milestone, the first step is to create a specified goal for the end of the sprint. It’s important that this goal is a collective and collaborative effort by everyone involved.
When trying to determine how much work should be included in the Milestone, especially when you’re just getting started with Sprints, there is really no perfect answer. The best way to plan is to estimate how many issues will fill up Sprint's time allocation. Estimating the complexity of each issue first can make this easier.
Due to the fact that you don’t know what your average Sprint velocity is when you’re still in the early stages, it’s easy to overcommit. Although you may like to estimate that each team member could complete 70 story points of work for example during a two-week sprint, it’s probably more realistic to assume the amount of work would be closer to 45 or 50 story points per person.
So, for a five-person team, you might assign roughly 230 story points per Milestone to begin, then adjust as you become more familiar with your team’s sprint velocity. With a few Sprints completed and the right reporting tool, you will begin to better estimate the amount of work that can be completed in each iteration.
Remember, the primary goal during a Sprint is to ensure each issue that’s assigned is fully delivered by the end.
When you’re finished with your Sprint, simply close the Milestone. Set the Milestone state to Closed and leave any notes about the Sprint in the description section of the Milestone.
These notes could include things like the number of Issues that had to be pushed to the next Sprint, problems that came up, and things that were successfully accomplished.
Final Words on Agile Milestones
Milestones are an essential part of the success of any project, especially those using Agile.
Although Agile is based on the foundations of flexibility and continuous change, this does not mean that adopting milestones will add rigidity and strict deadlines to the project. On the contrary, milestones greatly complement Agile by ensuring teams are on track with their goals improving the chances of success and project completion.
Looking to get started with project milestones?
ZenHub is the only project management tool that integrates natively within GitHub, leveraging both Issues and Milestones. When GitHub is paired with the advanced features of ZenHub, your entire team has increased visibility and improved collaboration. If you're interested in learning more about the power of our integration, find out more here.