JIRA Plugin Development for International
Azati helped the customer create a full-fledged plugin for the Jira Service Desk to enhance the software functionally, add all necessary features, and efficiently handle incoming applications.
The customer is an international IT company that for more than 28 years provides a range of services varying from systems integration to application development consulting.
The client company helps businesses get the most out of technologies, create new opportunities and successfully solve the most sophisticated challenges that stand in the way of becoming the companies of the future.
For IT organizations of all sizes, the service desk represents one of the essential core activities, requiring management daily. Service desks play a crucial role in ensuring the availability of all services that the IT organization delivers and supports.
Jira Service Desk is supposed to deliver an intuitive interface that empowers teams to provide an excellent service experience and ensures clients can get help quickly. Moreover, it comes with default project templates that you can use to suit your team’s needs.
Even though Jira Service Desk is a flexible platform, sometimes basic functionality is not enough for some issues. That’s why the customer hired Azati to develop a plugin called “SLATime”.
The primary objective of the plugin was to handle incoming user requests and automatically estimate task duration according to its priority, service schedule, workload and processing period. One of the features the Customer wanted Azati to implement is the ability of the plugin to track field changes and recalculate estimation.
The development team faced several challenges while creating the plugin. Let’s have a closer look.
One of the problems our engineers faced was a lack of access and other permission-related issues. The team had no access to the production environment, and engineers could not log in to the live system as administrators.
Azati worked with fresh JIRA installation in a development environment without additional superstructures, addons, extensions and third-party plugins, while the production version contained not only necessary for testing data but also a bunch of third-party plugins that affected workflow.
Due to these two environments, all tests ran twice and sometimes provided different results and spawned extra errors. These errors significantly prolonged the development because the team had to wait additional time to receive feedback from the customer.
As soon as the team proved its experience, the customer granted all the necessary accesses.
The second issue was related to inaccurate technical specifications and communication between remote management. As management relied on offline editors (Microsoft Office) while developing the project documents, there were many various versions of one document. The engineers often get the up-to-date versions with a considerable delay, so engineers did not notice when someone changed the specification.
Azati proposed to move document editing to the cloud. This step significantly increased productivity and accelerated the workflow because the version history was accessible for everyone, and it was easy to set up notifications when the document updated.
The third issue was not so obvious in the initial stage. Atlassian Plugin SDK has decent documentation concerning plugin creation, configuration, and all superficial things. But if you dig deeper, the documentation does not provide the code examples or any best practices.
Hopefully, the proactive standpoint allowed us to contact other teams and engineers who developed different extensions used in the project to learn about the choices made and get some source-code examples.
As it was mentioned before, the engineers entered the project without complete access to the system and related resources.
For a significant part of the project, the team worked on a local domain and sent the results to the Customer. The Customer provided Gitlabs credentials in the last two weeks before production deployment
The development process consisted of three main stages:
Stage 1: Documentation Review
Before this project, our engineers faced Jira Service Desk only as regular users, so it was desiring and challenging for us to get into Atlassian development.
Our engineers had to calculate request dates, taking into account all fields included in the application form: the working period, service duration, and the holiday calendar to deliver more accurate outcomes.
So the Azati team learned the nuances of how to implement required functionality into the Service Desk successfully.
Stage 2: UI Development
After reading specifications, engineers learned how to operate with necessary data, figured out where it should be placed and located, and created all the fields required to make the plugin work. Moreover, we automated some processes as well as created the custom field types.
Stage 3: Plugin Configuration
The last stage is plugin configuration. Azati engineers created a configuration form for setting up the plugin, so the Customer could configure or reconfigure the plugin when he wants.
Our engineers also implemented a helpful feature which was called “Notes”. It allows the customer to leave a note for some specific (custom) attributes. For example, if a user wrote some incomprehensible data in the field that the system could not parse, it was possible to leave accompanying comments and notes to facilitate and speed up the work.
After we developed and tested the plugin in a dev environment, engineers packed the plugin into a JAR file and sent it to the Customer. After that DevOps team successfully integrated it into the Jira Software.
The deployment process is pretty straightforward: the administrator uploads the archive via a user interface, and Jira Service Desk picks up this java plugin automatically. After that, a user (project manager) needs to go to any project and configure the plugin for its needs.
Azati developed the plugin according to the project specification and customer requirements. While we created a stable demo version, the Customer wanted to redo the configuration to implement new demands in terms of functionality successfully.
The team allowed the Customer to rearrange the administration processes of tasks and solutions of narrowly focused tasks. Since the Jira Service Desk does not allow to customize business processes more specifically, the plugin helped expand these capabilities and give the Customer everything he wanted to get from the software.
As soon as the DevOps team deployed the first version of the plugin and collected feedback from the end-users, the customer turned to Azati for further improvements.
These improvements include:
- Optimization of data validation processes
- Develop a set of features that allow the Customer to schedule and filter incoming requests according to certain conditions and events.
- Add a list of statuses stored in the configuration to accurately calculate the operation time, taking into account the time the application was in a certain status
Featured case studies:
The customer asked Azati to audit the existing solution in terms of general performance to create a roadmap of future improvements. Our team also increased application performance and delivered several new features.
At Azati Labs, our engineers developed an AI-powered prototype of a tool that can spot a stock market trend. Online trading applications may use this information to calculate the actual stock market price change.
Azati designed and developed a semantic search engine powered by machine learning. It extracts the actual meaning from the search query and looks for the most relevant results across huge scientific datasets.
Azati helped a well-known software integrator to eliminate legacy code, rebuild a complex web application, and fix the majority of mission-critical bugs.
Azati helped a European startup to create a custom logistics platform. It helps shippers to track goods in a real-time, as well as guarantees that the buyer will receive the product in a perfect condition.