With every business living and dying by its software, C-suite executives are taking an interest in software development processes like never before. How do you talk to a CEO about development challenges and best practices? In this interview, Steven Hazel, co-founder and CTO of Sauce Labs, shares some ideas.
The Enterprisers Project (TEP): C-level executives traditionally don't take interest in the mechanics of software development or deployments — they just want it to get done. How is that changing these days, and why?
Hazel: Well, for technology companies, C-level executives have almost always taken an interest in the mechanics of the delivery of software.
I think what we can say is changing is captured well by Marc Andreessen's observation that "software is eating the world," meaning every business to some extent is becoming a software company. Financial institutions, brick and mortar retail companies, all of these and those in between kinds of companies are developing apps now, both web apps and mobile apps. Any time you have an app, software development is seen as a critical part of day-to-day business strategy — even for non-traditional software companies. Because of the exploding role software development has taken on in everyday business, C-level executives are definitely taking a deeper interest in how these things can be delivered in an effective way.
TEP: Even words like "agile" and "waterfall," never mind "DevOps" and "CI/CD," would likely be confusing to many C-level executives. What are some approaches for discussing these questions with them without having their eyes glaze over?
Hazel: I would explain these to a C-level audience as modern development processes. There has been a shift in the way software is being developed with the advent of agile and DevOps that resembles the lean manufacturing shift in the 80s and 90s. It's a similar process change that has swept across the industry and really changed the kinds of results people are getting.
TEP: What are the most important things C-level execs need to know about agile and DevOps development?
Hazel: The bottom line for a C-level executive is that the agile and DevOps movements are going to increase predictability and reduce time-to-market for your software while increasing quality. If you're at that level, having the right team in place reporting to you is critical, so a CIO needs to hire people who have demonstrated in the past they have the ability to get an organization up, running, and operating using these modern development techniques. It's important that both engineering management and product managers have appropriate understanding and experience with this way of operating.
TEP: What are some things they need to know about mobile development?
Hazel: Mobile development is still a little bit "wild west," because the tools are all so new. As it has matured over the past several years, mobile development has been able to bring in some of the techniques that have worked well in web development. CIOs should make sure their organizations are keeping pace with the evolution of mobile development practices.
There are also ways in which mobile development needs to work differently from web development. If your business is shipping a mobile app via an app store, that approval process can be a tremendous bottleneck to your ability to deliver software, especially when bugs cause multiple approval cycles. It's critical to make sure your app is as high quality and as ready to go as possible before submission to an app store, so CI/CD and testing play a critical but somewhat different role there than in a web deployment scenario where deploy cycles can sometimes happen much more rapidly.
TEP: Any advice you'd pass along to other CIOs or CTOs?
Hazel: Investing in the ability to deploy software in a frequent and fully automated way can be very beneficial to enterprises. By being ready and able to reliably turn the crank to deliver updates to your full software stack as frequently as multiple times a day, you can take a variable out of the equation when you're trying to ship. This is a powerful technique that dramatically reduces risk and eliminates unwelcome last-minute surprises. If you establish a very frequent deployment schedule, even if only into a "model" staged or beta environment, your organization will start to get good at the mechanics of shipping, making deployment decisions more purely about the readiness of the set of features you want to deliver to end users.
TEP: Any approaches you've seen that definitely don't work?
Hazel: There's one thing I can think of that I would definitely caution against. There's a temptation when adopting a new way of working such as agile or DevOps to notice the similarities to the way you've already been doing things. If you've been good at working with older processes, often that means you've found ways do things a bit better here and there, and those tweaks can really be similar to what others have identified and advocated as the newer, better ways of operating. It's easy for many people in your organization to think, "Oh, this is just formalizing some of what we've already been doing."
That can be true, but I'm convinced that focusing on those similarities is a huge mistake. All of the potential value in adopting a new way of working comes from the differences from what you've been doing, not the similarities. If you want to get the maximum benefit in the most efficient way, ask your team to focus on what you can learn from how agile and DevOps ideas differ from the way you've done things in the past.
Steven Hazel is the co-founder and CTO of Sauce Labs Inc. Prior to co-founding Sauce Labs, Steve created codepad.org, an online complier and simple collaboration tool. He also served as director of engineering at BitTorrent and held senior development roles at Group Networks (acquired by Sony Pictures in 2006), FolderShare (acquired by Microsoft in 2005), and Audiogalaxy.