A lot of teams and organisations are embracing DevOps culture for building digital products and delivering business value with digital services. DevOps culture promotes an agile, iterative approach, with a strong emphasis on continuous delivery of working software, in close alignment with business goals. The term is already 10 years old, still most companies and teams are now on the journey to put it into practice.
DevOps is based on the idea to reduce the time it takes between committing a change to the code and this change being made available to users (in a way it provides value to the users).
Or to even expand on this notion: reduce the time it takes between learning about how users are experiencing your product today, and creating a better user experience by shipping an improved version of your product.
DevOps with a User Experience Perspective: it’s not only about how fast you can deliver from code change to user value, but how fast you can turn a bad user experience into a great user experience and continuously improve your product.
The perspective of DevOps as a continuous improvement of the user experience of your product means you put your users at the center of your work, by continuously going through the full cycle of product development: plan, code, build, test, release, deploy, operate, monitor, and then plan again based on the observations you made.
The DevOps Continuous Lifecycle: the notion of continuous product improvement
When you look at the phases in the DevOps Lifecycle it is important to mention that this is more than a technical perspective. Roughly it can be broken down in two areas. The left side (code, build and test) focusses on the creation of new product value, the right side (deploy, operate, monitor) focusses on the value delivery to the user. Especially phases that are user facing (the right side of the loop), shall be used to monitor user behaviour, understand user experience, and learn about how your product is used. The transition between the two loops, of value creation and value delivery, focusses on planning the next iteration and making sure you release the value you wanted to create.
If our goal is to minimise the time (and effort) to come from a bad user experience to a better user experience (or from a defect to a fix, from a request to a new feature), we also shall look at the factors that contribute to that goal. Obviously culture is key, to generate the environment where this notion is understood and supported. At the same time, tools and toolchains play an important role along this value chain.
Tools along the lifecycle allow to:
The notion of a delivery pipeline that assists the team in eliminating waste, and deliver value faster and better is very often expressed in concepts such as Continuous Integration and Continuous Delivery (CI/CD). By automating infrastructure, tests and deployments, by leveraging cloud functionality it is possible to bring down the time between code being written and being made available.
Most of the CI/CD work focusses on the left side of the DevOps cycle. It has proven that container based architectures in combination with cloud technology provides huge benefits, in such a sample environment:
DevOps Pipeline Tool Overview (selection of tools, note: image/logo rights are with the respective copyright owners)
note: the products and technologies mentioned above are not the only ones, but have proven to work pretty well in projects.
While DevOps is not about the technology you apply, the delivery pipeline can enable the product team to deliver value continuously. In a second part of this article, I’ll share a more technical view on the architecture of a sample delivery pipeline.
Credits: