JIRA
Echoes can connect to your JIRA Cloud instance and help you tag JIRA issues with their intended outcomes and initiatives they contribute to. This allows you to express the purpose of work during the planning process in JIRA and have related code contributions inherit these annotations, therefore reducing the labelling effort for engineers.
In the example above, a pull request references JIRA sub-task JIRA-3 in its title. Echoes successively inspects JIRA-3, its parent story JIRA-2, and the parent EPIC JIRA-1, collecting all values of the intent field along the path. It finds an intent on the EPIC and applies the corresponding label to the pull request. This required a single tag in JIRA, and no developer action.
Echoes JIRA integration consists of an Atlassian Connect app which only requires read permissions to your JIRA instance. Installation is done through Echoes’ integrations settings.
The connect button asks for the base URL of your JIRA instance (e.g., https://mycompany.atlassian.net) and take you to the installation page on the JIRA marketplace. Once installed, you will see custom fields appear on your JIRA instance (you can filter fields on "Echoes" to find them easily).
The custom fields must be manually added to screens!
Echoes creates the "Echoes - Intent" and "Echoes - Effort" custom fields on your JIRA instance but doesn’t add them to any screens by default in order to leave this decision up to the JIRA administrator.
Follow the JIRA documentation to add the custom fields to the screens of your choice.
The "Echoes - Intent" custom field can be made required on issues to enforce categorization. Refer to JIRA field configuration documentation to mark the field as required.
Once connected to your JIRA Cloud instance, Echoes creates and manages two custom fields:
- The "Echoes - Intent" multi-select field is populated with the outcomes and initiatives configured in Echoes, and is automatically updated as the configuration changes over time.
- The "Echoes - Effort" single-select field is populated with a simple t-shirt size scale.
The "Echoes - Intent" field is used to express the intended outcomes or initiative motivating a JIRA issue (either task, story, or EPIC). Opening a GitHub pull request or GitLab merge request which references an issue (either in the pull request title, the message headline of one of its commits, or the branch name) will automatically apply labels for the corresponding intents without any action from the author.
Labeling behavior details
- Labels are automatically applied when a GitHub Pull Request (or GItLab merge request) is opened, edited, or reopened, and doesn't have Echoes labels yet. This is the nominal case, where the creation of a ticket predates the creation of a code contribution, and that contribution references the ticket it resolves.
- When the "Echoes - Intent" custom field is updated on a JIRA ticket, Echoes automatically applies the corresponding labels to all (directly or indirectly) linked Pull Requests which aren't already labeled. This is most useful in the context of a new Echoes installation: labeling a few EPICs can be enough to automatically categorize hundreds or linked already existing Pull Requests.
- To minimize confusion, Echoes never overrides labels previously set on a Pull Request. For the same reason, Echoes may only add or remove more labels if previously existing labels on a Pull Request match thoses on the JIRA ticket.
You may want to account in Echoes for efforts which contribute to goals but don't materialize as contributions in the source code manager. For example, this could be an engineer spending one day investating a production issue, or provisioning resources in your cloud provider. This is the purpose of the "Echoes - Effort" custom field.
When an issue gets resolved, Echoes accounts for the effort as set in "Echoes - Effort". This field is empty by default, which means that JIRA issues are generally only accounted for through efforts arising from linked GitHub pull requests and GitLab merged requests. Attributing a non-zero value to the "Echoes - Effort" custom field will confer the issue a weight of its own, using the same t-shirt size scale used for pull requests and merge requests.
In addition to the above configuration, to make the best use of Echoes, we recommend that you follow Atlassian recommendations regarding the usage of the "Completion field" on your JIRA issues. Echoes uses the Completion field as primary source of information to evaluate whether a JIRA issue is considered "open", or "closed".