when relevant content is
added and updated.
when relevant content is
added and updated.
Robotics image via FreeImages
By James Kobielus (@jameskobielus)
Auto-programming will become the centerpiece of enterprise application development in 2018. As we move into the new year, we’ll see more application developers leverage the newest artificial intelligence (AI) approaches to algorithmically generate source code. Before long, human being will scarcely need to write a single line of original program code under any circumstances.
Another key new auto-programming technology that we’ll see more of in the new year is robotic process automation (RPA). What’s new about RPA is that it doesn’t program from the “inside-out,” in other words, through the old-fashioned approach of writing application logic in source code and then compiling it into an executable format. Instead, RPA takes an “outside-in” tack, using AI to craft program logic through algorithmic inferences from externally observable application artifacts and behaviors.
Essentially, RPA uses AI-driven software “robots” to infer an application’s underlying logic from its presentation layer, user-interface controls, interaction and messaging flow, and application programming interfaces. Key RPA capabilities include screenscraping of UI presentation elements, optical character recognition of on-screen text, auto-sensing of browser-level control and domain object models, recording of human-user keystrokes and clicks, and user-specified flowcharting of UI flows. In addition, the technology increasingly relies on the latest advances in machine learning (ML), deep learning (DL), natural language processing (NLP), and computer vision, either to automatically build a high-fidelity replica of an existing application, or it can work this same magic from prototypes that users may craft of these artifacts at various levels of business or technical depth.
Some disparage RPA as just the latest fad in screenscraping, but it’s far from that. Like screenscraping, RPA interprets the UI of applications and can infer how to execute application steps identically to those that a human user might take. But RPA’s potential is far greater than that, especially if these software robots are resident on desktops, servers, and other application nodes. In this larger picture, RPA infrastructures can be configured to observe, capture, profile, and reproduce any flow of content, context, and control in any application environment. They can also be setup to non-disruptively and automatically detect changes to APIs, document object models, and other observable application architectures, then triggering changes to auto-generated application code that interface to these features.
Clearly, RPA opens some amazing possibilities for enterprise who are trying to boost developer productivity under tight budget and manpower constraints. Imagine a world in which you can simply point an RPA robot at a well-performing workflow that sprung up in an ad-hoc fashion and ask it to crystallize that into a repeatable, documented workflow. Now imagine that you can apply RPA to work this same magic across distributed microservices in your private cloud, in complex multi-clouds, or even among edge nodes on the Internet of Things.
For those reasons, this technology might also unnerve people who’ve made their careers writing the application code and orchestration logic that underpins many enterprise applications. In fact, many RPA implementations come into organizations throughout business operations who are frustrated waiting for IT shops to deliver on their complex application requirements and who want to take the matter in their own hands. Indeed, RPA robots may be able to produce a first cut on these auto-built orchestrations better and faster than an expert human process designer. This is, in fact, how many organizations are using RPA, providing flowcharting tools that both traditional developers and business users can use to graphically monitor and tweak the process definitions that distributed RPA infrastructures automatically generate.
You might regard RPA as the Trojan Horse of the “citizen programmer.” One of the technology’s big advantages in legacy environments is that, by building applications from external interfaces, it requires little or no changes to existing IT systems. Consequently, it’s an easy drop-in to app-dev and process design shops, allowing developers to boost their productivity by implementing lightweight orchestrations among built-up applications. In 2018, we’ll see a fair amount of application development migrate to the “edges” of the business, in the form of full-fledged RPA-based developers in every line of business.
Also in 2018, we’ll see established RPA solution providers become more prominent players in the cloud application development arena. Chief RPA tool vendors include Automation Anywhere, BlackLine, Blue Prism, Kofax, Pegasystems, and UiPath. These solution providers are blurring the already fuzzy line between RPA, business process orchestration, Web content management, and application development. Wikibon expects that many of them to be potential acquisition targets in 2018 for larger, deeper-pocketed providers of cloud application development suites.
Furthermore, the new year will see the AI features of commercial RPA tools grow in sophistication. RPA vendors will leverage technological advances in computer vision, sentiment analysis, topic modeling, and intent-based modeling. Tools for optimizing the AI models in RPA environments will also grow more sophisticated, being able to train the code-generation process through supervised learning on a deepening pool of field-proven code-builds.
Programming won’t grow entirely automated in 2018, or even anytime in our lives. Though algorithms will soon do the bulk of programming work—via RPA, ML, and the like—but we will still need humans in the loop to certify that the robots are building only the code we need them to build.