Workflow automation for the win! – Thad West, CEO Isos Technology
For modern businesses to be effective, they must have a devotion to software. They need access to resources able to build, configure, run and expand software. In such an environment, mature organizations have realized adopting a DevOps culture where development and operations collaborate is a lynchpin of success.
When adopting a DevOps focus, an important consideration must be workflow automation. The normal software lifecycle has a lot of moving parts. Workflow automation helps solve administrative and procedural overhead issues intrinsic in the software lifecycle.
When done properly, workflow automation brings you two giant wins: (1) faster, more stable development/deployment cycles (2) increased transparency. Fortunately, Atlassian has put a great deal of effort into giving you the tools for workflow automation.
Faster, more stable development/deployment cycles
With manual processes, speed and stability are often at odds with each other. A development team working in its own silo may be able to implement changes quickly… locally. Then they hit the speed bump of getting their code deployed to a shared integration testing/QA/Stage environment. Depending on how defined processes are and how familiar developers are with the processes, this can be quick and painless or slow and painful. As system complexity increases, slow and painful becomes more prevalent. As the development/testing/release cycle progresses, these transitions add more pain points and decrease productivity.
Proper workflow automation gives you tools to ease these transitions. By automating transition phases, teams should no longer rely on the approach of manually opening tickets or sending emails for transition requests. As an example, if you are using the Atlassian stack, one way to automate your workflow is:
- As a developer, create a new Bitbucket branch from a JIRA ticket.
- The developer checks out the new branch and begins work.
- Complete development work create a Bitbucket pull request for the new branch to be merged into the main development branch.
- The pull request is approved and the code is merged into the development branch.
- The JIRA ticket is updated with the merge status.
- HipChat notifications are sent out.
- A Bamboo job deploys the updated development branches to the test server.
- The deployment status is added to the JIRA ticket.
- The JIRA ticket assignee is automatically transitioned to a tester.
- StatusPage is updated with the new state of the test server.
A lot of things happened in the four steps of this simple example, while requiring limited developer steps. By the end of the fourth step, the code is ready to be tested, the servers are in a known state, everyone of interest has been informed of the current state and the JIRA ticket has been updated with readily accessible history and state information. As our CEO Thad West often tells clients when discussing the importance of automation, “by the act of developers doing their job, JIRA stays in sync.”
You may have noticed the operations team didn’t need to be directly engaged in the process. Workflow automation enables members of the development team and the operations team to work on other tasks, greatly increasing their productivity. It’s fast and efficient. Just as important is the fact developers will see this behavior every time, ensuring process repeatability and reliability.
Ask any developer or operations team member what their significant time bleeds are, and you will almost always find status updates on the list. “Where are you on issue X”, “what build is on server Y”, “have you deployed Z”, or an infinite number of other questions come up as a daily part of our lives. These may come in the form of emails, IMs or meeting requests. Regardless of the framing, these all take away from DevOps productivity. Five minutes for a status here, ten minutes there and thirty minutes elsewhere has the dual effect of (1) limiting time available for other work (2) interrupting the “flow” that is a critical part of the thought processes common to IT professionals working through issues.
A powerful mitigator is increased transparency. The more information stakeholders and managers have on current development and operational states, the fewer status questions they have. However, it is not enough for the information to exist in the aether. It needs to be clear, concise and readily accessible. If the information is spread across multiple systems, stakeholders and managers are still going to approach technical teams, regardless of transparency. Your workflow automation tools must feed status updates into centralized, accessible locations that present the information in an easily digestible form.
In our previous example, JIRA functions as a hub for this information. By going to a single location, stakeholders and managers have the information they need at their fingertips.
Making life better
More companies are realizing everyday that siloing their development and operations teams is no longer a viable strategy. To grow and thrive companies must adopt a strong DevOps culture. Making workflow automation a part of this cultural shift is essential to a successful cultural shift.