The app cloud
Blog: Capgemini CTO Blog
Add development methodologies with high business involvement, or even citizen developer capabilities, and we have the perfect mix to create clouds of apps that fit the needs of business users perfectly. It sounds so good, but how to control these app clouds so they do not evolve into the legacy of the future? The answer is simple. You don’t.
Old habits die hard
In many myths about the origin of existence, a powerful force exists that shapes the world. I grew up with origin stories from the Bible and they formed the way I approach the process of creation. It took time and effort for me to open up to other perspectives. Translated to the field of application development, this means that one person (say a business architect) determines how an app is created, maintained, and decommissioned. It’s a form of creation whereby the process is led by control (or the fear of making mistakes). The upside is that things go “exactly” as they should go. The downside is that everything hinges on one person.
A new perspective
Other myths about the origin of existence can be found in Hinduism, for example. Brahma (the god of creation) brings the material universe into existence, whereupon it is destroyed by Shiva. Vishnu sits in the middle, preserving what needs to be preserved, but also letting go of what no longer serves a purpose. The three of them together spin an ever-changing cloud of existence. In this perspective, there are things that “exist,” but what these things are exactly, changes over time. Applied to application development, this would mean that three equally important, active forces would play a role in creating an ever-changing cloud of applications. The upside of this approach is that it introduces scalability and robustness due to the higher participation grade (three forces instead of one). The downside is that, in order to make it work, you need to operate from trust. For most organizations, this is a challenge.
From control to trust
As stated earlier, our creative power in application development has increased at least tenfold, using cloud technology, code generation, and model-driven development. Especially if you have an organization with tech-savvy business users, you could look at a growth of hundreds of thousands of applications every year. Controlling everything would be impossible. Managing everything on an app-by-app basis will bring the complete application support process to a grinding stop. Instead, build a model that has a focus on the app cloud, but contains three equally important powers. Working in harmony. Based on trust.
The new normal
It’s quite clear that it’s not challenging to fulfill the creational power in our app cloud. Product owners and citizen (or business) developers are already well equipped to build their apps in highly automated pipelines on AWS and Azure (check our new podcast with Microsoft on Application Innovation), using extension tools such as Microsoft’s Power platform and Salesforce’s Lightning platform or low-code platforms such as Mendix or Outsystems.
Some organizations have the preserving Vishnu power in place too. Using the same tools to quickly create IT supporting tools, monitoring the security, health, usage, connectivity, flexibility, and value of apps. Centralized competence or capability centers are in place to safeguard security and maximize interoperability and reusability. Even local app stores exist to maximize the freedom to pick and choose what fits best – all built complying to company policy and standards. New releases are validated by scripts and AI algorithms, helping central teams to enforce company policy, but at scale.
What lacks in most organizations is a formalization of the destructive Shiva power. It seems we have a fear of destructive powers. Personally, I feel more comfortable creating something than destroying it. However, that changes when I adopt a perspective other than Hinduism, where death (destruction) is merely a transformation of energy, creating an opportunity for something new (something better?) to arise. Every few years, organizations run programs to review all apps (on an app-by-app basis) and offload a certain percentage of them to reduce costs. So, why not take that into consideration by design? I love the concept of App Undertakers – a team that puts applications to rest in a highly automated way. It sounds scary, but consider it to be the clean-up crew, removing every abandoned virtual machine, single-use app, and running-under-the-desk application. It will create more space for new opportunities, more freedom in the creative process (the trash will be picked-up), and focus in the preserving part (only preserve what you need).
Introducing destruction into your application delivery process will initially feel like self-sabotage. Deliberately introduce possible production errors? Who would want that?
Ask the good people at Netflix and they’ll tell you that it’s one of the best things they ever did.
Making it work
Having the trinity of creation, preservation, and destruction in place is not enough. As I said, they need to work in harmony. Trust is very important. Trust that the “other side” will do its job and do it well. Also, working towards the same goal helps. Harmony can be reached by rallying everyone under the same banner. Having a clear vision of your organization’s purpose story is paramount. Being able to tell that story well will bring harmony to your app cloud. Sure, there will be challenges in implementing such a model, but without trust, purpose, and a story to tell, the transformation will be dead on arrival.
Summary and wrap-up
Changing the perspective on the app delivery model helps with wielding the raw power of new app creation technology to the fullest. Looking from an app cloud perspective with a creation, preservation, and destruction power will help organizations create a cloud of apps that is flexible enough to rapidly change with business needs while being cost effective. Trust, purpose, and the ability to rally everyone under the same banner are mandatory behaviors to make this work. It will be one of the biggest changes in your application delivery model, but we need the old to die, in order for something new and beautiful to grow. Such is life.
 One of the pillars of the architecture that Netflix uses is that every service can fail. A failing service cannot ever break your application. Therefore, services in production will sometimes be stopped to keep everyone on their toes. This makes the Netflix platform very robust, but it works because the culture at Netflix supports it.