Game development is a perfect example of the DevOps model for software lifecycles. When done properly, game development is in a perpetual cycle of building, releasing, supporting and updating. All parts of the development, operations and QA groups must be involved for a game to remain successful.
In general, game developers are a creative group, and this extends beyond the games they are working on. This mindset can often be seen reflected in the tooling infrastructure used to manage the segments in the moebius strip that is DevOps. If tools don’t work together out of the gate, they can always be “coaxed” into working together. While this approach may be appealing in the early stages when creative momentum is strongest, this tool friction quickly becomes unmanageable in the later stages, especially once multiple iterations have been made through the DevOps lifecycle.
What you don’t want to do is bog yourself down fighting tooling, instead focusing on crafting and releasing games your users will want. Fortunately, the Atlassian tools mitigate a large amount of this tooling friction.
A good starting point when looking at removing tooling friction is task creation and issue tracking. In the Atlassian space, this is where Jira enters the picture. Through proper configuration of workflows, issue types and projects, you will be enhancing all phases of the DevOps cycle. Given the wide adoption of Jira, there are a large number of integrations with other tools… which means less your team will need to do for third-party integrations.
The next step to reducing tooling friction should be the incorporation of Confluence into your tools. Confluence serves two primary purposes here. The first is as a collaboration space, both inter- and intra-team. As more releases go live, having a record of the collaboration is key. The second purpose of confluence is as an overall knowledge base. It is an ideal repository for release notes, user manuals and whatever other documentation may be useful for both DevOps and customer facing applications.
“But how does including Confluence reduce tooling friction?” Confluence and Jira integrate with one another seamlessly, with linking between Jira issues and Confluence pages being very simple. Being able to seamlessly go back and forth between the two applications removes many obstacles from the DevOps pipeline.
If you stop here, you will have greatly reduced tooling friction in your DevOps pipeline. There are more efficiencies to be gained, however.
In comes Bitbucket
As someone with a heavy development background, my recommendation for a next step is Bitbucket. Others might recommend HipChat as the next step, and I’ll get to that shortly. However, as a developer who has worked with many version control systems over the last twenty years, I feel great code management is a requirement for any successful endeavor.
“Why do you recommend Bitbucket over other Git management?” One of the primary reasons is for the reduction of DevOps tools friction. In addition to its code search, branch management and code review functionality, Bitbucket has built in integrations with other Atlassian tools. A very important integration is with Jira. Branches can be created and monitored directly from Jira tickets. This gives increased transparency to issues and features as they make their way through the DevOps pipeline.
Time for HipChat
Now that Jira, Confluence and Bitbucket are in place, I would incorporate HipChat into the tooling stack. In addition to general messaging, there are two integrations that are important here. The first is the Jira integration. Jira ticket information can be reflected in HipChat, getting information to DevOps team members faster. The second integration I always like to configure is with Bitbucket, getting branch information as changes are made.
Pulling in more options
Having these four Atlassian tools in your DevOps toolset provides a core foundation for reducing tool friction. If you want to further reduce DevOps tooling friction, you should seriously consider Bamboo for continuous integration and deployment, Jira Service Desk for managing both internal and external support, and statuspage.io for quick system health monitoring dashboards.
Ultimately, you will need to determine your own thresholds for tooling friction in your DevOps pipeline. Keep in mind that friction will increase as your product evolves, so planning early is key. When considering your infrastructure solutions, you should look at how the Atlassian tools will reduce DevOps tooling friction both now, and in the future, helping you do what you really want to do… make great games.