DevOps is an organizational practice that's gaining rapid traction in the software development world. According to RightScale's 2016 State of the Cloud Survey, DevOps adoption rose from 66% to 74% in just one year, with enterprises embracing it at 81%. Essentially, DevOps is a joint effort based on agile methodology that brings the development and operations teams together for the entire software development lifecycle.
The value of this practice is that the traditional power struggle and finger pointing between owners of two different phases of the delivery process – building vs. supporting – is replaced with a faster and more flexible team that delivers higher quality output. In fact, Puppet Lab's 2015 State of DevOps Report found that high performing IT teams who embraced DevOps reported 60 times fewer failures and 168 times faster recovery rate. They also deployed 30 times more frequently with 200 times shorter lead times!
In order to maximize and reinforce DevOps best practices, teams need the right tools and infrastructure to support their mission. What started as a software company for software companies that now serves 50,000+ organizations like Facebook and NASA, Atlassian offers a suite of products that support the most agile development processes, including DevOps. By encouraging visibility, prioritization, automation, continuous integration, and documentation, Atlassian empowers DevOps to deliver the most value to the end customer.
The Atlassian suite promotes visibility and transparency internally within the company and externally for clients. This ensures that no one is left in the dark about issues that may arise and encourages accountability for all. Let's say, for example, that a customer has reported a software bug by submitting a Jira Service Desk ticket. A customer support representative then updates the status of the ticket to "Investigating" and begins to explore the problem. (This act notifies the customer that her problem is being looked into.) When the rep tracks down the problem and realizes that it's a replicable bug, he marks the issue as high priority, adds internal comments describing the problem, and transitions the status of the ticket to "Confirmed." Using the Jira add-on, Bob Swift Create on Transition, the status change automatically creates a new bug issue in the dev team's Jira project, copying over relevant information and linking it back to the original issue. This transparent process benefits the customer in that she stays informed about what's going on (and feels that her problems are important to the company and being resolved), and it benefits the DevOps team because they have end-to-end understanding of the problem at hand.
With a constant stream of requested work coming from both internal and external sources, it's sometimes difficult for a DevOps team to prioritize effectively. Huge and costly problems can arise when fires aren't triaged appropriately and put out in time. Atlassian can help with prioritization through filters that identify different issue statuses during a workflow and automated alerts using email or instant messaging. Going back to our example, the Create on Transition add-on serves as a filter between customers' service requests and the DevOps team's Jira project. Instead of getting flooded with tickets, the team can rely on customer support to verify and submit bugs on behalf of the customer, embedding prioritization into the process. If issues are automatically assigned, Jira can notify team leads by email when a new bug issue enters the team's project. If newly created issues are not automatically assigned, the team can rely on ChatOps using dedicated HipChat rooms for individual projects or even priorities within a project. Jira can create automatic notifications that appear in HipChat, and devs can click through the message directly to the Jira ticket. This integration allows for immediate response and keeps the team focused on what's important now.
Continuous integration (CI) is an agile practice that requires devs to consistently integrate code into a shared repository, allowing teams to detect problems sooner and without the extensive backtracking. Atlassian's suite of products work in unison to make continuous integration happen seamlessly. After fixing the aforementioned bug, a developer can commit her changes in her Git feature branch and push them up to Bitbucket, which then kicks off a build in Bamboo. When her build and test come back clean, she creates a pull request to merge her code into master. Once her change is approved and merged into master, the release manager builds and deploys the updated master branch to Bamboo. This tight integration of Git, BitBucket, and Bamboo – paired with some marketplace add-ons – allows for a seamless hand-off from development to operations and back again.
With complex and intertwined workflows involving multiple stakeholders, automated triggers save teams valuable time and energy by taking care of redundant or peripheral tasks. Going back to our example, when a workflow trigger picks up on our developer's merged pull request, it transitions her issue from "In Progress" to "Done." This status change then triggers a post function that invokes the Jira add-on Bob Swift Update on Transition. The add-on updates the original Jira Service Desk issue submitted by the customer and adds a comment that says the fix will come in the next release. Automation allows our developer to maximize her time completing actual work, like squashing bugs and creating hot fixes, instead of devoting time to process compliance. (A DevOps team can even create automated CI builds in Bamboo to ensure code quality.) Automation keeps the customer happy and in the know, while taking out an unnecessary layer of communication between development and customer support.
During the entire end-to-end process, Atlassian tools capture and log information at every point in the workflow, including hand-offs, in the form of status changes, comments, or the like, and this history is archived by versions. By leaving behind a well-documented trail of breadcrumbs, teams can better understand the complete story of a workflow. They can identify what went well and what didn't in order to plan for continuous improvement. Furthermore, documentation helps the next developer pick up where a previous developer left off or replicate their workflow, leading to scalable organizational knowledge.
By adopting DevOps and supporting the effort with Atlassian tools, teams can create conditions for delivering value faster, more sustainably. By improving quality – and thus value – through visibility, prioritization, automation, continuous integration, and documentation, organizations are able to increase profit without increasing operation costs and encourage a culture of continuous improvement. To learn more about how DevOps and Atlassian can empower your organization to work faster and smarter, contact Praecipio Consulting.
ABOUT BRYAN ROBISON
Bryan is Principal of Technical Delivery at Praecipio Consulting where he helps clients implement Atlassian's developer tools and provides technical guidance across Praecipio Consulting's lines of business. When Bryan isn't delivering best-in-class business technology solutions, he enjoys a good crawfish boil and some quality time strumming his guitar.