Friday, March 10, 2017

Low

Recently, there has been a lot of buzz about "low code" development platforms. Even the Oracle APEX team has embraced this term (see https://apex.oracle.com/lowcode/ for details). This approach allows the "citizen developer" - someone without a traditional IT background - to build basic applications with little to no code. Platforms such as QuickBase, Appian, Mendix and even SalesForce.com have popup up, offering the promise to quickly build applications with little to no code. Users from all walks of life can now build and deploy applications to some sort of cloud in just minutes!

But is it possible to build a truly useful application with little to no code? Perhaps. Perhaps not. I suppose that all depends on what you want the application to do and what data it will use. It probably also depends on the security of the application, and how easy it will be to integrate into a corporate identity management system behind a firewall. It also probably depends on what type of availability and reliability you need. And it will definitely depend on how much any of these solutions cost, especially if your application gets popular and more users need to use it. While some of these companies are solid and not going anywhere soon, a few of these names are new to me, and if they were to fold, it would not be the first time a startup failed.

While I have not tried any of the products that I mentioned, I do have a bit of experience with Oracle APEX, so I'll speak from that angle. APEX does fit into the "low code" profile, as you can easily build an application that manages data, provides visualizations, and even facilitates some basic workflows. You can do all of this without writing any code, save for maybe a query or two. There’s even an “App Store” of sorts - called Packaged Applications - that can get you create a fully functional point-solution application with a single click. I’ve seen people from skilled developers with multiple IT-related degrees to vice presidents with limited IT experience build and deploy APEX applications. The "citizen developer" term truly fits in here.

However, there is a limit as to what you can make any application do without writing code. Over the years, APEX has done a great job of pushing this limit out further and further. You can create a much better looking, more secure, more functional APEX application with APEX 5.1 in much less time than you could with versions as recent as APEX 4.0. But even with the latest and greatest release, if you want to add some business rules or put basic conditions on a region, you’re likely going to have to use a little bit of code.

Think about this: if you had a couple of citizen developers build a basic project management tool in APEX, and then as it becomes more popular, more people in the organization start to use it. Thus, the citizen developers enhance and modify it to support multiple teams, multiple users and roles, etc. All along, there is no oversight from IT about how the application is enhanced and managed. No standards are followed, as it’s totally up to the citizen developers to choose how it looks and works. It’s fairly likely that at some point, bad decisions were made. Perhaps a few security vulnerabilities were introduced, or a couple of poorly-written SQL statements were created. It’s not all that different from the MS Access mess, but at least this one is backed up...

Low code is fine when it’s just that: low code. As soon as applications cross some threshold and become a critical component of an enterprise, it’s time to stop calling them low code and transition their ownership to the professionals. With most of the online tools, I don’t believe that this is an option, or at least not a simple one. If you exceed the capabilities of the platform which you’re building on, it’s going to be a good amount of work to migrate to another one.
This is where APEX differs. While APEX does seem to fit the low code moniker, it’s so much more capable than that. Calling APEX low code makes me think of other “low” branded things: low fat, low carb, low T, etc. It’s perfectly possible to start citizen developers in APEX, and show them how to build basic applications that meet some of their less critical business needs. Some applications will remain somewhat simple, and that’s just fine. But for the ones that don’t - it doesn’t take much at all to transition ownership of that application to IT, or perhaps just monitor and manage it a bit while still allowing the citizen developer to own it.

Those who have used APEX for years know this: it’s one of the few development platforms that you can become productive with in just a few days, but it will take your entire career to master all it can do. It’s an ideal platform that meets the criteria of low code. But it’s so much more - offering one of the most seamless transition paths from low code to enterprise applications.

3 comments:

Completely agree with your thoughts! With Oracle APEX, even citizen developers can build beautiful applications "with-out" code or with low-code. But it does not mean APEX is only for citizen developers! It conveys wrong notion!

When I say to people that APEX can replace your Excel and/or MS Access applications, people often misunderstand that APEX is comparable to excel or MS Access tools, which is wrong, because we can build enterprise applications as-well with APEX.

You expressed my concerns well about Oracle's new Oracle Application Builder Cloud Service, which I mentioned to Oracle's Product Manager. I saw a demo, and it looked great, easy to use, lots of capabilities. Perfect for the "citizen-developer". But, I said to the PM, "What happens when the requirements outstrip the capabilities, or when a neat application developed by a non-professional needs to go business-wide?" Can a professional grab the underlying code to maintain and extend it? The underlying code is apparently Oracle Jet, which gives me hope, but is the generated Jet code readable so that a pro has a chance of modifying it? And can we even get to the code?

John - excellent points. Small, citizen-developed systems WILL become mission critical, as there is no translation gap between implementation and requirements. A shoddy-built ABCS application will be more popular than a custom developed solution, as it's more likely to capture what the users need - even though it could be more difficult to use.

I see this more like Designer - you can certainly take the generated PL/SQL and make changes, but the second you add one character, you can no longer generate new changes from the tool. So yes, there is a way to transition an application from citizen to professional developer, but it's not painless, and my fear is that users will do all they can to keep things under the radar, which could be dangerous.