Atlassian-based DevOps transformation

Atlassian-based DevOps transformation

To help the customer with DevOps transformation, Itransition leveraged Atlassian tools for improving team collaboration and release management.

Case study

Atlassian-based DevOps transformation

Context

Our customer is an international company that develops global commercial standards for the air transport industry. The company represents and serves the majority of the world’s airlines, helping them simplify processes and increase passenger convenience while reducing costs and boosting efficiency.

There were around 40 business software systems for managing the customer’s processes, Salesforce included, in use by about 35 geographically distributed teams. The insufficient integration of tools and a lack of automation resulted in lower productivity, excessive development costs, and inability to track project statuses.

In an effort to streamline and automate their development and operations as well as improve teams’ collaboration, the customer initiated DevOps transformation. The customer intended to use Atlassian tools to help distributed teams work faster and more efficiently. They wanted to accelerate delivery and increase its quality, thus unleashing the full potential of a DevOps culture company-wide. By doing so, the customer wanted to ensure uninterrupted performance of end clients’ vital systems and increase their satisfaction level.

The customer was looking for DevOps consultants to perform the planned transformation and work out a set of recommendations and improvements. They ended up choosing Itransition due to our status as an Atlassian Gold Solution Partner having established DevOps practices.

Solution

We delivered Atlassian consulting services broken down into the following initiatives:

  • To create a collaborative DevOps environment on top of the Atlassian stack.
  • To implement Atlassian tools for optimizing and automating associated release management operations.
  • To leverage Atlassian tools for identifying potential interdependencies across IT projects and assessing their impact on business.

Collaboration tools

Our team analyzed the existing processes and main stages in the customer’s DevOps chain and proposed solutions to foster collaboration, accelerate releases, and continuously improve quality at each phase of the customer’s software development lifecycle (SDLC).

The requirements analysis phase

Our Atlassian experts detected the following issues in that phase:

  • No single place to store and manage requirements, which impeded tracking and sharing.
  • No user and permission management practices, as well as the lack of automation and integration options in Atlassian Confluence.

To solve the detected issues, we proposed using Confluence as a single place for all project requirements and documentation and utilizing Atlassian Access connected to all other Atlassian tools. We also suggested applying group-based user management instead of adding individual users.

The development phase

We detected the following flaws:

  • Different configurations and rules in Bitbucket instances, which also contained common repository management issues.
  • Inconsistent and inefficient use of Jira Software in terms of tracking, sprint schedules, and security.

We connected Jira Software to Bitbucket on all the projects to provide a single view of feature development. As a result, users could view Jira issues in Bitbucket and show Bitbucket activity in Jira, automate Jira workflows, and view Jira software projects related to repositories. To cut costs, all Bitbucket instances were merged into one instance.

Our experts advised the customer to use Jira, Confluence, and Bitbucket for all the SDLC phases and leverage prepared project workflow templates. We also recommended external regular supervision by a technical or management team to ensure the guidelines are followed. To get the most out of integration capabilities for all team types and tools, we proposed integrating Jira and Bitbucket with Azure DevOps Services.

The build/release phase

We detected the following issues:

  • Automation and integration were rarely used.
  • Jira release management functionality, including release planning and documentation, was not used across all projects.
  • The customer’s existing tools did not completely fit into a fully automated deployment pipeline.
  • There was no established knowledge sharing process.

To address those issues, our team leveraged integration between Bitbucket pipelines, Jira Software, the Tosca test management system for triggering automated tests, and other products related to the build and release process. It helped plan releases, assess and share project progress, and track changes. We also advised the customer to use callbacks to Bitbucket to provide build, test and validation information prior to a manual review.

The operations phase

Our analysis revealed a few issues:

  • Incomplete integration between the customer’s service management system ServiceNow and the rest of the tools.
  • Scattered and missing data due to an excessive amount of disconnected processes and tools.
  • No common knowledge base describing the operations phase processes and rules.

We encouraged the customer to use Jira Service Desk as a collaborative service management solution and connect it to other tools from the SDLC stages, including Salesforce. Alternatively, we suggested integrating the customer’s existing service management software with Jira Software and Confluence. We also recommended using Confluence as a single knowledge sharing place and a repository for troubleshooting guidelines.

Our team suggested adjusting onboarding and offboarding processes across tools with the help of a predefined HR project template from Jira Service Desk or custom workflows. Those rules helped Operations and Development teams to work more closely together, with feedback collected across all projects and available in one single place.

Collaboration principles

The customer worked with geographically distributed teams across multiple time zones. They also used different toolsets and processes that critically affected collaboration, with automation and integration being the global issues across all the SDLC stages.

To solve the issue, all of the customer’s teams switched to the Atlassian stack to enable transparent cross-team collaboration at any stage of the development lifecycle, improve feedback between the teams, and quickly identify and fix issues. Automated notifications minimized human errors and didn’t let team members miss important tasks or project progress updates. We streamlined collaboration by means of integrating the customer’s Microsoft Teams with Jira Software, Confluence, Bitbucket, and Jira Service Desk.

SDLC stages with Atlassian

Automated deployment

Together with the customer’s Salesforce teams we assessed the existing workflow for Salesforce releases and defined a roadmap for Atlassian implementation. The goal was to optimize and automate release management operations, ensuring process traceability.

During the analysis, we relied on the existing setup, configuration, and usage of Atlassian products used for release management. Itransition’s experts delved into release management details of selected projects, identified all bottlenecks, and drafted an improvement report focused on getting the most out of the Atlassian stack capabilities.

Jira workflows

The customer’s development teams didn’t properly follow the Agile principles and sprint schedules; neither did they use Jira for planning and tracking release statuses.

Our team proposed to verify and clean up old development projects, archive unused code repositories, and utilize a prepared release management template in Jira, enabling Salesforce release status tracking. As a result, every project scheduled for development and release had a dedicated Jira project, while development teams used Scrum and Kanban development workflows as well as release version management in Jira and Confluence.

We helped implement company-wide supervision of Jira processes to ensure there were responsible team members for each planned release as well as scheduled release planning and retrospective meetings. We also proposed to use Jira workflow triggers to automate issue transition regarding branch updates, like commits, pull requests, and other.

Confluence

Our analysis of Confluence usage showed that there were no common rules for documentation and Salesforce release information storage. We also found out that development teams were ignoring automated tests while publishing changes to the master repository, thus creating extra work for release managers.

Our Atlassian experts guided the customer in creating a Confluence space for storing all Salesforce development documentation, with references to specific documents. Each project got its own dedicated Confluence space, which contained project goals and purposes, team description and responsibilities, and project requirements with release planning and release notes.

Bitbucket

Upon assessing Bitbucket operations, we saw that a Bitbucket admin didn’t supervise repository configurations. Instead, each team had permissions to configure their own repository rules and validations, which made development workflow restrictions and recommendations useless in this context. Additionally, the existing branching model along with time-consuming automated tests in the system integration testing (SIT) and preproduction environments prevented tracking changes in the code properly.

Failing commits were not rolled back, with the teams synchronizing SIT and preproduction environments before pushing their changes to those branches, which resulted in changes from different teams being mixed up and code validation overcomplicated. What’s more, releases were not tagged, and a significant amount of commit messages lacked the related key issues, which hindered issue traceability.

To ensure consistent branch naming and validation rules, Itransition’s team suggested creating guides for developers about using the branching model. That also allowed for writing more elaborate build scripts and automating processes based on branch types. We advised the customer to create feature, bugfix, hotfix and release branches directly from Jira Issues. At the same time, individual teams had a restricted permission to manage repositories, where only a Bitbucket admin was in charge of managing repository configurations.

Build and deployment

While assessing this stage, we noticed that not all of the development and testing teams followed release and testing workflows. For instance, build automation was not configured for all forked repositories, therefore Bitbucket couldn’t receive and store build statuses for commits.

We proposed to implement release branch pipelines and create builds for branch types, such as:

  • Running build and deployment automation on release/branches
  • Configuring builds to work with specific repository environments
  • Deploying SIT, preproduction, and production-release from respective branches
  • Scheduling test pipelines
  • Using callbacks to communicate long-running builds

Itransition’s team advised the customer to consider moving build, deployment and test automation to Bitbucket pipelines or, alternatively, upgrade their current Bamboo Server instance to the latest version with no vulnerabilities.

Process management

The customer’s process management had several critical drawbacks. First of all, the release manager served as a single point of knowledge, being at the same time a Bitbucket administrator, a DevOps engineer, and a deployment manager. Additionally, there was no common release schedule, and project process documentation was stored outside of Confluence.

Our team introduced centralized planning and progress tracking in Jira and Confluence for all projects. The customer’s development teams conducted a technical review of the projects and repositories on schedule, documented project health estimations, and drafted issue-fixing plans.

We proposed to implement callbacks to Bitbucket with build statuses for tests as well as code review rules. Releases were to be weekly planned or discarded, with subsequent rescheduling in case of not passing tests or review. The release manager and Bitbucket administrator roles were separated.

Interdependencies management

Within the interdependencies management project, our team demonstrated how to effectively manage potential cross-project dependencies with the help of Atlassian Jira and Confluence. We helped establish a company-wide process that described the major steps for identifying, managing, and tracking interdependencies through the project lifecycle with the help of these platforms.

We also prepared an overview of Atlassian products and Atlassian Marketplace apps to customize and extend the functionality of Jira and Confluence and enable tracking interdependencies across projects. We selected such tools as Jira Align, Portfolio for Jira, BigPicture, Structure for Jira, and Tempo Planner to tailor Jira Software and made it suitable for any facet of interdependencies management while providing a wide range of features to boost team productivity.

Results

Itransition’s team provided wide-ranging Atlassian consulting to help the customer perform their planned DevOps transformation across their organization. We audited their existing processes and tools and introduced a set of recommendations to improve team collaboration and release management by leveraging Atlassian tools.

Within three weeks, we conducted seven interviews with team leads, analyzed around 20 projects, identified about 30 issues of various severity, and proposed relevant solutions. Additionally, our team demonstrated how to effectively manage project interdependencies with the help of Jira, Confluence, and other Atlassian apps.

Upon the project completion, the customer expressed a high level of satisfaction as well as a strong intention to continue implementing the proposed recommendations with our assistance.