The application delivery trifecta: Agile, composite and cloud

          Modern delivery initiatives are changing the creation of enterprise apps. But without proper orchestration, these initiatives can pull the enterprise in opposing directions. 

Three delivery trends are reorienting the way enterprise IT management leaders bring applications to market: Agile development, composite applications1 and cloud computing. These trends share a single, primary aim, and it isn’t just cost reduction. The chief objective of these initiatives is better, faster outcomes. All three seek to strip the latencies from traditional delivery and provide results that are more aligned with, and more responsive to, the business.
If your enterprise is like most, you’re probably pursuing all three. But are you doing so in concert? Pursued together, these trends present certain harmonies that significantly magnify their benefits.
  • Composite and cloud development prize the durability of services, ensuring that components perform well while remaining secure and resilient. Because both cloud and composite facilitate the exposure of services and subcomponents for use by other applications, their shared priority is for components to remain trustworthy in a variety of different contexts.
  • Agile and composite align in their aim for modularity. They resist large and change-resistant monoliths—whether in terms of project plans or application architectures—in favor of discrete, bounded units that can be built, tested and delivered to production quickly.
  • Agile and cloud overlap in the aim of responsiveness to change. Agile projects are designed to anticipate rather than resist change and to be able to pivot accordingly. The “always on” aspect of the cloud can facilitate this aim by reducing or eliminating the time to provision application environments, a key source of latency and inter-departmental squabbles.
But problems arise when these initiatives are pursued in silos, as independent strategies. This tendency means that instead of harmony, the risks in each trend begin to amplify the risks of the others. As one example, Agile software development’s focus on velocity can come to antagonize the thoughtful architectural planning that good composite applications require. In pursuit of speed, developers may code in an ad hoc manner ("cowboy coding"), which leads to a proliferation of redundant or poor-quality composite services.

The magic of the trifecta 

 

World-class delivery organizations harness the collective promise of Agile, composite and cloud development by seeing each in the context of the other. These organizations maximize the shared opportunities and minimize what could otherwise become hostilities among the initiatives. In this way, each initiative amplifies the value of the others.
Consider some examples of how these harmonies might be achieved:
  • Harmony between composite and cloud: In this case, enterprise technical policy lays out standards for reusable services so that any new service is suitable for either internal use or the public cloud. In this way, standards for security and resilience would be included alongside performance—achieving the durability that both cloud and composite applications require of their services to ensure service trust and adoption.
  • Harmony between Agile and composite: At the same time, the organization might define certain principles to guide how coarse- or fine-grained a composite service should be, ensuring that developers aren’t unnecessarily bogged down in architectural debates or tempted by shortcuts. In this way, Agile software development teams can produce composite services that meet the requirements for enterprise reuse, without a return to endless planning sessions.
  • Harmony between composite and cloud: Given the interdependencies in building composite applications, where key services or systems are frequently either under development or available only at certain times, the organizations might seek to virtualize these dependencies—by finding alternate services already available in the cloud, or by investing in service virtualization software that mimics the behaviors of dependent application services.

Putting it all together

There’s little question that these three trends have improved the way we build and deliver apps. But the real value is in using all three together as part of the same strategic aim: to deliver better applications faster.