4 Phases of Agile DevOps with Atlassian
As Development and IT Ops teams look to be more efficient, decreasing their time to market and increasing product support, DevOps has become the predominant industry solution. There are many resources that paint a picture of the ideal processes for Development and Operations working harmoniously together- but how do we actual get there? Where should we start?
We need to begin with the end in mind. Our end goal is to deliver customers the software they need as fast as possible. The software industry is faster and more dynamic than the businesses of physical products. We need to get our customers features so they can give us crucial feedback while beating our competitors to market. The faster release development goes from concept to code, the quicker we can make customer happy. DevOps is a broad term with a variety of meanings, but at the end of the day, it seeks to increase the collaboration and automation between Development and Operations so we can get more frequent and higher quality releases into the hands of our customers.
When it comes to collaboration and automation, a focus on process and the use of the Atlassian suite are the best way to get there.
The infinite loop of developing and supporting products that customers need and want with DevOps and the Atlassian Suite.
Image source: Atlassian
The pain of hectic firefighting and troubleshooting make the need for DevOps obvious on the frontline, but getting alignment and investment at the organization level can be pretty difficult. Successful implementation is going to require buy-in and support from a variety of stakeholders and many levels. Before we can get our hands dirty, we need to convince everybody to spend the time and money to get these processes and tools in place.
Here are three ways to get the ball rolling:
One for the Book Club: Phoenix Project
Everybody has those business books that revolutionize the way they manage their work and companies. The Phoenix Project by Eugene Kim narratively addresses and exposes the gaps in processes between teams and points to a DevOps prescription to unblock cross-team work. We highly suggest recommending it to your teams, as it's a great way to get everybody on the same page and really see the value of DevOps.
Build a Business Case
At the end of the day, businesses exist to make money. To invest time and effort, we need to calculate the business return. The 2016 DevOps report from Puppet Labs does a brilliant job showing the financial reasons to adopt this shift.
The ROI of reducing excess work with DevOps according to 2016 DevOps report from Puppet Labs
Image Source: Puppet Labs
Phase 1: Go Agile
To get the real benefits of DevOps, it requires a shift in mentality and how we manage work through our teams. As we break down our requirements into smaller individual user stories, we can flow the work through the features through the process faster. By having the structure, ceremonies and processes in place to accommodate smaller pieces of work, we can get our customers the features they need and incorporate their feedback to iterate the next, improved release faster.
Here are some helpful ideas to help your teams go more Agile:
- Educate | Get your team up to date with the basics with Atlassian's wealth of knowledge and how to do Agile in the Atlassian tools (for Product Owners too!)
- Get Up, Stand Up | Simply doing stand-ups doesn't mean you're all the way agile, but it's a great way to get our teams into the mindset. Keep them short and reduce the headaches of status updates and emails. Fill everybody in on what you did yesterday, what you're doing today, and what pesky blockers are in your way. It's facilitates more agile and responsive team collaboration and support (the heart of DevOps).
- Iterate Everything! | Speed up that Agile transformation, breaking down your waterfall projects into smaller sprints so you can always reprioritize and adjust as needed. Start with your software teams and spread out to your IT Ops projects and even marketing projects. Start in your own department: find the planning spreadsheets with those idealistic due dates, set up a backlog, and start sprinting!
- Agile Boards | Once you're planning and executing in sprints, track and visualize it on a Jira Software board. Avoid those dreadful status meetings and send out the link to the board to keep everybody informed. Also, throw some wallboards up around the office so everybody can see your team killin' it.
You'll know you're a lean, mean, agile machine when your software teams are cranking out stories in a steady cadence of sprints. Over time you'll see that velocity stabilize - then you can accelerate!
Phase 2: Get with Gitflow
Git and Gitflow is a great way to help our dev teams increase velocity. As we're working with smaller stories, we need to be able to collaborate effectively with on our code base so we're not stepping all over each other. Version control systems of the past aren't going to be able to keep up with our blazing fast development teams. Bitbucket and the underlying technology of git are going to let our teams build user stories and merge them into the code base without wasting time messing with annoying versioning issues and costly code conflicts.
- Start with the Basics | Start by learning (allthethings) about how to effectively manage your branches and build in code quality with Atlassian's Git Tutorials and the Git Getting Started guides. Share them with your team so everybody's on the same page and knows the difference between a commit and a pull request.
- Move to Git | If you haven't made the cutover to Git quite yet, get your team and managers onboard by sharing the benefits and how it will help ship more code. Once folks are convinced, learn why Bitbucket is the Git solution for professional teams and helps with pull requests, branching strategies, permissions and scalability. When it's time to actually move all that code over, see how we helped Splunk get git and 4 times the number code reviews completed.
- Start Branching | With the tools in place, it's time to start branching! Learn more about some common workflows to better handle branches here. Utilize those pull requests to build in code quality as you go. Eventually your Dev team will be humming with full Gitflow and your Ops teams will be in love with the clearly designated branches.
- Automate, Mate | The marvelous integration between Bitbucket and Jira Software lets us automatically update the Jira issues based on what's going on in Bitbucket. Developers don't need to switch context anymore to keep the ticket up to date, and the whole team gets an accurate idea of what's actually going on. Check out our Automation Webinar to learn more about the powerful workflow triggers that make this possible.
The Gitflow branching strategy shown above utilizes different branches for specific roles like hotfixes and releases to help manage larger and more complex projects.
Image Source: Atlassian
Phase 3: CI/ CD
The next phase is how we define the crucial handoff between Dev and Ops. When our units of work and code changes are smaller, we're going to need to deploy more often to get those features to our customers. Before we ship it to the ops team and production, we need to ensure quality as our individual features come together. This is where good Continuous Integration/ Continuous Deployment practices along with Atlassian's Bamboo are vital to successfully shipping our product. Catching bugs and issues before they go to production is going to help both the Dev and Ops teams sleep better at night.
- Learn about Bamboo | For on-prem Atlassian users, Atlassian's Bamboo is the CI/CD solution that allows professional teams to build their CI/CD pipeline. You may be using Jenkins or other open source teams, however the deep integration points and improved build management make it the right choice for professional teams.
- Integrate with Jira | Once you have Bamboo up and running, leverage the integration between Bamboo and Jira Software.
- Bitbucket Pipelines | If you're an Atlassian cloud user, Bitbucket Pipelines is a new, powerful solution in Beta that lets developers build, test and deploy directly from Bitbucket. Developers have the power as they can define the environment and tests for their specific branch with YAML file style configuration.
- Dockerize Everything! | Docker and containerization is the latest craze sweeping the IT world as teams look to deploy applications to any environment faster and easier. Check out our Docker +Atlassian webinar to learn more about how. As partners with Docker, we love to helping teams harness this cutting-edge technology.
- Automate Testing | Automating testing with tools like Charlotte, QA Symphony, and Zephyr (which integrate with Bamboo and Jira) gives your development team an even more agile edge. Get efficent, high-fidelity testing to expedite the finding and squashing of bugs to ensure your next iteration is the best version.
Phase 4: Harmonize with Support
Once the story is shipped, the process does not end. Now it's time to keep the product working and collect that vital feedback we need.
- Check out our webinar, DevOps with the Atlassian Suite, for a full picture of how development and operations are going to work in harmony.
- Set up a product feedback service desk in Jira to really hear your customers and integrate directly with development teams.
- Learn how to set up your Service Desk teams for success with our ITSM webinar.
By implementing the right DevOps tools and processes, you'll see the faster shipping of higher quality and better supported releases. As your Development and Ops teams continue to execute these lock-step processes, you get more agile by good practice. Take the steps to start implementing DevOps today by contacting us to get up and sprinting.