Editor’s Note: This is a guest post written by Gowri Sivaraman, senior engineering leader, Intuit
I am often asked why some companies succeed at DevOps and others stumble. Many things come to mind … a thorough transitional plan, an executive sponsor, time, perseverance. These elements are all critical to a successful move to DevOps. Companies that struggle often bypass these elements.
However, I think the most important factor that leads to successful DevOps is a culture that lays the foundation for continuous integration/continuous delivery (CI/CD) from the bottom up. Let me explain what I mean. At Intuit, we created what we call end-to-end ownership (E2E) for our Scrum teams. With engineering, XD practitioners, and product managers, the Scrum team is responsible for everything related to the product. Each developer owns the code from inception to delivery. The team works together to define, design, develop, test, deploy and support our environments and products.
Our E2E approach has helped us successfully embrace DevOps and integrate it into our culture. We’ve observed these transformational benefits.
Scrum teams make product and technology decisions much quicker.
New release cycle times are faster because of innovations in deployment and delivery.
Instrumentation and monitoring built for code and infrastructure with pager alerts built in.
Employee engagement scores improved from ~ 60% to ~ 80%.
Engineers developed more empathy for the customer, and as a result, they fix issues much faster.
Investing in the right people, tools, technologies and processes also makes the transition to DevOps easier and helps facilitate a strong culture. For example, focusing on modern SaaS tools, such as Kubernetes and Blue Ocean Jenkins, and also test automation tools that eliminate manual efforts helps to pave the way for successful DevOps.
When we shifted to DevOps and CI/CD, we didn’t have all of the answers, and we learned some lessons along the way. First and foremost, our team had to adapt to change. But, what got us through the rough patches was our curiosity to learn from our challenges.
Here are a few lessons learned:
Adopt a trunk-based development model—This is the super power of CD. It’s where all developers commit to using a shared branch [controller] under source-control, which allows us to create a single pipeline that we can use repeatedly for every check-in.
Feature flags are a necessary evil in the CD world—For faster, reliable delivery on a CD pipeline, feature toggle switches are essential.
Embrace IaaS—Depending on the nature of your software, adopting IaaS, or infrastructure as code, is a reliable way to maintain the integrity of deployments.
I’ll be speaking on a panel at the DevOps | Jenkins World 2018 conference , September 16-19, with my peers from Medallia, Electronic Arts, American Airline and Red Hat. If you’re interested in hearing more real-world examples of Intuit’s journey to DevOps, be sure to attend my session,"Bumps, Bruises and Band-aids: Real-World Lessons from Practitioners"