If you ask any low or no-code tool vendor they will probably tell you that their platform can be used to build any application, or more likely that their platform is not right for every application but whatever application you are building fits right in their sweet spot. As a long time user of these solutions and having been confronted with a few too many failed projects I can tell you that not every application can be build with every platform and some can’t be build with any platform.
There are several aspects to look at when deciding if the specific needs of your application can be met by any platform and if so, which one. It is also unlikely that any of the platforms that are out there can meet all of your needs for all of your applications, some are great for front-end and UX focused applications others excel at integration or implementing business logic.
While this article was not written as a guide for helping you select the right platform for your situation, it does provide pointers of some of the things to consider. At the time of this writing I’m not familiar with any low or no-code tool or platform that can be used to build a wide variety of applications without considerable manual coding or creative work-arounds, I expect that as the market matures we’ll be getting closer to having a single answer to all your application questions, but I expect it will be some time until we reach that utopia. So for now, we don’t have a one size fits all or even one size fits most, we’re stuck with choosing the right tool for each job separately.
The first thing to do when starting to select the platform for your application project is decide on your priorities, what are your key decision makers? sometimes those are dictated by your industry or business regulatory situation other times they have to do with the goal of the application, building a customer facing solution for a highly brand conscious company requires different decisions than a time tracking application for manual laborers that have up-to-now used scraps of paper with notes scribbled on them. Once you have your priorities you should decide which ones of these are deal-breakers.
Below I have detailed my thoughts around some of those priorities that I’ve used or seen used in the past or that people realised they should have considered ones their project was underway.
One of the first things to consider, because it eliminates many of the currently available platforms is performance, this is not only true for no and low-code solutions, the same thing goes for more traditional software developments technology choices. If your application requires millisecond precise timing or response times, for example to control industrial processes or trading platforms or maybe just the ability to scale at a moments notice to many times the size of your regular use you need to do a serious check on your choice to use a no/low code approach to development.
Audit-ability and compliance are another major hurdle, does your company or the industry the application is used in require code level application reviews, audits and certifications? using a low/no-code approach probably means you’ll be using a considerable portion of closed code provided by the platform vendor, most (if not all) of the no-code platform don’t even offer any code to audit. Even if the code accessibility or audit is not a problem, the audit-ability or compliance of data may be, can the platform support the level of data privacy, security and audit required to meet your requirements? An important question to ask here, especially with hosted platforms, who has access to your code and data, the platform vendor likely has this access, how about their up-stream providers like their hosting partners?
Building an application is one thing, maintaining or modifying after the fact is another thing. Do you expect to have to build an application and be done with it, or are future enhancements and modifications expected or maybe even planned? can you make those modifications after the initial application has been deployed? What happens when the low/no-code platform of your choice comes out with a new version, is your now older project still supported, can you modify your application without access to the development environment provided by the platform (likely not, even if the marketing material says you can)
Taking this maintenance and enhancement challenge to the next level is the availability of and access to the right skills and talent to develop and maintain your application, can you train your people in your organisation or are you always dependent on the platform vendor or maybe one of their business partners? are the skills required to maintain your application readily available in the labor pool or can they be trained easily without much prior knowledge requirements? Especially the ability to train people is a key element, if your chosen platform is a low-code solution that build on top of C(++/#) or Java language skills, can you find the people with the right technology skills to even train on the low-code platform?
Cost is another major element, what does it cost to develop and run your application on the platform of your choice? do you require development licenses, and do you need those after you deploy your application, here also consider the ability to maintain your software going forward. How about once your application is in production, are you locked into this platform vendor and required to pay their licensing fees for however long you use your application?
Some platforms provide you a choice of hosting options, from shared to private cloud and sometimes all the way to self hosting or even native mobile apps that possibly require no hosting at all. Knowing your requirements and the capabilities of the platform combined with the cost of that choice can be an essential selection criteria, especially when your application requires integration with other applications or devices inside or outside your organisation this could be a key element, is the integration even available where the application is to be hosted or does your corporate firewall or security team allow for this kind of integration and under what conditions.
Unless you are building a back-end only application that has very limited human interaction you probably need to consider how your end-users are going to interface with your application, are they using a web-browser or do they need applications native on their device and if they need native applications what platforms are they using, mobile phones have vastly different requirements and capabilities from desktops. Are you also planning to use device native hardware? maybe a barcode scanner or RFID reader connected directly to the end-user device? Some platforms offer the ability to create native apps, but many of them struggle in the distribution department, how are you getting your applications to your end-user and does the no/low-code platform of your choice support the app-stores of the various technologies.
Part of the end-user device decision is a more marketing driven element, the user experience and user interface, there is a HUGE difference in what the different platforms can achieve here. And your specific needs in this area may disqualify many if not all the platforms out there as a result.
Last but not least in this long, but never complete list of things to consider is integration. It is almost unheard of nowadays to create applications that are an information island and stand wholly on their own, there is almost always some integration with existing systems or data to make your application work and oftentimes there are many. The technologies supported by your external systems to enable these integrations need to be matched by the technologies on your low/no-code platform or you may need to do extensive and often complex and as a result costly modifications or creative engineering to make it work.
While this list probably didn’t tell you if your specific project can be build with one of the many low and no-code tools out there I hope it did give you some idea of the areas to discuss and enough knowledge to help you select the right platform for your situation and project.