AgileLead.

10 Key Shift Left and Ticket Prioritisation techniques in Product Engineering

Cover Image for 10 Key Shift Left and Ticket Prioritisation techniques in Product Engineering
Mike Wright
Mike Wright

When it comes to software development, 'shifting left' refers to introducing testing and other quality assurance measures earlier in the product development cycle as well as focusing on collaboration between QA and engineers to ensure adequate test automation and coverage. One of the main tools that help facilitate this approach is JIRA to assist teams in organising their work, managing their backlog, and keeping track of their progress. Properly prioritising and triaging tickets within JIRA can effectively streamline the testing process and accelerate the shift-left strategy.

Here's how to begin your shift-left strategy:

1. Understand Your Tickets:

Understanding your tickets and their importance is the first step towards effective prioritisation. The entire team needs to understand the business objective, estimated effort, acceptance criteria, and risk of each ticket. This involves collaboration and communication with stakeholders, product owners, and potentially other teams. Ensure that tickets are split into bite-sized tasks to ensure that they can be tested and deployed iteratively for continuous deployment (and product delivery).

2. Prioritise According to Business Value:

Once the team has an understanding of each ticket and estimation of effort via planning poker, they should be prioritised based on their business value and urgency. Higher business value items should be tackled first. JIRA has several ways to order tickets, including a simple drag-and-drop interface in the backlog and sprint boards. Another important factor to discuss about the tickets is the risk along with the level of testing that should be involvement. This should include various areas of test automation from unit and integration test code coverage to end-to-end regression.

3. Triage Meetings:

Regular triage meetings are crucial for staying on top of ticket planning and management. These meetings, or ceremonies provide a platform for discussing new issues (3-amigos), reassessing the priority of unresolved tickets (backlog grooming) and estimation (refinement), and determining which tickets to tackle next (sprint planning). It's really important to ensure that the testing team (QA) are involved as early as possible in the planning stages (AKA Discovery) and have time to discuss approach with other engineers in the team.

4. Use Labels and Components:

JIRA allows you to add labels and components to your tickets. Labels can be used to identify key tickets (Tech debt) and indicate the current Status (Ready for Dev, In Progress, Pull Request, Ready for QA etc), while components help categorise tickets based on the part of the system they relate to (Backend, Frontend, Mobile etc). This can help teams manage and prioritise their work more effectively and creates an efficient workflow to manage delivery.

5. Make Use of JIRA Query Language (JQL):

JIRA Query Language (JQL) is a flexible tool that allows teams to build custom queries for searching their tickets. With JQL, teams can filter their backlog based on various criteria, such as ticket status, assignee, or labels. Additional ticket types for test cases and labels for risk can make identifying key tickets for more thorough testing.

6. Implement a Severity vs. Priority Matrix:

A Severity vs. Priority matrix is a valuable tool for ticket prioritisation. Severity refers to the impact of a bug on the system, while Priority is the order in which the bug should be fixed. By rating (and labeling) tickets on these two aspects, teams can decide on their strategy to handle them.

7. Boards for Visualisation:

Boards within JIRA provide a visual representation of specific workflows for the planning (Discovery) and execution (Delivery) of product deliverables. These can be customised to match your team's process and make it easy to track progress and see the status of different tickets at a glance. Additional labels will also help in aiding prioritisation.

8. Regular Backlog Grooming:

Spending more time and regularly grooming your backlog helps keep it manageable and up to date. It also feeds your pipeline for both tech debt and product deliveriables. This process involves reevaluating your tickets, splitting up tickets, labeling, adjusting priority, and removing any that are no longer relevant.

9. Incorporate Feedback Loops:

Feedback loops ensure that as tickets progress through various stages, any observations, challenges, or new insights are fed back into the prioritisation process. Stand-ups are vital to raise concerns, identify blockers and bottlenecks, discuss releases, and provide vital feedback to the team and product owner. For example, if a tester identifies an area of the code (backend or frontend) that's frequently causing issues, that feedback can be incorporated to prioritise related tickets. Integrating feedback loops ensure continuous improvement and delivery as well as refinement of the prioritisation process.

10. Adopt Automated Testing Integration:

Integrate JIRA with automated testing tools to facilitate continuous testing. By linking automated test results directly to JIRA tickets, teams can instantly see which features or fixes pass or fail tests. This real-time information allows squads to quickly identify which tickets need immediate attention and which ones are ready to move forward, further promoting the "shift left" philosophy by catching issues early. Feature flags are also essential to maintain deployment frequency and a steady release cadence while also ensuring features are thoroughly tested before they go live.

By adding even some of the above strategies into the mix, software engineering teams can enhance their capacity to identify, prioritise and address key tickets more efficiently. The combination of these prioritisation and "shift left" tactics can lead to more effective and seamless testing for improved reliability.