In HacknPlan, a milestone represents a group of tasks that are meant to be accomplished within a period of time, and one of its main purposes is scaling the scope down to a manageable size and set partial goals in order to better measure the progress of the project. A milestone can be of any size and frequency, although we strongly recommend to use them as iterations and create short timeboxed milestones. Making them short allows you to evaluate the progress more frequently, hence issues can be detected and fixed earlier.
Each milestone has a dedicated kanban board where the progress of the tasks is tracked. In a typical agile workflow, tasks would be added to the backlog where they are enriched, sorted by priority and, once they are ready, they would be added to a milestone for future implementation. Once it’s time for the milestone to begin, the team will start working on the tasks inside and, eventually (and hopefully on time and with every task closed), the milestone would be marked as finished and archived.
Creating a milestone
To create a new milestone, go to the Summary section of your project (Milestone section for Studio projects) and click on the “Add” button on the Milestones panel, or press ‘M’ on your keyboard. This will open up a dialog to enter some basic information about the milestone:
- Name: The name of the milestone which will be used to reference it in different parts of the application. If you are using some sort of agile iteration method, this could be something like ‘Sprint 1’, or maybe a more classic version number like ‘v0.3.2’.
- Description: This is a short description that is displayed on milestone lists, and its purpose is to help localize them better. For more detailed information about the milestone, use the general info field.
- Start date: This date determines when the milestone starts. This value is very important, as it will affect how metrics are calculated and will keep the estimations meaningful. We’ll explain this in more detail below. It will be displayed on the Calendar for premium users.
- Due date: This date is the expected finishing date (or deadline) of the milestone. This one does not affect metrics, it’s informative only, but it’s very helpful in order to manage development times and create a roadmap. It will also be displayed on the Calendar.
- General info: This is a markdown-based text field where you can add extended information about the milestone. When this field is set, an expandable section will be added to the milestone card.
Working with milestones
You can basically perform 3 different operations on milestones once they are created: edit, finish and delete them. You can edit the name, description, and dates by clicking on the pencil button on the milestone card. You can also delete it by clicking on the trash can button. When a milestone is deleted, all the tasks inside are moved to the backlog automatically.
Once a milestone has started, you are going to spend most of your time in two sections: the kanban board, for tracking the progress of tasks in the milestone, and the metrics, for getting information about how’s everything going compared to your initial estimations. Both sections have a milestone selector at the top right corner of the page, so you can quickly switch to any of them including the finished ones. It also displays a reminder of how many time is left until the deadline you set, and a button that will allow you archive the milestone once it’s finished.
The metrics page provide several figures to evaluate the milestone by comparing the outcome with the initial estimations.
- Estimated (at start date): The number of tasks estimated for the milestone. This field is calculated differently depending on whether the start date of the milestone is set or not. When the start date is not set, this field just displays the sum of all tasks in the milestone. However, when the start date is set, it’s used to determine the scope of the milestone better and the estimated metric is frozen at the sum of all tasks at the moment of starting the milestone. Why is that? The goal of this is keeping the real initial estimations of a milestone no matter what happens with tasks inside; if they are moved, estimations change or whatever. This is the best way to keep meaningful metrics of past milestones you can come back to.
- Estimated (current): When the start date is set, the estimation may differ from what’s in the milestone at the moment. This metric shows the current sum of tasks. This is very useful to see if the milestone scope is varying too much after starting the milestone.
- Pending: The number of tasks in the milestone which are not yet closed.
- Closed: The number of tasks in the milestone that were closed (moved to a stage with the Closed status, such as ‘Completed’).
- Progress: The percentage of closed tasks vs the pending ones.
- Estimated (at start date): The amount of effort (time or points) estimated for the milestone. Exactly like the estimated metric for tasks, this one shows the sum of estimated cost values in all tasks at the moment of starting the milestone when the start date is set.
- Estimated (current): Same than for tasks, shows the sum of estimations of the tasks that are currently in the milestone.
- Logged: The amount of effort logged into the tasks of the milestone.
- Unused: The difference between the estimated cost and the currently logged one. If you close all the tasks allocated for a time-boxed iteration and this value is still higher than 0, it means you used less time than expected to close it, hence you have room for working on something else.
- Remaining: The difference between the estimated cost and the currently logged one, but only for the tasks that are still open. This is like a countdown of the hours left to close the project, milestone or design element.