“The future of coding is no coding at all” - Chris Wanstrath (CEO at GitHub).
Mid May I posted a blog on RPA (Robotic Process Automation - https://bankloch.blogspot.com/2020/05/rpa-miracle-solution-for-incumbent.html) on how this technology,
promises the world to companies.
A very similar story is found with low- and no-code platforms, which also promise that business people, with limited to no knowledge of IT, can create complex business applications.
These platforms originate, just as RPA tools, from the growing demand for IT developments, while IT cannot keep up with the available capacity. As a result, an enormous gap between IT teams and business demands is created,
which is often filled by shadow-IT departments, which extend the IT workforce and create business tools in Excel, Access, WordPress…
Unfortunately these tools built in shadow-IT departments arrive very soon at their limits, as they don’t support the required non-functional requirements (like high availability, performance, concurrent usage, security…) of a business and its development
often lacks good IT practices (like source code management, controlled deployments, usage of test environments…).
Low and No-code platforms (also called Rapid Application Development Platforms) aim to find a compromise between the high standards of applications delivered by IT departments and the high flexibility and quick delivery speeds of these shadow-IT
departments. On the one hand they can be a tool for IT programmers to become more productive and more business-oriented (i.e. focus more on added-value business logic), while on the other hand business people can develop more powerful
business tools, while respecting more the existing IT standards. The concept is however not new, but merely an evolution of other productivity tools, aiming to give more power to business users, like e.g. BPM (Business Process Management) tools.
Obviously such platforms are a sort of holy grail for business organizations. No wonder that dozens of software companies are putting this type of platforms on the market.
The most known Low-code platforms (i.e. rapid development platforms, where still some coding is required) in the market are:
while the most known No-code platforms (i.e. rapid development platforms, where coding has become nearly obsolete, i.e. build an application without writing a single line of code) are:
Open as App
It is clear however that the boundary between Low- and No-code platforms blurs, with on the one hand No-code platforms becoming more powerful and versatile and providing possibilities to add plugins and add-ons, which are programmed by specialists
and on the other hand Low-code platforms providing Studios which allow to create software more seamless and with less code (by drag & drop and parameterization). No wonder that Gartner considers both Low-code and No-code platforms in the same quadrant of Low-Code
Due to the strong competition in the market and the huge VC-investment pouring in, these platforms evolve rapidly:
Platform vendors providing more and more tooling, like data connectivity tools, React Native mobile apps…
Platforms providing more rich and user-friendly studios which reduce the coding effort
Platforms allowing to convert the development into source code of a common programming language, resulting in less vendor lock-in and allowing programmers to have maximum flexibility
The availability of out-of-the-box integrations with large business software tool (like SAP, Salesforce…), but also with other tools and solutions, like Slack, Twilio, Twitter, PSPs, eCommerce platforms…
Large, well built out user communities publishing all kinds of tools, plugins, integrations, add-ons… which are often open-source and reusable at no cost
The financial services sector, which undergoes a rapid digital transformation, is a strong adopter of these platforms. For example:
OutSystems is extensively used by large banks like GarantiBank, BPI, Santander, Crédit Agricole, ING…
Mendix is used by ABN AMRO (building more than 200 Mendix apps to replace over 600 apps developed in tools like Excel, Access, Sharepoint, Domino, Lotus Notes…) and Rabobank.
Unqork is very popular, especially amongst financial services companies, with customers like The Goldman Sachs Group, John Hancock Life Insurance and Liberty Mutual Group
Open as App is used by Commerzbank
It remains however the question if these tools should be positioned as a vital layer in the bank’s application architecture or only as a component to solve specific problems. Some banks would even say that these platforms should only be used for demos, prototyping
and MVPs to quickly test out an idea or a business strategy, before they are replaced by a more traditional alternative.
Many banks fear the vendor lock-in of these platforms. Furthermore, it is clear that not just anyone can develop a business application for a bank on those platforms. The developers in the tool still need the analytical skills to model certain
flows and business logic in a correct and efficient way.
Furthermore even if a good application is developed in a Low- or No-code platform, it will still need to be integrated in the rest of the IT application landscape, i.e. receiving data from other systems, delivering data to other systems, single sign-on,
digital signing…, which requires also a good technical knowledge of the connecting systems. A stand-alone solution is rarely very useful within a bank.
Furthermore with cybersecurity becoming an increasingly important topic within a bank and regulations like GDPR putting extremely high penalties to data security breaches, you still want as a bank to make sure that not just anyone can build a critical application.
A good working partnership with the core IT team is therefore critical.
Every level of abstraction typically provides higher productivity, but means also a loss of flexibility (as prescriptive choices have to be made). We can consider that No-Code platforms are a higher level of abstraction than Low-Code platforms. As a result
No-Code platforms are easier to use (require very little training) and allow higher productivity, but at the same time are considerably less flexible, result in a stronger vendor lock-in (e.g. usually they can only be used on cloud platform of the No-code
platform vendor) and usually provide less optimal non-functional behavior (like security or scalability). As a result, they are typically only used for simple (low complexity) applications, which fit well the type of applications for which the No-Code platform
Given that Low- and No-Code platforms have a high-level of abstraction, it is important to consider if there are not business packages available, which provide even more out-of-the-box value, i.e. where even a big part of the business logic has been implemented.
E.g. blogging platforms, e-commerce platforms, core banking platforms, CRM tool, ERP systems…
It should however never be forgotten that ultimately the Low- or No-Code platforms also generate code. It is just abstracted away for the user.
Some platforms use therefore a code generation approach, i.e. the platforms generate source code as a result, which can still be edited. Of course, once you edit it, you can usually not read it anymore in the Low- or No-code platform. The big advantage is however
that you can still customize where needed, a better technical performance can be obtained and there is much less vendor lock-in (i.e. application can be maintained in a standard IDE and can run independently of the development platform).
Ultimately there is no single 'golden bullet', 'miracle cure' or one-size-fits-all solution. As a software engineer you need to make choices between time to market, flexibility (to meet current and future business needs), total cost of ownership, non-functional
requirements coverage… When favoring one aspect, most often other aspects are penalized. In this scale of choices, Low- and No-Code platforms have an important place, but let’s not expect to throw out our programming languages anytime soon.