I was there when application performance management exploded in the 2000s. And most recently, I went deep in cloud computing in the 2010s and then DevOps/CI/CD. Today, I'm chasing the one of the hottest cloud trends in 2017: rapid application development with low-code application platforms
IT and Cloud Trends: Automation is the Secret Sauce
The trend that I've seen over the last few years is the ever-growing use of automation to improve IT processes, solve IT problems and accelerate the delivery of IT services.
For example, cloud computing is really all about applying automation to mundane problems (like standing up a server) so that IT can focus on the interesting challenges. Continuous integration and continuous delivery apply automation to the application testing and deployment process. The root of each of these approaches and technologies is the application of automation to execute routine, repeatable tasks to accelerate the output and reduce (human) errors.
How a Bookseller Changed the World with Automation
In the dawn of the cloud computing era, infrastructure as a service (IaaS) offered the ability to get on-demand access to compute resources running in "the cloud." That is, at the push of a button, an IT operations team member could instantly provision a fully functional "server" designed to his preferred specifications. How was this achieved? Through automation! Creating tools that would automatically create and provision "machine images" or virtual machines was the key to how Jeff Bezos' www.amazon.com (the bookstore) was able to easily scale to handle its own explosive growth during the early days of the internet.
The team at Amazon saw the power of this application of automation and realized that many other organizations could benefit from this capability. They then launched Amazon Web Services and their EC2 IaaS service that was powered by the automation technology that they built internally. This technology is what has allowed them to become the leader in the public cloud space.
Developers Wanted to Move Faster Too
Infrastructure as a Service was helpful but app dev teams wanted more. They realized that automation can also be applied to the manual tasks that must happen even after a server is running: the installation and configuration of application libraries, middleware, and tools. Automating the deployment of the application stack on top of the compute infrastructure allows the development teams to immediately do what they were hired for - code and build applications.
So, platform as a service (PaaS) was born. With PaaS (in its original form), a developer could begin working directly within his IDE to code the application. He was given access to the environment, clicked a few buttons to choose his application language, middleware, database and other services, which would then be installed with automation. He then went through the rigorous process of writing the actual code for the app. When the code was complete, he simply clicked the "deploy" button and the code was then compiled, tested and deployed automatically.
DevOps Rule #1: Automate Everything
Most PaaS platforms include continuous integration and/or DevOps tooling that, again, leverages automation to scan, test, stage, and deploy the final application. Today, the term "PaaS" seems to be falling out of favor. But these "Cloud Application Platforms" continue to gain traction and popularity because they automate many of the tedious steps of the process of building, deploying and running an application.
Cloud application platforms combine the benefits of IaaS with automated provisioning of compute infrastructure (increasingly in containers), PaaS with automated provisioning of the application stack, and DevOps/CI/CD with test and deployment automation. This automation speeds up many of the tasks that were formerly manual processes thus helping accelerate the delivery of applications and IT services.
What's Wrong With This Picture?
So, let's see where we are.
We've automated the provisioning of compute infrastructure.
We've automated the provisioning of the application and data stacks.
We have to manually hand-code our applications.
We've automated application testing, staging and deployment.
What's wrong with this picture? Well, what is potentially the longest piece of the application project timeline, the coding phase, isn't leveraging the clear benefits of automation that the other phases are. That seems silly, right?
Ultimate Automation: Rapid Application Development with Low-Code
That's why I am currently chasing the latest storm to disrupt the app dev industry: rapid application development with low-code application platforms. Low-code application platforms include all the automation benefits of IaaS, PaaS and DevOps. They build on that by applying automation to the last, and arguably the biggest, piece of the app dev puzzle, the process of coding and building the applications. Low-code platforms, such as OutSystems, use intelligent automation to rapidly and accurately create the actual code that is deployed for an application. A developer working with OutSystems will model his application visually including laying out every piece of business logic, decision point, API call, database table, and UI component.
The OutSystems platform will then use built-in intelligent automation to create the code for those pieces in the most efficient way possible. This code created by the platform is automatically scanned and tested before deployment, thus greatly reducing the chance of application code errors being delivered to production. So, in addition to using automation to deliver the infrastructure and application stacks, the OutSystems low-code rapid application development and delivery platform uses automation to create, test and deploy the actual application itself!
Accelerating Innovation for IT and the Business
So what is the impact of rapid application development with low-code? Well, for app dev teams, since application coding is the longest portion of any application project, it is clear that rapid application development with OutSystems will greatly accelerate their ability to deliver on their goals. This helps both IT and the business. For IT, this means reduced project backlogs, better use of development resources, and happier business users and customers. Similarly, for the business, using OutSystems for rapid application development means faster time to market for business innovation and happier customers.
For any organization, there are both top-line and bottom-line business benefits that result from applying automation to the problem of rapid application development with a platform like OutSystems. Accelerating the deployment of IT services and applications can improve the top line by allowing an organization to realize revenue sooner. At the same time, the increased efficiency of the IT operations team directly impacts the bottom line. Within our OutSystems customer base, we see IT and business teams working together. By partnering, they can enhance digital customer experiences, improve efficiency in digital operations and even accelerate the development of core back-end systems.
For me, the ability for organizations to realize this nirvana of IT and business working together enabled by rapid application development with a low-code platform is what makes this technology so compelling. Take advantage of one of the most exciting cloud trends of the year by capturing the low-code storm and applying automation to your biggest challenges.