What is the best practice for tracking JIRA milestones on Team Calendar?
Asked by Darren McElfresh:

We are looking for a solution to help ensure groups across our organization stay coordinated on deadlines and plans, and we believe Team Calendar can help accomplish this; however I'd like to understand what the best practices are for tracking milestones within JIRA. On the Team Calendar product video it appears to add JIRA calendars that contains milestones for projects, so I wanted to know what the best practices are for doing this. In some shots it looked like different date fields were used, but in other shots it appeared like different issue types were used - so I couldn't tell what the recommended practices were for different situations. As with all of your products this appears very configurable so I'm sure there are multiple ways of tackling this, but if possible we'd like to take advantage of the experiences and knowledge that others have already had with this product to understand the best practices.


Answers:
author: Sherif Mansour
body: @Darren. Yep you're right.

So with JIRA, you can create custom types for issues (see https://confluence.atlassian.com/display/JIRA044/Defining+'Issue+Type'+Field+Values for details). What we see plenty of teams do is the following:

\* They use JIRA versions for release planning (set a due date for a release and it appears on the calendar)

\* They create their own types of issues to represent their processes (E.g. "Scheduled Deployment" or "Outage" or "Change").

\* On those JIRA issue types, they use the out-of-the-box due date JIRA provides, or create a custom date field of their own (see <https://confluence.atlassian.com/display/JIRA/Adding+a+Custom+Field> to learn more about cusotm fields). So they would create fields like "Outage Start" and "Outage End" or "Deployemnt Date" etc...

\* In Confluence Team Calendars, they would create a JIRA event type and select those things (JIRA version dates, issue daue dates for their custom fields etc...)

Hope that helps explain it a bit better? Interested to hear how you went.


author: Marisa Hager
body: I know I'm VERY late to the party, but iIve been creating a custom issue type called "Milestone" that includes custom fields for start date, planned end date and actual end date. The workflow contains statuses for on track, at risk, past due, and complete. And I just like that milestone to individual tickets to indicate dependencies. This way I can run reports and what milestones are coming up, plot them on a the team calendar and see "pileups" coming in advance, as well as send notifications to affected team members automatically. This helped me get around needing more specific dates tracked and reported outside the fix versions, and cope with some of the waterfall-y requirements of portfolio management while still using scrum and kanban boards to manage software. It's also great for business projects :)

comments: author: Hayley Richardson
body: Great workarounds! I'm exploring something similar and love the idea of the custom issue type. Thanks for sharing!


author: Erick Armes
body: Really like this suggestion. I've been wanting to manage milestones in JIRA for ages, and this is definitely worth a shot.


author: Kevin Leahey
body: This is a great suggestion, thanks [@Marisa Hager](/t5/user/viewprofilepage/user-id/1155585)!


author: Naveh
body: [@Marisa Hager](/t5/user/viewprofilepage/user-id/1155585) Hi Marisa! And what do you do with stories, tasks and sub-tasks that are assigned to this milestone? You just do a simple link between a milestone and a story/task/sub-task? Or something more sophisticated? (For instance, the milestone is a parent issue of a story)


author: Abe Saeed
body: [@Marisa Hager](https://community.atlassian.com/t5/user/viewprofilepage/user-id/1155585) Did your team leverage Epics in this workflow? I'd be interested in how you defined what an epic was and it's association with a milestone.


author: Marisa Hager
body: [@Naveh](/t5/user/viewprofilepage/user-id/119251) so sorry for responding so late! Fwiw, I just use links between milestones and what they impact. You can customize the link types to indicate all kinds of dependencies or relationships and then report on those specific link types. But there isn't a hierarchy - like the way tasks are parents of sub-tasks. You can see what milestones a story or task is linked to, and query the type of link ("requires", "relates to", "must finish before" etc.).


author: Marisa Hager
body: [@Abe Saeed](/t5/user/viewprofilepage/user-id/3337600) . The key is just understanding how you want to organize your work. In a lot of cases I absolutely leverage epics - I can either give them due dates and plot them on the calendar, or just organize them into fix versions and put the fix version on the calendar. I tend to use the milestone issue type for stuff that is outside of coding or releasing. Things like when will hardware will be delivered and racked (milestone)- and will it be ready in time for our product code rollout (fix version). Or when do we have a special integration demo for clients at the industry conference (milestone). Or when will the waterfall team that we're depending on (that doesn't use Jira) deliver the piece we need to make our epics work? Things like that. So in that sense I define an epic as a group of related stories that is no bigger than a release cycle. I use fix versions for the epics to indicate which release they're going to production in. And then I use milestones for all the ancillary stuff (hardware availability, end user documentation handoff, marketing brochure copy delivery, integration with an outside/dependent team, etc.).


author: jdiglio
body: Hi [@Marisa Hager](/t5/user/viewprofilepage/user-id/1155585) , What sort of reporting can you produce from this? Curious about % complete and other helpful metrics to stay on track.


author: Marisa Hager
body: Hi there - I have in the past created a custom field for "% complete" on each milestone to manually update if you need granular tracking. You can sort by it or output it in search results/dashboards, etc. if it helps keep it out of a spreadsheet ;). I tend to use the statuses mostly though - "on track", "at risk" or "overdue" to keep an eye on things. You can do things queries like show me everything that is in "at risk" status and ask people to add comments to explain why, what the plan is to address, etc. Or you can have queries that look for the end date - if something is coming due in 7 days or 30 days, etc. to make sure it's top of mind. Or even show when something is past it's due date and put that on a dashboard so nothing falls between the cracks. Here are some sample JQL statements (just replace project name and custom field name to yours):

**To see which milestones in your project are At Risk, sorted by end date:**

* project = JTEST AND issuetype = milestone AND status = "at risk" ORDER BY "revised end date"

**To see which milestones in your project that are due in less than 7 days:**

* project = JTEST AND issuetype = milestone AND ("revised end date" \< 7d OR due \< 7d) AND status not in ("past due", "on hold", closed)

**To see which milestones in your project are overdue, and not already complete:**

* project = JTEST AND issuetype = milestone AND ("revised end date" \<= endOfDay(-1) OR due \<= endOfDay(-1)) AND status not in (closed, "on hold") ORDER BY "revised end date"

You could even do combos if the percent complete custom field is a number field where you say show me which milestones are due in "x days" and are less than 50% complete, etc. Hope this helps...


author: jdiglio
body: Great, thank you!


author: Sherif Mansour
body: Hi Darren,

Thanks for the question and for the feedback. We are trying to make it more obvious what the best practices are in the product, so this is very helpful feedback. Regarding your question:

\* Use JIRA versions to plan a release

\* JIRA versions can have a due date, when you set the due date it will be ready to appear in Team Calendars

\* In team calendars create a JIRA calendar and select "Version due dates" to display

\* Now dragging and dropping your JIRA versions from Team Calendars will help you reschedule your release. Your team can watch the JIRA calendar and get notified when the release date is changed.

Is that what you are after? There are a few issues we'd like to improve here:

\*\* <https://jira.atlassian.com/browse/TEAMCAL-1361>

\*\* <https://jira.atlassian.com/browse/TEAMCAL-719>

would love to hear if that works for you

comments: author: Darren McElfresh
body: That is along the lines of what I'm looking for, but more specifically I'm trying to understand the best way to handle situations like in the product video where there are JIRA calendar items for things like product launches, integration dates, etc. I'm pretty sure these aren't all versions, so I was curious what the recommended way of capturing these types of items were?


author: TJ
body: I am new to jira. Can anyone suggest a tutorial or a YouTube Video where I can see how milestones with dates can be set up and reported. And what kind of board would be best practice. I lie the idea by Marisa above, need more insight on how to.

Have 30 milestones that need to be tracked for dates and reported as on track, off track , at risk and completed. We need to be able to produce simple dashboard for multiple initiatives that go through above cycle .

appreciate quick response