Why Agile Development Isn't Enough

To maintain development speed and flexibility, companies should consider an API-centric architecture and cloud-centric deployment.

We live in a moment of history where change is so speeded up that we begin to see the present only when it is already disappearing. – R. D. Laing

It seems like only yesterday that agile development was the hot new thing. How can this useful, essential process already be inadequate?

The answer is that agile development will no longer suffice. The entire enterprise has gone agile. Business conditions are constantly changing, requiring organizations to adapt and iterate their applications and systems at a moment's notice. Companies must move quickly, or else they risk losing their competitive edge.

When development releases an app to the ops department, agility cannot simply grind to a halt. Agile delivery is the next step. It is the ability to deliver that shiny new app or new capability all the way to market, in rapid order. To seize the web and mobile opportunity, agile delivery is a must.

The code for agility
Agile delivery doesn't come intuitively to many organizations. Rather, companies must start with an agile process and an architectural model for their apps that give them enough flexibility to deliver changes to market on a continual, iterative basis. Enterprises must build a new system for bringing apps to market. They must design your apps in a flexible fashion and deliver them on a continuous basis. It is also important to build everything on the most elastic possible infrastructure, namely the cloud, to avoid flexibility and scalability issues.

[ How is the cloud like a successful fighter pilot? See Cloud Lets You Test Business Ideas Faster . ]

Bringing apps to market
The right application design for agile delivery is based on an API-centric architecture. APIs support data from multiple backend systems and communicate to any number of frontend devices. They also allow for the machine-to-machine communication that provides the data necessary for mobile apps, whether native or web-based. This makes them indispensable for web and mobile apps.

APIs also contribute to efficiency. They take care of backend services -- enabling companies to develop their user interfaces independently. The same API-driven capabilities and data will power different user experiences on a variety of devices, such as tablets, mobile phones, and on the web.

Developers don't have to reinvent the wheel all the time. In fact, they can use APIs as the building blocks for new functionalities, expanding their ecosystems to support an ever-greater range of new apps. They can also easily reuse capabilities at a later time; thus an API-centric architecture is an important way to future-proof your application design.

Continuous delivery
Continuous delivery is what happens when development and operations teams work together like a well-oiled machine to bring apps from code to production. Oiling a machine may be easy, but achieving continuous delivery is not.

The idea is to release a new or updated app, a patch, an updated web page, a campaign, or any other digital media without any more manual intervention than necessary. At the same time, release software faster and with higher quality. There are several steps to doing this.

One is to automate as many steps in the application delivery processes as makes sense. You should also look to implement best-practices, for example in application deployment processes, to systemize the rapid delivery of high-quality apps. Also take the time to zoom out and get a sense of how mature your continuous development processes are and where there is room for improvement.

The net result is an agile, coordinated delivery process that delivers robust apps that address rapidly changing requirements. It takes a little bit of doing to get there, but it will be well worth it in the end. Developers are freed up to innovate. That innovation, in turn, is necessary for agility, which requires companies to always iterate their apps and push new features.

Cloud-centric deployment
The cloud is a key infrastructural enabler for continuous and agile delivery. Companies can scale and flex their apps as business needs require, making the cloud the ultimate agile backend.

Making agility happen
On the surface, agility seems imposing. By breaking it into its component parts -- a flexible API-centric design, continuous delivery, cloud-centric deployment -- companies can address the steps required, and enjoy greater competitive advantage as a result.

Want to relegate cloud software to edge apps or smaller businesses? No way. Also in the new, all-digital Cloud Software: Where Next? special issue of InformationWeek: The tech industry is rife with over-the-top, groundless predictions and estimates. (Free registration required.)

Editor's Choice
Brian T. Horowitz, Contributing Reporter
Samuel Greengard, Contributing Reporter
Nathan Eddy, Freelance Writer
Brandon Taylor, Digital Editorial Program Manager
Jessica Davis, Senior Editor
Cynthia Harvey, Freelance Journalist, InformationWeek
Sara Peters, Editor-in-Chief, InformationWeek / Network Computing