Lots of organizations end up using different Application Lifecycle Management tools to support their business and development processes. It’s not an uncommon scenario that changes in teams (developers, testers, and managers) also lead to changes in the tooling being used. In order to improve communication, data quality, operational continuity and productivity gathered with different tools, should be integrated and synchronized.
One example of the above mentioned situation is a testing team handling defects using HP ALM and a development team using Jira issues for keeping track of their work through the use of tasks. So in the case a tester finds a bug and logs it through HP ALM, a manual set of steps would be required for the bug to end up logged and related to a (bugfix) task on the Jira space that the development team is using.
It’s not a fun and optimal task to maintain such a synchronization manually, but with the right tools the process can be reliable and done in an automated fashion. ConnectAll is one tool that accomplishes both.
In this occasion I will go through the case of integration between HP Quality Center and Jira, and give a few considerations that need to be taken into account when working with these two products.
Figure 1. The problem
Custom solution with Groovy and REST APIs
JIRA and HP ALM both provide REST APIs to interact with the content, workflows and general features of the platforms. You might think… “Well, it is only rest APIs how hard could it be to create my own script that syncs the whole thing” and well, by experience I tell you that you might encounter several issues specially when it comes to synchronizing very specific Jira flows.
As a proof of concept we created a small groovy app that would use the Rest APIs, and a set of documents with JSON formatted text to serve as our mapping database between properties of issues (for Jira) and defects (for QC). And it was all smooth until we encountered cases like the update of the status in Jira, which needs of the use of “transitions” and require special treatment, and well, we made it by creating another one of our JSON cool documents and a new algorithm to process the parsed information. Then we added managing conflicts, and some basic scheduling or real time synchronization… and with some threading and other algorithms we got it working.
All the algorithms we used were fairly simple, but in general synchronization is a situation that can grow into a complex process, especially like mentioned about for very specific scenarios and also to try to create a generic solution that can adapt to virtually any endpoint systems (Jira, HP ALM, IBM DOORS etc).
Out of the box solution with ConnectAll
ConnectAll makes use of an underlying ESB (Enterprise Service Bus) in order to orchestrate the communication between the public APIs of the different ALM systems, and it provides a user interface to configure, schedule and keep track of the synchronizations that are setup.
The landscape with ConnectAll for the JIRA and HP Quality Center (and for any other integration) looks something like this:
Figure 2. ConnectAll Jira-HP ALM
It is of course a comfortable solution to interact with a GUI that abstracts the whole complexity of the technicalities behind synchronization of the different products. The tool also provides ways to add custom behaviors to make the so called “Application Links” be able to support specific business rules (i.e. the Jira flows). The way that works is that it provides a hook to Scripts that are able to process and modify the responses from the different APIs.
A simple mapping for Jira and HP ALM could look like this:
Figure 3. ConnectAll mapping configuration
The arrows that are specified for each in of the mappings indicate which way the integration should be done when reacting to creation or update events on either one of the endpoint applications. An important point to have in mind when creating this mapping rules is, to configure the right direction of the integration considering that Jira issues and QC defects require different fields to be filled during creation and update.
After creating the appropriate mapping rules and added the custom business rules (if needed), Connect all will provide a live log of the operations being made on the background and also keep tracks or successful and failed synchronizations together with reasons for the failure.
Figure 4. ConnectAll events dashboard
Making a choice
In a nutshell, for a few of the non-functional requirements each approach could be assessed with:
In terms of usability and maintainability there is no doubt that a tool like ConnectAll is a good choice, but of course, it all depends on the complexity of the information that is being handled, but in general it is a mature product based on proven technologies.
On the other hand, going for a custom solution created from scratch would require a skilled development team that can achieve not only the synchronization itself, but also implement a reliable approach that your live systems can blindly count on.