As software has grown in importance, overshadowing the once-riveting details of chips and hardware, a new language has crept into computing's vernacular. Where once we talked in silicon yields and gigahertz speeds, we now speak of scrums and sprints, DevOps and Continuous Delivery, and most of all, workload deployments to the elastic cloud's infrastructure.
The genie in the bottle is no longer the secrets in the hardware; it's the invisible functions of the software.
Even the terminology of software has changed. In the past, we might have declared new development had nothing to do with maintenance of the datacenter's legacy systems. Development was novel and exciting, a thing apart. Nor did development methodologies have anything to do with production deployments. And certainly an enterprise software project could proceed and have nothing to do with the cloud.
But nearly everyone now knows these old verities are less likely to be true. Most of us would say all these things are now related, and some would say, closely related. I would go a step further. All of these things are the same idea, expressed in different ways. They reflect the importance of the leading ingredient of business survival: new software.
[Want to learn more about agile development working with DevOps? See Where Agile Development Fails: IT Operations.]
The world runs on software. We have software-defined virtual servers, software-defined networks, and, soon, software-defined datacenters. It sometimes seems the world is so dependent on software that we need it to make the sun rise and set on time. Software-defined sunsets. Thank goodness, that hasn't happened yet.
Although agile development is all about software, it's not really a set of technology goals. At its heart, it's really a belief system. Among other things, its tenets are: Software must reflect the needs of the business; it must be developed rapidly and timed to the needs of the business; it must be delivered already tested and ready to run. In short, the software must better reflect the challenges and realities with which the business is dealing. The agile oath is: We'll do this better than the waterfall method did.
Likewise, DevOps, though seemingly a set of technology methodologies and disciplines, is more like yet another belief system. Rackspace CTO John Engates, in a column for InformationWeek, noted how DevOps "holds certain truths to be self-evident." They are: "Shipping code faster and more error free is inherently good. Automated testing at scale makes for a better, more secure product. The real value of engineering talent is not the manual orchestration of tasks, but the insight and creativity to solve interesting, real-world problems." In other words, the highest calling of an engineer is in getting the software to reflect the realities of the business and respond with an answer to the challenge of the world as we find it. It's another expression of how survival depends on software.
So how does cloud computing match up with agile and DevOps? Is cloud a belief system, too? That doesn't seem too likely. Gotten any feelings of awe and omnipotence out of Amazon lately? Probably not, unless you're looking at your bill.
But still, think about it. Once software has captured the business's response to its challenges, it needs someplace to run. That used to be -- often still is -- the enterprise datacenter. But what if the engineers have done such a good job, solved the challenge so well, that new customers are arriving in droves? The datacenter server cluster is chugging along as best it can, but no one anticipated this much success when the IT budget was drawn up.
Michael Jackson was a rock star who, through much of his life, created and sold a steady amount of music. When he died, there was a sudden and seemingly insatiable appetite for his music. The online music store servers chugged and chugged, but they couldn't come anywhere near to keeping up with demand. The wave crested, broke, and receded. So did the opportunity.
To many in this New Age of Software, it's an article of faith that software that reflects big ambitions must have a big platform on which to run. It may not need it all the time, but when its moment of truth arrives, the platform needs to be as big as the opportunity. What agile and continuously improved software needs is an elastic resource, one that can expand with the business. You can't draw a line where that expansion might stop. It needs, theoretically, to be infinite.
That's not the cloud, but almost. The cloud offers its users the illusion of infinity. Somewhere there's a physical limit, but with many thousands of users and some overhead margin for each, there's a very large surplus capacity built into the platform that can be tapped at any one time. And if it gets tapped out, there may be an associated cloud datacenter with its own surplus. To the user who needs that surplus, the cloud is an infinite resource.
It's not enough to compose excellent software that constantly adjusts to the changing nature of the business. That software must have a suitable place to run, one whose merits can reflect its ability to seize the moment and capitalize on it. That doesn't mean that we're searching anymore for the latest chips, servers, and switches. It now means the software cloud -- which can fire up virtual servers, networks, and storage; compensate for any hardware component's failure; and keep all systems running. Finally, we have the intelligent environment we've been seeking to run our brilliant business software.
Agile, DevOps, and cloud are an almost-holy triumvirate in terms of the belief systems they marshal and engineering aspirations they contain. They're all trying to do the same thing: give software, and software alone, its chance to triumph over the many competitive hurdles and perils that await us. If software is everything, then embracing the mantras of agile, DevOps, and cloud is one way to invoke its power. And in doing so, we hope to move ourselves, our organizations, and our whole culture another step closer to Nirvana.
Engage with Oracle president Mark Hurd, NFL CIO Michelle McKenna-Doyle, General Motors CIO Randy Mott, Box founder Aaron Levie, UPMC CIO Dan Drawbaugh, GE Power CIO Jim Fowler, and other leaders of the Digital Business movement at the InformationWeek Conference and Elite 100 Awards Ceremony, to be held in conjunction with Interop in Las Vegas, March 31 to April 1, 2014. See the full agenda here.