The software development and information technology (IT) universes are in constant motion and driven to improve as much as possible. Here's precisely where the Agile and DevOps methodologies offer structures for better control of project progress. In this post, we'll explain the three DevOps pillars.
The Agile methodology offers different approaches to software development (mainly) based on constant collaboration, and DevOps focuses on how the Development (Dev) and Operations (Ops) teams collaborate; there are three essential DevOps pillars that boost the productivity of IT teams:
The following phrase summarizes what popular wisdom preaches today... but when it comes down to the details, many misunderstandings appear, and that's precisely what the pillars we mentioned before seek to demystify:
If you don't do DevOps, you don't know how to manage IT teams.
DevOps is a macro-culture that revolves around work and offers value to businesses from the collaboration between the Development (Dev) and Operations (Ops) teams (there you have its name origin). However, that would be simplifying a lot. That's why we're going to explain DevOps through our experience and its pillars:
Before implementing DevOps practices within a company, it's essential to consider the team's maturity, the implementation of agile methodologies, and the configuration of the software tools.
In our case, we have managed to launch product versions (Projectrak for Jira or Exporter for Jira) in production in a matter of minutes and even have the peace of mind of releasing a new version on a Friday afternoon.
Relying on the DevOps development methodology provides a shared environment and configurations for development, testing, and launching; besides, it automates the transfer of the code, reducing the likelihood of bugs or human errors.
The flow starts with a Jira Software issue type we allocate for releases. The Jira Software releases articulate the entire workflow, approvals, code reviews, and integrations with other products such as Bamboo and Bitbucket governed by that same unit of work.
In a way, this exemplifies well the recommendation to treat code as if it were in production: every build must be robust enough to be released. Have that in mind.
Commonly, some product versions may not see the light; in our case, the product management takes full advantage of the developer's (Dev) efforts; that way, we never create product features or versions not to release them later. Company culture has to be strong enough to allow making the most out of necessity.
The asynchronous communication is key to software development >>
DevOps methodology seeks to streamline Developers, the Testing Team, and Administrators to achieve productivity's Nirvana. Everything else outside that macro it's not DevOps. The following keys will give us more insights about it:
The benefit of automation is obvious; as mentioned before, it allows you to save time and focus your efforts on what matters. Implementing software tools like Bamboo and Docker will allow for streamlining operations (Ops) team processes, keeping them in communication with developers (Dev), and launching the software in a more agile way. That's the way we do it.
When deploying Bamboo and Docker, it's possible, through three simple tasks, to create a Jira Docker image from a Docker file, generate a container to serve the application, and upload that image to the Docker image repository so that it can be available to the whole team, at any time, without relying on anyone.
Bamboo offers different benefits when integrating it into the operations workflow to eliminate manual, tedious, and repetitive activities.
This solution came to light, inspired by the experience of Charlie, who in search of being more agile in his work within DEISER, and tired of starting up to five or six machines with different versions of Atlassian tools for requests from developers and consultants, relied on Docker to design a system that we currently use for those purposes. In this way, Charlie cloned himself and made it possible for any team member to launch an application in a matter of minutes. Contact us if you want to learn more about it.
Getting a traditional software company to take steps to remove the barriers that slow work down, bring technology closer to business, and immerse itself within the agility culture that DevOps represents is a big question, and every situation is different. Below, you can see the Atlassian approach to this methodology from the tool's point of view:
That's why it's important to preach about the true value DevOps brings, which often begins with the implementation of the tools, with an inverse learning curve.
This blog post is based on our experience and a series of talks offered under the DEISER TOUR umbrella around Spain in 2018.