Why You Need Continuous Value Delivery

And why do we need continuous value delivery?

It is to shorten the time to market and get feedback from customers very early and continuously, which helps you improve the product in a continuous way and deliver quality. Let me ask you a question. This is from the book Implementing Lean Software Development by Mary and Tom Poppendieck, and they asked, how long would it take for your organization to deploy a single line of code change on a repeatable and reliable basis? I tried to Google it, and I tried to see what is the average on this. I couldn't get a kind of a generic industry average, but I did find a survey which happened pretty recently in October 2019, which focused on machine learning respondents, and it was done by almost like 745 respondents.

And they said 40% of the companies said it takes more than a month to deploy a machine learning model into production, while 28% said it takes less than 30 days, while only 14% said that they could do it in 7 days or less. There are many similar questions on the table today. How long would it take to put new features or bug fixes into production without changing or a reasonable amount of time? How happy your customer would be if she made a decision and saw the problem fixed out in the production on the same day? How happy would your customer be if you could deploy without downtime? How happy again your customers be if the new releases didn't have any broken functionality or quality issues, and how happy you would be if the delivery and deployment were completely automated instead of manual?

There are many recipes on the table and you can think of lean, you can think of VMs automation, you can think of build automation. But I think the perfect recipe on the table can also be Agile + DevOps together. And let me first explain a bit about DevOps. What does it really mean? DevOps is a set of practices that shortens the time to market and gives continuous delivery to our customers with high quality. And to do that, it includes DevOps the process, it includes the infrastructure, it includes the whole ecosystem in terms of how you can deliver faster to your customers. And really the three major summaries here are to get ideas into production fast, get feedback from the customers frequently, and just repeat. And it is very, very complimentary to agile where in the case of agile the focus is customer involvement early in the scale but you code and test. You may deploy it in later when you really want to deploy or when you want to release it. Well, in the case of DevOps, you are continuously also deploying your fixes to the customer's location and continuously monitoring and optimizing the same.

Some of the really the big principles of continuous value delivery as part of DevOps is a repeatable, reliable process. Try to automate as much as you can. And whenever we talk about DevOps, you talk about continuous integration and continuous deployment or CI/CD. But really the CT or the continuous testing plays a very key role because if you are not building quality in, you cannot deploy the fixes to the production without having a real thorough testing. And so it should be really when you say done, it means done in terms of testing, smoke tests, to be deployed and several aspects of CI/CD in terms of continuous improvement, I'll say.

Again, this picture really shows out is what does it really means when we see about a CI/CD pipeline or a continuous integration continuous deployment pipeline. What does it really mean? If a developer is coding, she should be able to really comment that out, and you should have some tests running when the build is happening. Unit tests are part of it, integration tests are part of it. And you're continuously also integrating the other components as part of this CI pipeline or continuous integration pipeline and CD is really focusing on is how do we stage it now to the production, how do we bring these changes to the customers in the production. So that's really the focus of the CD pipeline.

There are many tools in the ecosystem today. This is just one example that I am going to code, which really talks about from planning until deployment. There are so many DevOps tools available that can be used out, it can be Jira, it can be Bitbucket. These are kind of the sets of tools that are available for every stage of the CI/CD process. So continuous delivery is about software delivery model from code to production while DevOps is really that automation, the process is the ecosystem and tools to make that happen.

Comments are closed.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}