“To (successfully) implement Continuous Delivery, an organization has to change”
It’s a situation many of us are familiar with: a large legacy, monolithic application, limited or no tests, slow & manual release process, low velocity, no confidence… A lot of refactoring is required but management keeps pushing for new features. Now what? We talked to Michiel Rook, a Java/PHP/Scala contractor and consultant about the challenges that walk hand in hand with continuous deployment.
JAXenter: What’s your first thought when you hear the following sentence: “The road to Continuous Deployment is paved with …?”
Michiel Rook: The road to Continuous Deployment is paved with interesting challenges! It’s definitely not an easy ride, but a very rewarding one.
JAXenter: Why is Continuous Deployment so important nowadays?
Michiel Rook: Continuous Deployment helps companies react faster to the market, be more in control of their product and test product ideas by running (short) experiments.
Automation (of builds, testing, deployments, orchestration, etc.) is a key factor of continuous delivery.
JAXenter: Can it help organizations innovate quickly enough to satisfy consumers’ expectations? How?
Michiel Rook: Continuous Deployment works because it provides the following: early feedback, faster recovery from failures and continuous improvement & learning, all through iterating with small steps.
JAXenter: What are the stages required to achieve Continuous Deployment and how important are they?
Michiel Rook: It all starts with Continuous Integration and automated testing. These should be combined in a pipeline that automatically deploys the generated artifact to production. Add support for feature toggles to separate deployments from releases. Then, align the business and start implementing Hypothesis Driven Development to drive (business) goals based on concrete (market) data.
JAXenter: Do you have any tips on how to prevent problems from occurring? Do you have any lessons learned that you’d like to share with us?
Michiel Rook: To (successfully) implement CD, an organization has to change. Barriers should be broken down and collaboration promoted. When it comes to technical challenges, automation (of builds, testing, deployments, orchestration, etc.) is a key factor as well.
JAXenter: What should participants learn from your session?
Michiel Rook: How to achieve Continuous Deployment on an existing large and aging code base, while keeping the shop open for business.
Please complete the following questions:
Dev and Ops work best together if … they’re put together in a team.
The biggest obstacle for DevOps is … (corporate) culture.
What promotes employee satisfaction is … doing useful work, experiment, making a difference, being involved in the product.
The biggest advantage of autonomously-working teams is … cohesion, ownership and responsibility.
It is important for a positive company culture to … promote a no-blame environment, encourage ownership and responsibility and leave time for experimentation and research.
Michiel Rook will be delivering one talk at JAX DevOps which will focus on how to replace a legacy application with a modern service-oriented architecture and build a continuous integration and deployment pipeline to deliver value from the first sprint.