The Scoop On Continuous Delivery Of Software Releases

Guest author Edith Harbaugh is CEO and cofounder of LaunchDarkly, a firm that specializes in “dark launches” or “canary deployment” for companies, so they can deliver features to some users and gauge their reaction before rolling them out to everyone.

Today, the smartest companies are releasing software thousands of times a day in an approach called “continuous delivery,” a software-development practice of continuously releasing functionality in small chunks.

When I first started in the software industry in the 1990s, Microsoft was on a five-year release cycle, SAP three years, and Salesforce was just beginning to get traction. I worked at a Java groundbreaker called Epicentric, whose one-year release cycles were considered “blazing fast.” We even had big “release parties” to celebrate them. Now yearly releases are considered quaint. Now my own company, LaunchDarkly, releases “even on Friday afternoon”—traditionally a no fly zone.

What’s fueling the spread of continuous delivery is supporting technologies like SaaS, Continuous Integration, as well as business needs like user expectations, lean startups, and most interestingly, employee satisfaction.

User Expectations

It used to be enough to release a new version of Windows every four years. Then companies like Facebook set the bar high with software that continually evolves.

The Facebook of 2015 is different than the Facebook of 2010, and the Facebook of 2020 will be even more different. It’s not enough to ship a piece of software and call it “done.” Acompli, a mobile-first mail app, faced an uphill battle in a very crowded field.

“We had to earn every single user, by building a products that was both ‘loved by users and trusted by IT,” said Kevin Henrikson, partner director of engineering at Microsoft and previously co-founder of Acompli.

Mobile has traditionally been tricky territory for continuous delivery, as Apple requires a review of all apps before they push live to customers. Even so, fast-moving companies like Accompli continuously delivered to beta users, who downloaded builds directly. Now a part of Microsoft, Acompli formed the basis for its Outlook app, which is used by billions worldwide.

Lean Startup

Companies want to break value into smaller and smaller chunks to see if they’re delivering value to their customers. It’s devastating for a company to work for two years on a huge release, only to find they’ve completely missed the market.

Smart companies like Yammer deliberately engineer their process to get as fast feedback as possible. “You’ll always have imperfect information, so you have to move quickly with the facts you have, so that you can get more data,” said Kris Gale, VP of engineering at Yammer and now CTO at Clover Health. “You’ll always know more tomorrow, but that doesn’t mean you can be paralyzed today.”

Employee Satisfaction

Engineers want to see their work out in the world. From their perspective, the worst thing is to spend years on a product that never sees the light of day.

Duke Nukem Forever, the followup to the hit game Duke Nukem 3D, took an extraordinary 15 years to develop value. “If an engineer hears in an interview that it’ll take them months to ship something, they don’t want to join the company,” said Will Aldrich, VP of product at SurveyMonkey.

With continuous delivery, engineers can quickly see their hard work go out to real-life users. What has changed the game is the rise of “Software as a Service” (SaaS), which allows users to access functionality over a web browser or mobile app, rather than downloading software application. That makes deployment faster and simpler; if a user has to physically install software, it’s impossible to do true continuous delivery.

All software used to be physically installed on customers’ machines. When I was engineering manager at Vignette, we had a “Supported Platform Matrix” to let us know which databases and application servers our software could be installed on.

It was an ever moving arms race—Oracle would add 10, and we’d have to retest it with BEA WebLogic. Given the complexities, customers generally didn’t want to update more than once a quarter (if even that—some customers clung to Oracle 6 long after even Oracle had shelved it).

Now, with the rise of the cloud, customers no longer feel the pain of installation. They just log into a web browser on their desktops or phone apps, and get the functionality they want.

Continuous Integration

Formerly, developers would code on their local machines, checking code in. When a branch was stable enough, it would be given to Quality Assurance testers to find any issues.

Microsoft had a 2-1 QA to developer ratio, since it was imperative that their software be bulletproof. The back and forth between developers and QA could stretch out, as bugs had to be re-verified on each build.

Now, with continuous integration, unit tests can be run in minutes, to better ensure quality. Companies like Rainforest QA can quickly verify within minutes basic functionality, in real time. If every feature needs a two to one QA to developer ratio with deep thorough manual testing, continuous delivery stretches out.

Continuous delivery is a virtuous circle—by delivering features quicker to end users, both employees and customers are happier.