Release Engineering

Avery Roswell
Tumiya
Published in
3 min readApr 21, 2020

This article was originally published on LinkedIn — thought I’d share it here.

Delivering digital experiences on mobile devices is no small feat. It’s the discipline of not only removing obstacles from the path to quickly producing software, but also increasing the pace down that path. It considers the 3 pillars of DevOps: flow, feedback, and continuous improvement.

Flow

Photo by Tj Holowaychuk on Unsplash

Flow is about the focus of the left-to-right movement of work moving from development through to operations, out to the end-user. In this context work is the engineering and development on the code base, the code base being the product. The left-to-right signifies how continuous integration and continuous delivery (CI/CD) pipelines are typically drawn when being designed and analyzed. They are drawn from left to right, as opposed to drawing them top-to-bottom.

We want fast flow of work and try to limit the work in progress. It’s of paramount importance to understand the flow of work and to automate as much toil as possible.

Toil refers to those manual, repetitive, automatable tasks that are a part of the workflow. When considering the elimination of toil other criteria are considered like the toil being: tactical and not strategic (it should be a response to something that is measurable), void of enduring value (i.e. no permanent improvement is gained from repeating the task several times), and scalable (does task load or complexity grow linearly or faster with the growth of the project).

Feedback

Photo by John Barkiple on Unsplash

I think of test automation first and foremost when it comes to pipeline feedback. However, it is really about receiving some kind of indication about the state of the software product as it flows through the CI/CD pipeline. It’s commonly thought of as the information that flows from right to left at all stages of the pipeline; the pipeline is a big part of the technology value stream, and faster detection and resolution of problems (stopping the flow when needed due to defects) the higher the pipeline performance. One of our major goals here is to shorten and amplify the feedback loop.

Continuous Improvement

Photo by Paul Schafer on Unsplash

Having quick feedback supports a culture of experimentation and organizational learning. Continuous improvement comes from continuous learning across the organization with the aim of creating a collective consciousness of all teams, so that anyone in the organization can access this wisdom when performing work.

Conclusion

The only chance of consistently and quickly releasing great software products is by standing on these 3 pillars or principles.

By identifying the bottle necks and problem areas in the workflow used to develop a software product, and addressing these problems, we can boost productivity. It’s by our feedback systems that we can pin point problems and apply fixes and improvements.

We have only scratched the surface in the realm of release engineering, but it’s important to understand the core or fundamental principles that frame the practice.

“Release engineering is the process responsible for taking the individual code contributions of developers and bringing those to the end user in the form of a high quality software release.” — Bram Adam, et al. (Modern Release Engineering in a Nutshell: Why Researchers should Care)

--

--