Code Quality for Jira: A Simple Toolkit for Code Monitoring

Anna Khrupa by Anna Khrupa on May 6, 2019

Code Quality for Jira: A Simple Toolkit for Code Monitoring

The Idea and The First Steps

Our main goal was to develop a universal toolkit for Jira/Jira Cloud with an intuitive and friendly interface. The idea of the project appeared after we tried SonarQube desktop application but realized it missed important features. We faced the need to have a powerful tool that would be capable of automating basic code writing processes. It took too much of our programmers’ time to deploy software whenever they needed to scan some project’s code with SonarQube. This application also lacked personalized code quality metrics, which were extremely important as they would help us to eliminate tech debt.

Besides SonarQube, there are many readymade solutions available for Jira but none of them addressed to the specific needs of our company. After a long time of seeking, trying, and failing, we decided to create our own tool –– CodeQuality for Jira. We used SonarQube’s static analysis engine as a core of our utility and integrated it into Jira to increase transparency and awareness of code quality within the team. On the other hand, we wanted our tool to be comprehensible for our clients and other users without a technical background.

The Challenges and The Development Process

We wanted our users to be confident that the code created by their development teams is bug-free and easy to maintain in case of further improvement. So, we began our work by collecting the expectations of our potential users, the focus group, and developers. We received helpful feedback from our customers, which became the cornerstone of our further decision-making. This included their expectations regarding basic functionality and the visual appearance of the product. A detailed project plan was also developed by our managers in collaboration with the company team leads. After that, the main development process began.

It took us only one month to complete an MVP of CodeQuality for Jira. It was very limited in functionality but clearly expressed the idea and made it possible to collect useful feedback from our customers. Beta-testing stage helped us to be more confident of the value that we would deliver to our users. After 12 months of productive software development and testing, we had the first fully-fledged version of CodeQuality for Jira.

Since the development stack for each project checking by CodeQuality for Jira may vary, we decided that the toolkit should support at least 13 popular technologies. Thus, at the moment, CodeQuality for Jira can be used for projects developed in Python, Java, JavaScript, Typescript, C#, C++, Erlang, PHP, Puppet, Flex, PL/SQL, VB (.Net), and Go.

As QArea opts for progressive and reliable technologies, we choose Golang for the server part and React for the frontend part of the project. Thus, Code Quality performance is fast and smooth.

Management Processes

The internal management processes also had to be at the highest level. We adopted a progressive and effective Scrum approach. Many ideas that became features, algorithms and UI elements were suggested by the team members who are developers themselves. We knew how much effort it would take to establish an advanced agile process so we concentrated on radical transparency and process improvements from day one. Up to date toolset helped us make things go smoothly. Jira was selected as a task tracking software, Confluence as live documentation storage, and Slack for daily communication. The tools that supported us and helped speed things up were GitLab, Git, Grafana, and Kibana development environments.

The Results

So, at the moment we have the 2.2 version of CodeQuality toolkit. It is successfully used for our own management processes and is also available for free for anyone who opts for high-quality code and transparency within the development process. The core CodeQuality functionality includes:

  • Analysis of the progress and quality of the code at all stages of development;
  • Graphic visualization of the received data;
  • 13 technologies are supported: Python, Java, JavaScript, Typescript, C#, C++, Erlang, PHP, Puppet, Flex, PL/SQL, VB (.Net), and Go.
  • Metrics per developer or a whole team;
  • Estimated fix times and advice on how code should be fixed.
  • Elimination of legal risks by setting and automatically enforcing SLA-based code requirements.
  • The possibility of daily commitment for smooth operational management.

The new 3.0 version will be released soon. It will include several useful improvements and additional task management features. We are very proud of the final results and are pleased to know that our management assistant is widely used by users from the USA, Latvia, Ukraine, Hungary, the UK, Spain, and other countries.

Ready to create reliable software?