Low-code platforms & Full-code developers - a match made in hell?
Updated: Aug 16, 2020
Developing enterprise-grade web apps from scratch using open-source front-end and backend frameworks takes a long time. Nowadays, customers are looking for quick and cost-effective solutions and are gravitating towards using no-code and low-code app development platforms. How can full-stack developers thrive in this new world of no-code and low-code platforms?
No-code and Low-code Platforms
Currently, there are a large number of vendors competing in the no-code and low-code market segments. No-code platform vendors include AppSheet (Google), Betty Blocks, QuickBase, Airtable, Bubble, and Microsoft PowerApps. Low-code platform vendors include Microsoft PowerApps, OutSystems, Mendix, Salesforce Lightning Platform, Nintex, Appian, and Pegasystems.
We won’t discuss no-code platforms because they cater to non-technical users for developing simple apps. It’s unlikely that you, as a professional web app developer, will be asked to work on a no-code platform.
Low-code platforms, on the other hand, are used to develop more complex apps. Building a web app using these low-code platforms has several disadvantages for a professional web developer who is used to developing apps using open source front-end and back-end frameworks. Here is a blog post from a professional web app developer about his experiences working on one of these low-code platforms.
Problem-1: No control over source code
Low-code platforms provide a visual metaphor to develop web apps. Even the app’s business logic is implemented by dragging and dropping code control statements such as if/then/else. Therefore, developers working on these platforms have little control over source code. Not having control over source code creates at least two issues: (a) It’s challenging to develop domain-driven apps with complex business logic, (b) debugging problems can be very difficult and frustrating.
Problem-2: Limits career mobility
Working full-time on a low-code platform can limit the career mobility of professional web app developers. They would lose their current technical skills in open programming languages and frameworks and gain skills in a proprietary low-code platform. Suppose this proprietary low-code platform is not widely adopted across employers, which is currently the case for any specific low-code platform. In that case, the developer’s low-code platform skills can only be used at another employer who has also adopted the same low-code platform. This severely limits the career mobility of the developer.
Is there a better option? Yes. Why not build a low-code platform for professional web app developers that satisfies both the employers’ need for speed and developers’ needs for control and career mobility? We are calling such platforms as "open" low-code platforms. How do these platforms work? Read on …
Generate Boilerplate Code
When developing web applications, there is quite a bit of cut/paste/modify work.
Most of the applications use an N-layered architecture. In this architecture, to provide a ReST API for the CRUD operations on a database table (entity), we need to develop code for the entity, the DAO (Data Access Object) layer, the services layer, and the ReST controller layer. Similarly, to create UI screens to allow end-users to perform CRUD operations, we need to develop UI components and a front-end services layer that interacts with the back-end ReST API. Once this work is completed for a single database table (entity), similar work must be repeated for each table of the database schema.
Imagine having to do this for 50 database tables – this is tedious and error-prone work.
A better approach would be to automate the generation of this boilerplate code. To automate, we can develop an application generator that reads the database schema and generates the back-end and front-end code to allow end-users to perform CRUD operations on database tables (entities).
Provide Add-ons for Common App Functionality
Web applications have common functionality that repeats across applications. Examples of such common functionality includes Authentication & Authorization, Document management, Transactional Emails, Jobs Scheduler, User Registration, and Embedded Reporting. Almost every web application I have been involved in developing required each of these capabilities. In each case, my development team reinvented the wheel and built these cross-cutting concerns from scratch because we never thought about building generic and customizable common functionality that can be used across web apps- what a waste of effort & time!
If the base code for such common functionality was already built and available, we can re-use it and customized it as needed for each web application.
Provide Visual Development Tools
Developing enterprise applications involves developing custom functionality such as designing a database schema or domain model, building custom screens for non-CRUD operations, building enterprise-specific themes (colors, fonts), and developing integrations with external systems.
Professional development teams can further reduce the application development time & cost by using visual development tools that accelerate the development of these custom functionality artifacts.
Support Development Team’s Preferred Stack
When developing enterprise applications, professional development teams have specific preferences over open technologies used, such as front-end and back-end frameworks, object-relational mapping tools, UI component frameworks, and dependency management systems. Specific technologies are preferred by teams either because they are the enterprise architecture standard or because most team members have experience using these technologies.
By supporting the specific technologies chosen by development teams, open low-code platforms for professional developers can help and not reduce the acceleration of application development.
The approach mentioned above allows development teams to reduce the time to develop a web app by over 50%, similar to proprietary low-code platforms. Additionally, developers have full control over the source code, eliminating their inability to easily debug problems and develop domain-driven apps with complex business. Finally, developers use open technologies when developing web apps, eliminating the problem of limited career mobility.
In summary, a low-code platform built for professional web app developers eliminates the disadvantages of proprietary low-code platforms while preserving their advantage of rapid app development.