“May you live in interesting times” - Often referenced as a Chinese curse.
On September 18th, 2013, Apple released iOS 7, the latest version of an operating system that was born in 2007, with the introduction of the iPhone. In six years this OS has already experienced 7 major releases. Microsoft, on the other hand, is promoting Microsoft Windows 8, the eighth major release of the iconic desktop operating system, first introduced in 1985. On average, Apple has released a major version of the mobile operating system every 10 months, whereas Microsoft took an average of 42 months between every major release of Windows.
Just like Apple, Microsoft is also following an accelerated pace to introduce features to its Windows Phone operating system, as is Google with Android. Yet, the contrast between the rate of change in the mobile world and the desktop world illustrates the pace at which software development organizations need to move today. The mobile world today is at least four times faster than the desktop world. In 2012 Citibank introduced its “Citi Mobile” app, and as of September 22, 2013 it is in its version 5.0; this translates into a pace of one major release every 2-3 months. Take a tour around the collection of apps in your smartphone, click on their ‘about’ tabs, and you’re sure to find that many are in their third, fourth or fifth release, despite the mobile world’s relative young age.
Reduced-cycle release times are becoming the new normal. Many may be familiar with the stories of dot com companies like eBay or Amazon.com, and their introduction of new functions every week. As systems of engagement become a tool for disintermediation and business innovation, “traditional organizations” are being forced to adopt similar release cycles.
The pace of change is certainly faster for systems of engagement than for systems of record, but this doesn’t mean that systems of record are exempt from the need for fast evolution. Forrester Research Analyst Kurt Bittner explains in a July 2013 report : “Not everyone needs to release continuously for all system types, but everyone needs to release in very short cycles for at least some of the time for some applications.”
Pressure points in a never-ending software release cycle are many and diverse:
- The astoundingly high velocity of feedback when an application is deployed to the public;
- The need to introduce new and differentiating features is paramount;
- The constant growth in number and variety of interactions with systems of record;
- Security and data protection requirements are constantly increasing in quantity and severity;
- The need for real-time analytics is unprecedented.
It took one day after its release for users to detect at least two bugs in iOS 7, allowing someone to bypass the Lock screen passcode of an iPhone or iPad. Exactly one week after the release, Apple updated the operating system with the release of iOS 7.0.2. to address the security flaws. What a perfect case study to exemplify how responsive application organizations need to be to react to different pressure points!
To respond to these points of pressure, organizations need to adopt models like DevOps or continuous delivery. According to Gartner , “DevOps It is a continuation of some of the predecessor work in the areas of continuous integration and application lifecycle management (ALM); therefore, it is rooted in the agile philosophy, which also attempts to bridge the traditional organizational divide between development and operations teams.”
DevOps and many other approaches are frequently built around concepts like Agile Development which aims for early and continuous delivery of software. The problem is that for the past nearly two decades, most application organizations have been configured into centers of excellence around specific areas like development, testing or maintenance and support. And more often than not, these teams are geographically distributed across the globe—a model that by definition consists of a division of labor and geographically separated silos, which are not necessarily wired to work in a well-orchestrated fashion, and hardly operate in real-time. The question here is: Can these two concepts coexist? Can they benefit from each other’s strengths? Are the outsourcing trends slowing organizations down?
Interesting times, indeed.