November 26, 2018

by Hooman K.

Being a product of the Pascal/C++ command-line programming era, I’d frequently find a way to write reusable code by way of functions to save time. I remember when Microsoft first introduced Visual Basic (VB), with tons of built-in functions and routines. Developers were so excited; it would even auto-complete code as soon as we started to type. In contrast to the flight software that was developed for the Apollo 11 Space Program in the mid-60s, VB was rocket science. Over the last 20 years, the industry has come up with many innovative process and technological improvements to speed up software development, including various refinements to SDLCs, compilers, software development kits, and frameworks. Speed and subsequent advances stemmed mainly from the explosive need for business and personal software, ever-increasing complexity of requirements, and largely the Internet.

Margaret Hamilton, Apollo 11 director of software engineering, standing next to a stack of code

Margaret Hamilton, Apollo 11 director of software engineering, standing next to a stack of code

The Future of Application Development

Despite exponential advances, one of the factors that slows app development is still the human factor. While tools and technologies are improving by leaps and bounds, they still require skilled developers to learn and apply them. To many innovators and disruptors, this is an impediment to the future of app development. In recent years, many companies have taken a stab at automating human workflows and trivial and repetitive tasks to take the human intervention out of the equation where possible. A good example is the automation of software testing. Developers have been deflecting blame for sluggish development to lengthy test cycles and various layers of tests (i.e. integration, functional, and regression tests). While test automation is a novel innovation, most prominent tools, such as Selenium, UFT, Rational Functional Tester, or eggPlant still require a heavy lift up-front, since test scripts require coding by skilled developers; if performed properly, subsequent test cycles can be performed in exponentially less time. Seems like one problem was solved and another created. In a recent product evaluation for one of my Federal customers, we came across a new test automation tool called Subject 7. This is a no-code test automation tool, with Selenium as its core automation engine. It leverages a point-and-click and drag-and-drop convention using a variety of built-in event-driven commands. Tools such as Subject 7 may well be the start of the Citizen “Tester” Era, which brings me to my next point: is no-code the future of app development? It very well may be. Some speculate that truly no-code development is only a few years away.

While companies such as Salesforce, ServiceNow, Appian, or Pega have been developing business specific workflow automation apps (i.e., CRM, ITSM, etc.), they have realized that the underpinning business process engines coupled with visual modelers can be used to develop any application that manages business workflows. Using what’s under the hood, they now offer app development “Platforms” that allow tons of time to be saved by leveraging point-and-click functions and automated deployments that never leave the platform.

This is inarguably the beginning of the future of app development. Like many of our Federal customers, I’ve been skeptical whether these so called Platform offerings really do what they advertise to do, so I set out to explore. At the Dreamforce and the Now Summit, I attended hands-on workshops specific to app development via their respective Platform offerings, and I must say, I was pleasantly surprised. At the Now Summit’s mobile app development workshop, the presenter fired up the mobile app development simulator’s user interface builder and visual modeler and built a simple mobile app with a few dozen clicks in just 7 minutes. Granted, it was a simple app and real-life scenarios require more complex functions requiring customization via code. However, these Platforms offer tons of out-of-the-box functionality and the option to customize via a proprietary coding environment. While “no-code” is often used to describe these tools, in most cases some level of code customization is necessary to meet customer requirements, so “low-code” is probably a better label. In our experiences with Salesforce and ServiceNow at ActioNet, app development cycles can be decreased by about 60% with low-code tools, however, we need to keep in mind that a good chunk of this decrease comes from automated deployments and tests that are baked into the Platform. Given the speed of advancement of low-code development platforms, no-code is well within sight. While developers will still need to write the foundation code of the visual elements, no-code development tools will pave the way for “Citizen Developers”.