The low down on low-code development
Applicable has been developing custom web applications and mobile apps for over 14 years. We love custom software and, in our eyes, nothing beats creating a fully bespoke solution that achieves everything you want without compromise. We do however recognise that the cost can be prohibitive for many businesses. In the past the only other option has been to find off-the-shelf software that’s the closest fit to one’s requirements, but the fit is often very imperfect and this path tends to result in siloed data that doesn’t flow between applications. An exciting third choice has been the recent coming of age of low-code platforms.
Gartner predicts that 65% of all application development will be achieved using low-code systems by 2024. If this proves to be true then it is going to radically change the custom software development landscape. This isn’t to say that low-code is always the best choice; sometimes traditional high-code solutions will be a better fit for the situation or project. Also there are a wide range of low-code solutions on the market that differ greatly from one another.
So what are some factors to consider?
Most custom projects take between six-months to multiple years to complete. There are many stages projects needs to go through and developing quality code from scratch is not a fast process. Project stages include scoping, UX/visual design, prototyping, development, testing and finally implementation. From there iterative development based on user feedback and changing needs requires the same kind of painstaking work as the initial development and each change needs to go through a similar development cycle.
Low code development platforms allow developers, and in some cases non-developers, to put together a software project in much less time. With some low-code solutions the user is just configuring an off-the-shelf platform, while others are more like developer tools that generate most or all of the code for the developer but are still quite technical to use. Speed improvements vary but a common expectation would be between 4X – 10X productivity improvement; for the easiest to use ones it could even be 100X+ however the trade-off is that those systems are generally limited in what they can produce.
High-code development requires highly skilled and experienced developers leading the project with intermediate developers working under them. You will need to build your team with both front-end and server-side development specialists. Coding is not an easy skill to acquire and salaries reflect this. Using inexperienced developers will usually come back to haunt you further down the track, often in the form of applications that become unmaintainable due to poor structure. We’ve had clients bring projects they’ve had built to us where the only real choices end up being to rebuild the entire application from scratch or just ditch it.
In most cases, low-code solutions will decrease the skill level required to create solutions. For developer focused code generator-type low-code systems this may just mean that more junior staff can meaningfully contribute to a project; experienced developers will still need to architect and oversee. For solutions that are implementing a platform the skill level required may be reduced right down to a tech-savvy staff member with no background in software development.
This is where high-code excels. With the vast majority of high-code solutions, as long as your developers have reasonable terms and conditions, you will own everything they produce for you without having to pay ongoing licensing fees. This is especially important if you are building a software product that you plan to commercialize beyond your own use; it’s not feasible to scale a product to your software customers that just ramps up the license fees you’re paying.
For the majority of low-code solutions, you will be paying ongoing license fees that will scale with the size of the solution and the number of users. Also, in almost all cases, you will not ultimately own anything; it’s all just within the vendor’s platform. There is one exception to this that we’re aware of which is Outsystems; this is a developer-level code generator low-code platform and it has a detachment policy that does allow you to walk away with the solution you develop. You will however still pay high licensing fees throughout your development journey until it becomes a very settled application or needs to dramatically scale up.
There’s pretty much nothing you can’t bend it to, but change comes with a lot of work and cost.
This is where there’s a big trade-off between productivity and flexibility. The easiest and fastest low-code platforms sometimes referred to as “no code”, are generally the least flexible, and vice versa.
Choosing a low-code platform
As you’ll have started to pick up there are vast differences between platforms, therefore selecting the right low-code solution for your situation is very much a case of matching your needs to the right product.
Here are some questions you could ask yourself?
Is this just for internal use or do I plan to commercialist more widely?
If the former then low-code may be a good option, otherwise stick to high-code or potentially Outsystems if the first iteration will be purely for internal use.
Am I trying to create a very specific user experience, or is it all pretty standard?
If the former then implementing a platform that savvy staff can configure may work for you, otherwise, you’ll need to look to a developer-level system with associated higher implementation costs.
What level of license fees can I tolerate?
Cost varies greatly between products so determine your budget and then see which solutions fit within that.
Is this solution disposable or something large and serious?
The simpler low-code solutions are often particularly good for fast-moving, sometimes temporary, needs. If however the system you want is large, complex, and more core to your business then consider more of a developer-level solution.
A few example products
A great low-cost low-code / no-code solution for building workflows; this is however a SaaS product, so not ideal for solutions requiring deep integration with your IT environment, and it’s limited to their tools and paradigm.
An experienced vCIO included this in what he called the three S’s you should never touch; Salesforce, SAP and Servicenow. Whilst these are all very capable and highly configurable software solutions, they will cost you an arm and a leg forever in a day and you’ll never own anything you produce. Salesforce is primarily a CRM, however you can custom code within it’s ecosystem to produce workflows of pretty much any type. The thing is that all the code is proprietary and lives within the Salesforce SaaS system.
A really interesting and exciting newer open-source low-code solution. This one is more of a developer level solution and made our shortlist, however it can’t produce mobile apps and it’s server side language of Golang wasn’t a good fit for us. We’ll be keeping an eye on how it develops as a product though; one day there may be a real “Wordpress of low-code” that dominates the market at very low cost and with high flexibility.
See comments under ‘Salesforce’; this is a powerful platform that is highly configurable and can be used by savvy staff to create corporate level solutions. It’s pricing is also corporate level and you won’t own anything you produce. It is however probably the best choice for rapid development of relatively temporary or rapidly evolving solutions for large organizations.
This is kind of in a cross-over space between power user and developer level; great simple low-code solution with a lot of flexibility and power; pricing seems reasonable. It is not however at the same level as something like Outsystems in terms of what it can produce or your ownership of it.
Very much pre-built component based, this is another very promising open-source system. It is customisable and can be deployed to your own environments if you choose. Great for smaller apps but doesn’t seem like it would be the right solution for more enterprise grade products. A lot going for it though and we may try it out if we have a project that it seems well suited to.
This is a slightly different class of system to all the others mentioned here in that’s it’s an mBaaS solution; Mobile Back-end As A Service. It’s a great product for configuring a back-end for mobile app project where the requirements are straightforward; data in, data out, user admin, notifications and so forth. Beyond that however requirements will tend to outgrow it’s limits; a good way thought to keep the initial cost of a mobile app project way down.
Outsystems is the most powerful and flexible product of everything we looked into, however it is also the most technical and is best understood as a suite of extremely powerful tools for developers. It allows you to configure a software application and then have all the code produced for you; where you reach the limitations of that you can then custom write your own add-ons or modifications. See more about this below.
Why we use Outsystems
As a software development agency our priority is to be able to deliver the same, or very similar, results to our clients as we would for a high-code solution.
In researching our choice of product we were initially overwhelmed by the number of low-code systems on the market, but in the end, there was a clear choice. These are the compelling reasons behind our choice of Outsystems for low code development.
- Capability is right up with the best of the low-code platforms
- It is fully extensible to meet even highly bespoke needs
- It deployed to clients’ environments (it’s not stuck on someone else’s SaaS environment)
- Their DETACHMENT POLICY allows clients to leave and take all the generated source code for their project(s)
- Pricing is not too bad; the free tier up to 100 users, will cost around $30K per year for companies with a staff of approximately 100 and an average solution. Pricing does scale with solution and users though.
- It’s secure by design; the generated code has best-practice security baked-in
- They’re a fairly accessible company for their size with a great community that includes sharing of custom add-ons
- It has built-in test automation and deployment (CI/CD)
- Outsystems generates best-practice code in a Microsoft/React tech stack
- It can also generate mobile apps (using Cordova); this is the one area where there’s a small degree of compromise from our point of view however it still delivers a very effective result.
We don’t see low-code as the silver bullet of software development; there are trade-offs, however, low-code has become an important arrow to have in any software development agency’s quiver. The simpler ones also provide a great way for organizations to internally ideate systems and try them out, before potentially taking them to the next level using a more time-consuming approach.
What we’ve shared here is only a very brief overview of the topic so feel free to get in touch with us if you have further questions you’d like to work through.