To gather insights for DZone's Continuous Delivery Research Guide, scheduled for release on January 26, 2016, we spoke to 24 executives who are implementing continuous delivery in their own company or helping clients do so.
Specifically we spoke to:
Casey Kindiger, CEO, Avik Partners | Ez Natarajan, Vice President Cloud, Beyondsoft | Tom Cabanski, Director of Software Development, Blinds.com | Kurt Collins, Director of Technology Evangelism and Partnerships, Built.io | Chris Madsen, CEO, Circonus | Steven Anderson, CEO, Clutch | Yaniv Yehuda, Co-Founder and CTO, DBmaestro | Andreas Grabner, Technology Strategist, Dynatrace | Elaina Shekhter, CMO, EPAM Systems | Charles Kendrick, CTO and Chief Architect, Isomorphic Software| Baruch Sadogursky, Developer Advocate, JFrog | Topher Marie, CTO, JumpCloud | Edith Harbaugh, CEO and Co-Founder, Launch Darkly | Jessica Rusin, Senior Director of Development, MobileDay | Stevan Arychuk, Strategic Marketing, New Relic | Arvind Mehrotra, President and Global Business Head, NIIT Technologies | Zeev Avidan, Vice President Product Management, OpenLegacy | Richard Dominguez, DevOps Engineer, Prep Sportswear | Prashanth Chandrasekar, General Manager of DevOps and Head of Operations, Rackspace | Steven Hazel, CTO, Sauce Labs | Bob Brodie, CTO, Sumo Heavy | Dr. Chenxi Wang, Chief Strategy Officer, Twistlock | Scott Ferguson, Vice President of Engineering, Vokal Interactive | Adam Serediuk, Director of Operations, xMatters
At the conclusion of each interview, we asked these executives, "What have I failed to ask you that you think we need to consider with regards to DevOps and Continuous Delivery?" Here's what they had to say:
DevOps is a broad term. Think about how to handle security and scalability, both vertical and horizontal. RDS is wonderful because security fixes are handled automatically and you can scale up. How do we create security over things that can go wrong? AWS has it’s "i’s" dotted and its "t’s" crossed. On the mobile side, we’re adding security testing of applications.
Etsy engineers have to do a deployment their first day on the job so they fully understand the scope and breadth of their responsibilities.
What could Docker and Mesos do to improve? What are the shortfalls? What can be improved?
We believe DevOps helps with efficiency and make developers more productive; however, has anyone really proved the ROI is there?
Author's Note: When I raised these questions in a subsequent interview, I was referred to Puppet Labs' 2015 State of DevOps Report which shows:
- High-performing IT organizations experience 60x fewer failures than lower-performing peers.
- High-performing organizations recover from failure 168x faster.
- These organizations deploy 30x more frequently with 200x shorter lead times.
How do you start out with this stuff? A lot of options can be overwhelming. If I don’t know where to start need to identify resources for people to get started like DZone and Stack Overflow. Have a good resource that tells you where and how to get started.
Another dimension is cultural and psychological. IT culture is 50 years old. How do you implement DevOps and Continuous Delivery to a larger team with an ingrained IT culture?
DevOps is not a “one-size fits all” proposition. More perspective and segmentation based on the company’s organizational structure, focus, and objective is needed. How can you measure what you’re doing?
People think of DevOps as all or nothing. However, it’s really a continuum where you can continue to shave off time to market and get smarter.
There are notions that modern code is as stable as something that was developed in the old waterfall methodology. DevOps addressed this by producing a quality product. From an overall product perspective, it’s important to get feedback as soon as possible. DevOps enables this continuous feedback loop.
What do you need to do to make people realize the benefits of DevOps to move from a second world to a first world? It’s taken 20 years to revolutionize into the mainstream. How do we fast track to make the technology revolution happen faster like transportation and the green movement?
What’s the definition of done? Deployment should be faster, more reliable, more enjoyable, and completely self-automated in every way. I’ve been close to software that keeps running itself but there’s always something you can do to optimize for greater efficiency.
Ability to hire and retain people with these skillsets is very difficult. There’s a huge supply and demand imbalance. They'll get poached because innovation is happening. Some companies are happy to outsource — economies of expertise for companies that are augmenting or booting up. Transformation will have companies relying on outsourced providers to get on AWS and use the tools.
The behavioral aspect is something people lack. Tools can be overestimated in terms of what they’re able to do and what you’re able to accomplish with them. Especially if you don’t have the knowledge and training.
Resources for DevOps are popping up everywhere. Check out different movements. A lot of conferences are offering training. Everyone is trying to have a perfect definition of DevOps but it's more important to build it in a way that’s right for your organization.
DevOps changes how you deliver your product, and your customers can get confused by this. For example, if you are making weekly or even nightly builds of your product available, it's key to communicate the expected quality levels, and which version of the product your customer should use in what circumstances. Customers on older or highly formalized development processes (e.g. ISO9001) will tend to ask the same set of questions over and over again, so it makes sense to create FAQs and similar materials for self-education.
Software practices are evolving so quickly that new approaches and new philosophies are often bandied about as silver bullets to solve every problem. It's easy to think of DevOps as a cure-all for software problems, and in that excitement, it's easy to forget that DevOps teams succeed and fail because of people. How do we grow people from traditional development structures into DevOps-capable teams? How can we ease that transition? How do we recognize, motivate, and enable individuals? It's a management problem, but I've seen many individuals fail to bridge that gap.
Understand the database is not being implemented at the same rate as the rest of the code. Gartner predicts the rate of releases will double in the next two years. If you are doing your databases manually, you will fool yourself for a while but you ultimately need an automated, scalable process in place.
What unaddressed DevOps or continuous delivery issues are you or your organization facing?