If you’re developing an application for customers, but you only have a rough idea of what they want, then you face a Catch-22: You can’t specify the application’s requirements and develop it until you get feedback from customers, but they can’t provide feedback until you’ve developed it.
How do you escape from this predicament? Many organizations have responded by using one of a growing breed of “low-code,” rapid development platforms.
Clay Richardson, an analyst at Forrester Research, defines a low-code platform as one that enables fast application development and delivery with a minimum of hand coding. The platform should be easy to deploy and is likely to be used to develop customer-facing “systems of engagement.” Familiar names such as Red Hat, Software AG and Salesforce.com offer low-code platforms, as well as lesser-known companies such as Alpha Software, Claysys Technologies, Mendix and Mobideo.
Low-code platforms certainly don’t eliminate hand coding altogether. As well as minimizing hand coding, though, they speed up application delivery by providing visual tools for the quick definition and assembly of forms and the rapid build-out of multistage workflows, Richardson says. They also allow the easy configuration of data models that help eliminate common data integration headaches.
These platforms are useful for knocking together applications in a matter of days or weeks and getting them out for customers to try. Depending on how customers receive them, the applications can be abandoned as non-starters or developed in new iterations that incorporate user comments and suggestions. What emerges at the end of the process may be an application with functionality that’s significantly different to what was originally included or envisaged, Richardson says.
[ Case Studies: Rapid Application Development at Zappos and Continuous Deployment at Etsy.com ]
“With this sort of customer-facing app, the pace of change is different to what you find with systems of record,” he says. “Changes are needed on a daily or weekly basis. This requires less hand coding. Otherwise, this rate of change is simply not sustainable.”
As an example, Richardson cites an insurance company that may be continually rolling out different products to generate new revenue streams. “It may well tweak the sign-up process every week to make the applications more effective,” he says.
Low-code Platforms Works for Experienced, Novice Developers
The drive for adopting low-code platforms tends to come from the chief marketing officer or the marketing team, Richardson believes. Nevertheless, the people actually using the tools tend to be existing full-time developers, who might otherwise code in Java, .NET or C#, rather than so-called “citizen developers” in the marketing department.
However, there are low-code developers with a very different skill set to established developers as well. “These tend to be kids coming out of school with no programming background, but who can be trained in days to do this as a full-time job,” Richardson says. “They certainly couldn’t deliver anything in Java or C#, but they can deliver with these platforms – and they can do so at speed.”
One organization using a low-code platform is British insurance company Liverpool Victoria. Rod Willmott, the company’s Fast Track Innovation director, says his staff use the Mendix development platform to start projects that would otherwise never get on to the company’s strategic agenda.
“This is important for applications when you don’t know what the business outcome will be,” he says. “In a world of slow, expensive development, these rapid platforms allow you to shorten the front end so you can get something on the table, tune it and get experience with it.”
[ How-to: Expedite Continuous Testing and Use Agile Development to Avoid Project Failure ]
As an example, Willmott mentions a long mooted broker portal. Wilmott wasn’t sure exactly what features it should have had, he says – and he knew it would have “cost a fortune” using conventional development methods. Using Mendix, though, the company produced something that worked in just 15 days.
“We showed it off to brokers. They said, ‘If it could have these extra features, it would be much better.’ We were then able to go back and incorporate these suggestions,” Wilmott says. Applications such as this are built by teams of six to 10 people, he adds, of whom only two are actual developers.
With Precautions, Low-code Development Can Be Sophisticated
An obvious question to ask is how far low-code platforms can be pushed. How sophisticated or complex can the applications developed on these platforms be?
Wilmott’s experience with Mendix suggests they are surprisingly powerful. “We have done some relatively technical things quite easily, like producing an application for validating bank accounts,” he says. “The logic behind the application is horrible. You would be mad to try and load that into code, but we wrote the app in Mendix in just a couple of days.”
A potential problem with applications that can be built very rapidly is that they risk causing serious security or compliance problems – especially customer-facing apps that use customer data. That’s the view of Stephen Hendrick, a principal analyst at Enterprise Strategy Group.
“There should certainly be security and lifecycle concerns. If you’re building something disposable or tactical, you may not choose to be as rigorous with security or lifecycle as you should be,” he says. “There are potential compliance problems too, as you may not have adequate governance. If your applications are accessed by external users, then, really, you’re creating a potential security vulnerability.”
[ Related: Moving Toward Smart, Secure Continuous Software Delivery ]
Liverpool Victoria’s Rod Wilmott says his organization ensures that all customer-facing applications accessing customer data are subjected to security checks, such as external penetration testing, whether they’ve been built using Mendix or developed more conventionally in .NET or Java.
For him, the key benefit of low-code platforms is a way out of that Catch-22, allowing applications under development to be iterated to incorporate user feedback in record time.
“When we come back with a new version of an application, it can be a jaw-dropping moment,” Wilmott says. “Users have told us that it’s exciting to get what they want from an application quickly, instead of having to wait three months and then be given something they didn’t want.”