Note: I am not associated with any low-code application development platform vendor. All information shared in this article is based on my experience and research. I have been developing applications professionally since 2005, initially with programming languages such as Java, and later with various process automation and application development platforms (12 so far, but who’s counting).

Can I use a low-code application development platform to build applications for my space shuttle? Sure you can, but should you? No, at least not yet.

In this article, I am going to try to sift through all the noise about low-code platforms and show you why I think organizations should consider low-code platforms for their development needs. We are not going to look at any particular platform, instead, we are going to run a simulation of sorts. We are going to take a set of requirements for a simple application, and then find out what type of effort would be required to implement, test and maintain the application using following development methodologies.

  • Components Off The Shelf (COTS)
  • Custom Application Development
  • Low-Code Application Development (a.k.a. Low-Code Platform)

Next section lists down high-level requirements for the application.

Requirements

For the purpose of this article, consider yourself as being responsible for building a new Expense Claims application. It is a simple yet important and relevant application that is commonly used in organizations of all sizes. Here is a list of requirements defined by each role.

Adeel Javed - Why Use Low-Code Application Development Platforms

The diagram below provides an overview of the process described in requirements.

Adeel Javed - Why Use Low-Code Application Development Platforms

Once you have an understanding of your requirements, the very next step is to decide if you are going to Build or Buy. Build versus Buy is an age-old discussion, that has been going on for decades. What’s important to note here is that most of the available analysis and tools are about COTS versus Custom Application Development and don’t necessarily include Low-Code Application Development. So, let’s do a comparison of all three options.

Components Off The Shelf (COTS)

Components Off The Shelf (COTS) also know as canned solutions are readily available software components that can be installed as-is or with few customizations instead of building a custom application.

COTS may be a viable solution if a good software component is already available that more or fewer maps to your requirements, your team does not have necessary technical proficiency in building a custom solution or unique technology or solution would not be a competitive advantage [1][2][3].

Take a look at the oil rig transporter shown in the video below, it is designed to transport humungous oil rigs from one part of the world to another. It does what it is designed to do accurately and efficiently, but it cannot be used for many other purposes.

COTS, in my opinion, are similar to the oil rig transporter i.e. they are built to do one thing very effectively, but they won’t meet your every need. COTS are difficult to customize and integrate, so you end up changing or giving up on important requirements.

Another important aspect to consider is that for each new application you will either need to add a new module to your existing COTS solution or buy a new COTS solution altogether. A single department may only have one or two COTS solutions, but the organization as a whole will be full of different COTS solutions that may or may not talk to each other. Of course, they solve the problems they were brought in for, but this ends up creating silos that require more work to simply integrate.

Looking at the expense claims application requirements, not all COTS solutions will come with a mobile app and there is a good chance they will not be able to integrate with all your systems. More importantly, an expense claims application cannot be extended to build a leave management system, you cannot reuse any components, you will need a new COTS solution that does leave management.

Now let’s move from Buy to Build.

Custom Application Development

Custom application development means building an application from scratch. You can build pretty much anything using custom application development. It allows you to be agile and building a unique solution can give you a competitive advantage.

Unfortunately, after hearing the term custom application development, the very first thought that comes to mind is:

Oh boy, this is going to take a lot of time and huge sums of money to implement!

Let’s take a look at requirements for our expense claims application again. A quick review tells us that we will need to develop following components to accomplish all the requirements.

  • Design data model, create objects and tables
  • Define workflow to assign tasks to appropriate users, either by coding if/else conditions or using a third-party API
  • Integrate workflow with an SMTP mail server for sending email notifications and escalations
  • Integrate workflow with document management system to upload all attachments
  • Integrate workflow with payroll management system to push data
  • Create a web portal
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
  • Create an iOS mobile app
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
    • integrate with the phone camera to capture receipts
  • Create an Android mobile app
    • integrate with LDAP for authentication
    • define rules for role-based security, i.e. what type of user can see what options (actions, menus, tasks etc.)
    • develop web forms for each task
    • define rules for validations to ensure data accuracy
    • create reports
    • integrate with the phone camera to capture receipts

A simple and straightforward expense claims application has suddenly gotten out of hand. We are already looking at four different codebases. First the codebase for common components, such as data model, workflow, task management, and integrations. Then three codebases for the web portal, iOS mobile app, and Android mobile app, they do not provide any different functionality as such, but they all require different codebases, expertise, and resources for implementation.

Building all the functionality listed above will result in thousands of lines of code. Not only is that going to take a lot of time and resources to implement, but as per industry average during development, we should expect

15 – 50 errors per 1000 lines of codes. [4]

This, of course, means that in addition to a large development team you will require a good sized quality assurance team as well.

Now, let’s ask the same question that we did for COTS, can this application be extended to build a leave management system? Except for the main web portal, not really, everything else will be unique for that application. So, almost an equal amount of effort will be required to build a leave management system.

So yes, you can build almost anything with custom application development, but it seems too slow. What other options do you have? Well, this is where low-code platforms come into the picture.

Low-Code Application Development

Low-code platforms provide you with a comprehensive set of tools to build your own applications. They are not restrictive like COTS and they are definitely faster than custom application development discussed in the previous section.

To better explain this, let’s take an example from the construction industry. According to studies, the average time to build an apartment building in 2016 for the US was between 10-14 months [5]. A construction company in China, on the other hand, is building a new 20 story apartment complex from scratch in just 15 days. How do they do this? Well, they use pre-fabricated components that have already been built and tested in their factory. Once these pre-fabricated components arrive on site, they are only required to be assembled. So, not building every wall and ceiling onsite from scratch, allows them to achieve this extremely fast construction cycle.

Low-code platforms use the same concept of pre-fabricated components. Most of the components that organizations require to develop an application come out of the box. They have been carefully designed, developed and thoroughly tested. The figure below shows various tools and out of the box components that a good unified application platform provides you.

Adeel Javed - Why Use Low-Code Application Development Platforms

Once again, looking at requirements for our expense claims application we can see that most software components that we identified in custom application development actually come out of the box in low-code platforms. Here is a quick summary of what it will need to build the same expense claims application using a low-code platform.

  • Use a visual designer to define data model and all objects and tables will be created automatically
  • Use drag and drop process designers to define workflow
  • Use out of the box task management to configure who gets the task and what form they see
  • Configure your SMTP mail server to send notifications
  • Use out of the box configurable plugins to integrate with document management system and payroll management system
  • Use out of the box web portal that allows you to simply configure authentication policy and role-based security
    • use a visual designer to quickly create web forms and reports
    • configure rules for validations to ensure data accuracy
  • Low-code platforms use the concept of build once deploy anywhere, so no need to create a separate iOS mobile app or Android mobile app, these come out of the box as well

Now as you can see, because you are using out of the box components, not only does your development cycle reduces by many folds, but you end up writing much less code. This translates into less number of development and testing resources. Also, since you are maintaining a single codebase, maintenance cost is reduced significantly as well. So, not only low-code platforms allow you to build unique applications, they do so at a much faster pace.

Conclusion

COTS solutions are viable options in a few scenarios, but they do not give you any competitive advantage, you have to give up requirements and they create more silos in an organization.

Custom application development, allows you to build something unique to your organization that gives you a competitive advantage but requires a lot of time and resources to design, implement, test and maintains.

In this very digital and fast moving world, every organization needs to be extremely agile. A low-code platform allows you to do that. You can still build custom applications, but at lightening speed (maybe not lightning, but pretty fast). You still need developers and testers but instead of a team of 8, you might only need 2.

In my opinion, low-code platforms have improved significantly and now is a good time to start considering them for your development needs. To get started, take a look at The Forrester Wave™: Low-Code Development Platforms report, this will give you an idea about different vendors and how they stack up (you should be able to find a free version of the report from one of the vendor sites).

References

  1. How to determine when to build or buy enterprise software
  2. Build vs. Buy: How to Know When You Should Build Custom Software Over Canned Solutions
  3. Build Vs. Buy: A Dangerous Lie
  4. Code Complete: A Practical Handbook of Software Construction, Second Edition
  5. Time to Build an Apartment Building in 2015