WebOps

Design & Strategy

We start with your goals and how your team works, then design the platform to match.

Website Builds

Custom Drupal, WordPress, and headless builds that perform from day one and stay easy to run.

Migrations

High-stakes CMS migrations from virtually any source onto a platform we support, with content and uptime protected.

Maintenance & Support

Proactive, senior-led care that keeps your platform secure, fast, and ready for what comes next.

AI Integration

Practical, native AI features built by the team contributing to Drupal’s AI core.

WebOps Audits

A clear, prioritized picture of your platform’s health and exactly what to fix first.

RevOps

CRM Implementation

HubSpot implementation built around how your team sells. We scope what is actually needed, configure what your team can operate, and hand off a system that works on day one.

CRM Migrations

Marketo, Eloqua, Pardot, and Salesforce moves into HubSpot. We treat every migration as a risk mitigation project, because for the VP who owns the pipeline, it is.

CRM Architecture

The structural decisions that shape everything downstream: object relationships, data governance, integration strategy, and managed data migration. Designed for how your team actually works.

Insights

Articles

Practical thinking on WebOps, RevOps, and running platforms that cannot fail.

Newsletter

Occasional, useful notes from the people doing the work. No noise.

Events & Talks

Where to find our team, from DrupalCon to industry meetups and webinars.

Our Work

About

Our Story

Why Digital Polygon exists, and the through-line behind every engagement.

Team & Leadership

The senior, global team you actually work with, named and accountable.

Careers

Join a senior team that builds the platforms and revenue systems people depend on.

Open Source

The modules we maintain, the initiatives we lead, and Polymer, our WebOps product.

Ticket Workflow in Jira

Reasons for Reopens and How to Mitigate

Ticket Workflow in Jira

Throughout the development workflow, sometimes it’s required to reopen tickets in Jira. This could be due to acceptance criteria not being met, implementation details being missed, bugs arising due to the changes, or something not working as expected. Regardless of the reason, it is sometimes unavoidable to reopen tickets in order to achieve the work item and pass the ticket as done. In this blog, we’ll walk you through some of the reasons why a Jira ticket could be reopened and how code review could help prevent reopens.

Wrong Implementation or Missing Ticket Requirements

At any time during the Jira workflow, if we feel like the work completed does not match the expected requirements of the ticket, the ticket should be reopened and the discrepancies addressed. Reopening the ticket is the best way to track the amount of work put in, actual costs, and time spent. 

Ticket failing QA

Once a ticket gets to Quality Assurance testing, the tester will be testing the actual functionality of the work item. Some scenarios in which we should reopen the ticket at the QA stage include: 

  • Feature is not working as expected
  • Feature is breaking on different browsers and devices
  • New changes have introduced regression bugs

Code not meeting the set Standards

A main reason for a ticket being reopened in Jira could be that the code does not meet the set standards. A code review checklist is one of the most important steps we can take to make sure that the code that is being pushed meets requirements. With a code review checklist in place, we can be more confident that the code will meet the set standards and requirements of the work item. The list of checks which should be included in the code review checklist are:

Look for obvious bugs:

Checking for bugs is the most important step that the code reviewer takes while checking the code. Even experienced developers can write code that sometimes has defects. Often, those defects are quite trivial: an off-by-one error, a misspelled variable, parameters passed in the wrong order to a method, and so on.

Code reviews offer a great opportunity to catch these defects  because while the developer may miss them, a code reviewer with a fresh pair of eyes may spot them more easily. This allows for defects to be addressed before the ticket ever gets to quality assurance testing.
 

Look for possible Security loopholes

The next most important step that the code reviewers should take while reviewing pull requests is to look for security loopholes in the code. Some items that needs to checked are:

  • Cross-Site Scripting (XSS): Lack Of Input Sanitization
  • SQL Injection: Writing SQL Queries Directly In PHP Code
  • Missing Route Permission And Access Checks
  • CSRF (Cross-Site Request Forgery)
  • File Uploads: Allowing File Uploads To Unprotected Directories
  • Distributed Denial-of-Service (DDoS) Attacks

Check for Code Duplication

As a code reviewer, one should look for areas of improvement in the form of code optimization. Instead of writing the same line of code again and again, we should check if we can create generic functions and use that in the code. This has huge advantages such as the following:

  • Merging duplicate lines of code simplifies the structure of the code and reduces file size
  • Increases the maintainability of the code and reduces the technical debt over time
  • Reduction in the number of security vulnerabilities
  • Keeps the code clean which in turn helps in providing feature support and new updates quickly.

Check Whether Names Are Descriptive Enough

Naming is one of the hardest things in software engineering, but that doesn’t mean we should give up. When performing a code review we should look for opportunities to improve the names of variables, constants, class fields and properties, methods, classes, and so on.

Look for Possible Performance Improvements

Performance improvements can be simply monitored by checking:

  • An expensive operation inside a loop
  • Excessive allocations of objects
  • Inefficient string concatenations
  • Inefficient logging
  • Optional: Code Documentation
    • Adding proper comments in the code helps the reviewer to understand the code and provide correct and quick feedback.

Note: In a scenario where all of the requirements of the ticket have been met and we see the functionality of the requested feature in place, the ticket should not be reopened. If a regression or bug is noticed that is outside the scope of the ticket, a new ticket should be created and the old ticket should be linked to it for reference. No ticket should be reopened for new requests that are out of the scope of requirements.

Conclusion

Throughout the development workflow, it is sometimes necessary to reopen tickets in Jira. Maybe the requirements weren’t met, the acceptance criteria wasn’t clear, or there were some issues in the code. The longer that teams work on projects together, the greater the efficiency; however, there still may be scenarios where a ticket has to be reopened. By following a standard code review process, we can help mitigate reopens and address issues before they get to QA, thus reducing the amount of reopened tickets. 

Filed under

Keep reading

More from the field.

For projects that cannot fail

When it has to work. We deliver.

Tell us what you are working on. We will tell you honestly whether we are the right fit, and what a strong engagement looks like.