This week, alongside implementing Git in my Unity project, I decided to carry out some research into the Software Development Lifecycle (SDLC) and how version control fits into a wider DevOps pipeline. I did this to support my course goal:
Understand the theory and practice of making great games.
My day job has been very busy in the run up to year end, and so in order to maximise my time I have been listening to audio content and watching videos as a starting point for discovery while travelling and carrying out household tasks. Taking this approach has been great as it has helped me minimise what I have started referring to as ‘dead’ time where i’m not relaxing but not able to work at a computer.
At its core, DevOps is the creation of a single workflow that applies Agile principles to the whole Software Development Lifecycle (SDLC). It enables continuous integration, deployment and delivery of a software project and includes both development and operational teams in order to improve productivity and collaboration (Mueller 2010). It seeks to minimise the length of time between a developer committing a code change and that change being successfully deployed to a user; allowing for constant change while ensuring high quality (Bass et al 2015).

The pipeline is typically built on 4 key pillars : process, architecture, technology and infrastructure. When set up with a DevOps workflow in mind, these pillars can enable faster feedback and a culture of learning where development is agile for change and resilient for failure (Simplilearn 2017).
As I began my research it caused me to reflect on my agile learning week and on the synergy between the two disciplines. In particular, the similarities around cross-functional collaboration, continuous delivery and receptiveness to change (Agile Allliance 2021) and I the learned that unsurprisingly, DevOps as a concept was first introduced in 2009 by a group of Agile practitioners led by Patrick Debois.
The work of this group, along with what I have seen in my professional life has made a compelling case for its use in large and complex projects. Many successful studios I have worked with already have an end-to-end DevOps workflow implemented and others are investing heavily in automated testing. This perspective was underpinned by research I read in The DevOps Handbook, of which Debois is an author. This led me to ‘The State of DevOps’ ; a study of data from over 25000 technology professionals over several years. (Brown et al 2016) This study contained some impressive empirical evidence of the performance of organisations that had adopted DevOps practices, versus those that had not, including:
Code change and deployment lead time is 200x faster (2016: 5)
Recovery from failures 24x faster (2016: 5)
Productivity, market share and profitability goals 2x more likely to exceed (2016: 49)
Market capitalisation growth 50% higher over 3 years (2016: 49)
This study has been carried out in subsequent years and in 2021 and demonstrates acceleration of success since the discipline’s inception:
“After seven years of research, we continue to see the benefits that DevOps brings to organizations. Year over year organizations continue to accelerate and improve. Teams that embrace its principles and capabilities can deliver software quickly and reliably, all while driving value directly to the business.”
(Harvey et al 2021: 40)
The version control system is the foundation of a development pipeline. Tools like Git and Mercurial allow groups of developers to easily collaborate on centralised source code in a distributed way, and diagnose code problems more easily. In a DevOps environment, once set up this can be combined with a continuous integration system like Jenkins which can then run automated builds using tools like Maven, but then also integrate code validation software like SonarQube or Fortify to carry out continuous quality checks. (Simplilearn 2017)
As a relatively new concept and one that encompasses a range of disciplines, a challenge I faced was in finding standard definitions and terms to describe the various elements of DevOps. For this reason, I have started forming some of my own definitions and understandings based on my learning.
I will use this knowledge in both my professional work and studies by looking for opportunities to adopt a DevOps mindset into my development pipeline alongside an agile framework – in particular, continuous integration and testing, both areas where I have yet to build practical skills. As with Agile, it is my intention to use the framework and apply it on a per-needs basis according to whatever project I am working on. A reflection I have made about myself over the course of this module so far is that I have a tendency to reject structure and rigidity, in favour of flexible frameworks.
Other learning:
Automation and tooling are a worthy investment in a large project
Manual steps take time and are prone to error. Creating a build alone can be very time consuming if you don’t have any form of automation. Selecting the right tools for the pipeline and then automating as much work as possible with it is a huge time saver.
“When you have a #DevOps team, you are not doing devops.”

This comment was made on Twitter by DevOps proponent and expert Theresa Neate and resonates with the perspective I’ve developed about DevOps as a function.
It is a mindset and whole team investment, not a single team or function. To operate most successfully, DevOps must be fully integrated into a production from end to end. The tools, systems and resources must be integrated across teams and embedded in each part of the workflow.
Next, I want to practice using version control in my own projects. Although I managed to get Git set up this week, i’m also going to try and use PlasticSCM and compare the two. This tool was recently acquired by Unity and was advised to try it by a peer on the basis that it is very intuitive.
Between this discussion and the reflections on DevOps in the context of Agile, I have been thinking about the value of interoperability and abstraction in system design. As I develop, I will try to think about how all of the different parts of my pipeline will complement one another. In particular the time savings that may be made where tools or technologies are designed to work together ‘off-the-shelf’. I have seen the pain that can be caused in setting up or upgrading systems or where new releases are not necessarily tested for compatibility.
I also think I could benefit from reviewing some different real-world DevOps use cases and looking into implementation. I’m lucky enough to already work for a company that produces world-class software. I will explore the detail of our setup and processes with one of our technical leaders in the hope of learning more in context.
References
MUELLER, Ernest. 2010. ‘What Is DevOps?’. The Agile Admin [online]. Available at: https://theagileadmin.com/what-is-devops/ [accessed 13th December 2021].
BASS, Len, Ingo WEBER and Liming ZHU. 2015. DevOps: A Software Architect’s Perspective. UK: Pearson Education.
BECK, Kent, Mike BEEDLE, Arie van BENNEKUM, Alistair COCKBURN, Ward CUNNINGHAM, Martin FOWLER, James GRENNING, Jim HIGHSMITH, Andrew HUNT, Ron JEFFRIES, Jon KERN, Brian MARICK. Robert C. MARTIN, Steve MELLOR, Ken SCHWARBER, Jeff SUTHERLAND and Dave THOMAS. 2001. 12 Principles Behind the Agile Manifesto. Agile Alliance. [online] Available at: http://agilemanifesto.org/ [accessed 13th December 2021].
BROWN, Alanna, Nicole FORSGREN, Jez HUMBLE, Nigel KERSTEN and Gene KIM. 2016. ‘State of DevOps.’ Puppet and DevOps Research and Assessment (DORA). [online] Available at: https://services.google.com/fh/files/misc/state-of-devops-2016.pdf [accessed 13th Dec 2021]
HARVEY, Nathen, Michelle IRVINE, SMITH, Dustin, Dave STANKE and Daniella VILLABLA. ‘Accelerate State of DevOps 2021.’ DevOps Research and Assessment (DORA) and Google Cloud. [online]. Available at: https://services.google.com/fh/files/misc/state-of-devops-2021.pdf [accessed 13th December 2021]
KIM, Gene, Jez HUMBLE, Patrick DEBOIS and John WILLIS. 2016. The DevOps Handbook. Portland: IT Revolution Press.
NEATE, Theresa. [@TheresaNeate] 2017 When you have a #DevOps team, you are not doing devops, November 14 [Twitter post]: Available at: https://twitter.com/TheresaNeate/status/930262953172942849 . [accessed 13th December 2021]
SIMPLILEARN. 2017. DevOps Pipeline [tutorial]. Simplilearn YouTube Channel. Available at: https://www.youtube.com/watch?v=DLIF9Gnyum4 [accessed 13th December 2021].
Full list of figures
Figure 1: Eyal KATZ. ca 2021. The essential steps to building your own DevOps pipeline Fig. 1. Exigence blog. https://blog.exigence.io/build-devops-pipeline
Figure 2: Eyal KATZ. ca 2021. The essential steps to building your own DevOps pipeline Fig. 2. Exigence blog. Available at: https://blog.exigence.io/build-devops-pipeline [Accessed 13th December 2021]
Figure 3: Theresa NEATE. 2017. @TheresaNeate Twitter Account [online]. Available at: https://twitter.com/TheresaNeate/status/930262953172942849 [Accessed 13th December 2021]

You must be logged in to post a comment.