Integrating Jira with Ally.io allows any updates on linked Jira user-stories or Epics to automatically track progress on Ally.io OKRs. This makes for a powerful setup because it ensures your OKR process is not waiting on manual check-ins and any progress is updated real-time on Ally.io.
Here are a couple of examples where teams see the benefit of the integration with Jira:
- A Product Manager links her Objective (‘Ship feature Email Campaigns’) with an Epic in Jira. As stories within the Epic get done, the Objective gets closer to it’s goal.
- One Engineering team resolves to fix 20 bugs in a quarter. They link their Objective to an Epic under which all bugs get filed, and set the target of their KPI success metric to 20. Ally ensure that even when the number of bugs filed under the Epic keeps growing, the Objective has hit its goal as soon as 20 bugs are closed.
To set up a new JIRA integration,
- Navigate Ally.io's integrations page through Admin > Integrations.
- ‘Enable’ the Jira Integration.
Creating a New Connection
Click on ‘New Connection’ and in the popup that follows,
1. Add the Server URL of your Jira account
2. Be sure to select "JIRA-Server" for the "How is this Jira instance hosted?" question. If you are not sure about the hosting type of your instance please check with your IT/Jira administrator.
Once you select the "JIRA-server" option, you will see 3 steps that you have to do to complete connection setup.
3. As a JIRA administrator, Search for "Ally OKRs for JIRA" app from the "Manage Apps" page in JIRA. There is also a download link directly available from the new connection screen inside the JIRA integration page inside Ally.io.
4. Click on the install button against the app and follow the steps in the confirm app installation popup.
Note: If you directly downloaded the Ally.io OKRs for JIRA app in step 3, you will have to click on "Upload app" link to install the app.
4. After the installation is completed, click on "Get Started".
5. Inside the Ally.io OKRs admin configuration screen, you are expected to enter the account UUID & access token and they can be obtained from the "new connection" screen in manage JIRA integration page in Ally.io (refer to step 2)
6. Entering the UUID and Token and clicking on "Connect" will validate the credentials and prompts you to return to the connection screen in Ally.io to complete setup if the verification was successful.
7. From the connection screen in Ally.io, Click on "Validate JIRA connection" to check if Ally.io has access to JIRA and if everything is setup correctly. Note that this will momentarily take the user to JIRA and return once its verified.
8. Click 'Next' to finish the connection setup.
Using Jira integration
Once the setup is complete, members can link the success of their OKRs directly to stories or Epics in Jira.
- While creating an Objective or Key Result, click on ‘Connect to a data source
- From the list of integrations, pick Jira
- Next, select the Connection, if multiple exist.
- Add a JQL query to match any issues that would relate to the Objective or Key Result. This also means that as more issues in Jira match the query, they keep getting linked to the success of the Objective or Key Result.
A JQL query can be copied from Jira. Search for issues you want to link to your Objective using available filters on Jira. Next, click on the ‘Advanced’ option and Jira automatically converts your search to a JQL query. You can copy and paste the query string into your integration with Ally.io.
The JQL query linked to the Objective or Key Result can be edited at any time. This leads to a recalculation of current progress.
Note: If you are using JIRA next-gen projects, the support for JQL can behave slightly differently compared to classic JIRA projects. For example, JIRA next-gen projects does not support query based on epic link. Here is an official JIRA quote summarising this scenario, "Users should query on next-gen epics using the parent =. If you want to combine Epics from both project types, an example of such a query would be: "Epic Link" = NPC-6 OR parent = NJDP-5. The Parent field can now be selected as a column in the Global Issue Navigator and exported from Jira."
5. Track progress by: Select the metric you want to use to track progress.
Note: For more information on how JIRA does time and progress tracking, visit this JIRA article
6. If tracking by KPI, you will also have the option to track by done tickets only or all tickets by toggling the checkbox.
Note: 'Done' tickets include tickets with all statuses that is associated with the JIRA's "Done" workflow status category irrespective of the resolution status of the tickets. Reference to JIRA article
Let’s see a few examples of how the integration would work.
We’ll pick the example mentioned earlier: A Product Manager, Dana, links her Objective (‘Ship feature Email Campaigns’) with an Epic in Jira. A simple JQL query used to set up the link could be: "Epic Link" = AE-786
If the Epic has 10 stories, owned by different designers, engineers and testers in the team, the progress of Dana’s Objective would update every time one of the 10 stories gets closed. For instance, when 3 stories get closed in Jira, Ally.io would automatically update the progress of the Objective to 30%. If an eleventh story gets added under the Epic, this progress gets re-calculated to 27%.
Consider the objective: “Improve the overall quality of the product”. In this case, you might want to track the number of bugs generated as opposed to the progress of issues, as an indicator of overall quality. You can use the ‘Count of Tickets’ metric in the tracking field to achieve the desired setup: Ally.io will automatically tally up all the tickets generated.
When an Objective or Key Result is linked to Jira, members can see the Jira icon next to the progress bar indicating there is a connection.
The colors of the progress bars indicate the status of the Objective.
- If the progress is 0-25% less than expected progress at any point in time, the status is Behind (orange)
- If the progress is over 25% less than expected progress at any point in time, the status is At-Risk (red)
- The progress bar will increase in Ally when stories or tickets are moved to "Closed" or "Done."
Ally.io pulls in new updates from Jira every 60 minutes. However, you can also manually refresh to pull in any new changes by clicking in the small green refresh icon available at the bottom right of the details pane.
You can view the integration configuration on the OKR itself by clicking into the expanded view.
Learn more about Ally.io’s other integrations here.