5 Reasons Why Continuous Delivery Is Worth a Shot
If you aren't using Continuous Delivery methods, your product might be obsolete before it's released.
Join the DZone community and get the full member experience.Join For Free
Have you been on after-hours production support on a Friday night following a massive software feature release? Sweaty palms and nervous jitters with crossed fingers are all the sensations you feel when multiple features are being released, while missing being on a beach or being at a party with friends and family.
How can we avoid this and make our releases predictable? Here are five reasons why “continuous delivery” is the right solution for making our lives for people in software easier and drive a better experience for our customers.
#1: Risk Mitigation
In both a microservice architecture and a monolithic architecutre, the risk of your release blowing up is high when the changelog is massive. We’ve all been in situations where there are so many features that are being deployed, that it is inevitable that one line of code out of thousands that changed has caused an issue in a tiny nook of our feature-rich application.
#2: Reduce Ongoing Cost
Ongoing cost = Cost of manpower + Cost of the application being unavailable
In an environment where an organization is deploying in a longer frequency, IT teams are spending time troubleshooting needles in haystacks. The application that was bringing value has stopped business until the issue is resolved. This builds up over time, and we wonder why haven’t delivered any value. Continuous delivery nips this in the bud, because the scope of changes deployed is small, so they are easier to test and ensure production readiness. If there are issues, they are easier to debug.
#3: Shorter Time-to-Market
The tech industry is moving at a quick pace. Software products can become antiquated rapidly. If we don’t deliver on the desires of the customer, we can lose them. When the user expresses a desire and sees progress in a short time frame, it creates stickiness for businesses. It makes the user feel that their voice is being heard and moves companies towards achieving customer satisfaction success. We are here to create raving fans of our applications in a fast-paced market, and continuous delivery feeds that.
#4: Increased Customer Feedback
It is wrong for us to assume that customers don’t like change. Every user wants to get a better experience, but the answer boils down to how useful the changes that are being deployed actually are. In order to understand whether we are going in the right direction and providing value, it is imperative to get feedback early and course-correct accordingly. This feedback does not need to be explicit. A/B testing with key business metrics around user actions allows us to compare the old experience with the new experience, giving an insight into how we should course correct.
#5: Increased Rigor in Testing
The responsibility of testing lies on every member of the delivery team. Often developers and testers can get caught up in between their titles and get used to things being thrown over a wall. This kind of team environment can be prone to causing defects in the system, as everyone is not aware of what it takes to perform each others role. When the team knows that whatever they push into their master branch will be considered production ready, it will increase the rigor in testing by pushing everyone to document and automate testing as much as possible.
As we pursue excellence in software engineering, creating software that is robust, reliable, and valuable enables us to stay nimble in this market. The quicker we fail and learn, the faster we can move in the right direction. Continuous delivery is not a panacea, but a concept that is worth exploring. Let's make our releases more predictable.
Recommended Reading: Continuous Delivery — Jez Humble and David Farley
Opinions expressed by DZone contributors are their own.