We used to program software. Now it’s programming us.
This is more than a new spin on Marc Andreessen’s “Software is eating the world” argument. Andreessen is right, but the shift, as O’Reilly’s Mike Loukides points out, is less about how software is becoming an essential component of every business, and more a matter of software forcing us to change how we do business. It all starts with DevOps—the software production method that integrates the efforts of developers and IT operations.
Just A Small Matter Of Changing Everything
In the midst of a long and fascinating analysis of our new era of distributed computing (think: applications running across many, geographically separated servers), Loukides drops this bombshell:
The CIO of Fidelity Investments once remarked to Tim O’Reilly: “We know about all the latest software development tools. What we don’t know is how to organize ourselves to use them.” DevOps is part of the answer to that business question: how should the modern enterprise be organized to take advantage of the way software systems work now? But it’s not just integration of development and IT operations. It’s also integration of development and marketing, business modeling and measurement, and, in a public sector context, policy making and implementation.
In other words, today’s successful businesses aren’t simply those that embrace software. They’re those that reshape themselves around how software is developed and deployed.
Often the first place we see this start to happen is within a DevOps team. While there is no One True Way to define DevOps, Puppet Labs’ Aliza Earnshaw hits on the essence when she posits this:
Where software used to be written from scratch in a highly complex and lengthy process, creating new products is now often a matter of choosing open source components and stitching them together with code…. The complexity of today’s software lies less in the authoring, and more in ensuring that the new software will work across a diverse set of operating systems and platforms right away.
This skill depends as much on communication and collaboration skills as it does raw coding ability. Code is collaboration in this new world of distributed development and the distributed infrastructure upon which it runs.
Such collaboration extends to ongoing management of the code. Rather than a developer writing software and dumping it on IT operations to deploy and manage, the end-to-end code development and delivery process often sits within a single group, as at Netflix:
While 50% of organizations reported using DevOps practices in 2011, a 2014 Puppet Labs survey reveals that 63% have adopted DevOps today. The results so far have been very positive, too, with organizations reporting 50% fewer code failures and a 12X improvement in their speed to recover. All while delivering applications much, much faster:
The Spirit Is Willing But The Infrastructure Is Weak
These are the success stories. The reality, however, is that most organizations are still languishing in yesterday’s business processes, largely because they persist in using yesterday’s data infrastructure.
O’Reilly’s Jenn Webb recently noted that “the speed of technological advancement is fostering a rush to market as companies struggle to keep pace with product cycles and consumer demands for ‘the next big thing’.” Organizations that persist in trying to meet the challenges of distributed computing with legacy tools are going to end up frustrated, as a study from VoltDB published by CIO Insight suggests:
In this survey, a full 72% of organizations report that they can’t take access or utilize most of their data assets. This is what failure looks like.
And it’s not just a problem with a company’s database. As Gartner analyst Svetlana Sicular highlights with reference to Hadoop deployments, IT groups are as much at fault as the technology they’re running:
— Svetlana Sicular (@Sve_Sic) June 5, 2014
The Cloud Points To Progress
The clearest sign that we’re breaking away from this old-school operating model is the public cloud. While there’s plenty of data to suggest traditional enterprises keep trying to build private clouds to deploy modern applications, there are clear signs that this is changing, as CIO.com’s Bernard Golden points out:
Dissatisfied with the tardy pace of internal IT, developers and business units are turning to Amazon Web Services and other public cloud service providers at an increasing rate…. Search activity for [AWS] is steadily growing, indicating a focused interest in realizing the benefits of cloud computing via its leading provider…. Given the slow progress of internally implemented solutions, expect this trend to continue to explode.
Interestingly, it’s not IT or even developers that are forcing this change. Again, as Webb notes, consumers and the lines of business that serve them increasingly demand a pace of innovation that simply can’t be matched by old school development and deployment practices. And as we expect our lives to connect with the cloud, whether through data-driven fitness apps or online news or even the clothes we choose to wear, we demand the obsolescence of traditional IT and a new wave of DevOps.
We, then, are conditioned to expect instantaneous gratification. We shape the Web, and it, in turn, shapes us. Just one more sign of the singularity to come?