Guide to evaluate Low-code platforms
The purpose of low-code platforms is to enable collaboration and accelerate the speed of application delivery and quickly bootstrap. In addition to that, low-code platforms also empower app developers with pre-built engineering features and reusable components that will help develop and deliver scalable apps
With lots of low-code platforms available in the market to build apps, it is very confusing to choose the right platform that fits your current and future requirements. It is very important to understand the platform features and the learning curve within your organization. IT departments spend months evaluating and choosing the right platform. The general approach in evaluating a low-code platform is training, discovery, estimation, followed by a POC.
This blog provides an overview of the various capabilities low-code platforms should have to build high performing, extensible, and future-ready apps. You can use the following checklist to evaluate various low-code platforms and select the most appropriate platform to serve your current and future needs.
Essential Modules
The most essential and minimal set of components that must be there in any low-code platform are a visual development environment with drag and drop utilities, pre-built UI components & binding to a data source.
Role-based access to UI components such as widgets and pages is an essential capability in low-code platforms. Most low-code platforms provide an easy way to hide or show certain sections of the page, or buttons based on the user role. However, you have to pay attention if this matches your use case. If you have a use case, where data has to be filtered based on the role, say you want to show all employees that report to a manager in the organization, ensure you can achieve that without custom coding.
Evaluate the platform for web accessibility if you have strict requirements on UX and visual guidelines to accommodate people with disabilities (ADA compliance etc). Building consumer apps with fancy visual designs need a thorough evaluation.
If you are building an enterprise app, workflow and process requirements are inevitable. Make sure that the platform you choose has a way to quickly build workflows.
Auxiliary Modules
Auxiliary Modules do not contribute directly to application/business logic. They accelerate software development by providing shared libraries. The scope of such libraries is to address generic application concerns such as transport, security, connectivity, and logging.
Low-code platforms generally allow application developers to extend the components by adding custom code. But as a best practice, the application developers should not add business logic. It simply violates the purpose of extensibility and the single responsibility principle. Examples of customizations that are permitted in auxiliary modules include integration with IAM that is not supported by the low-code platform, extending SSO to map org roles to app roles.
Integration Modules
While stand-alone apps make a good use case for a POC or an MVP, integration with upstream or downstream systems to share data and events becomes important for enterprise agility. One of the use cases of low-code platforms is to enable IT to build Apps to improve operational efficiency. Most companies use several kinds of software and data systems. The availability of a catalog of connectors is a must-have feature of a good low-code platform.
Reusable Modules
The reusability principle states that “components should be easy to reuse.” There are plenty of benefits with reuse including, increased productivity and quality. Most Low-code platforms allow app developers to build custom reusable modules/components. For example, if there is address validator functionality that is to be implemented in multiple pages across the app, a UI component with address information & validate button which integrates with APIs provided by vendors such as usps.com or google will significantly reduce the effort (code and quality). The reusable components can be used as infrastructure pieces than be used in more than one app.
Collaboration Modules
Collaboration is the focus of low-code platforms. Therefore, all low-code platforms support the collaboration of team members throughout of the box support to various version control systems such as Github, bitbucket, etc. Successful development processes require cross-functional teams to be able to independently develop, build, deploy and test crossing technical barriers.
With visual drag and drop editors to build the front end, UX designers can work on the design using the low-code platform and the developers can add the required logic to make the page fully functional. Low-code platforms are tool kits that an entire team can use and productively participate in the app development.
Deployment Modules
As I stated earlier, rapid development and deployment of apps to end-users is the primary goals of low-code platforms. The ability to deploy the app to various environments (dev, QA, stage) and ultimately release to production should happen effortlessly through built-in deployment and life cycle management processes. Most low-code platforms have the ability to configure cloud-based automated deployment. The ability to support container deployment tools such as Docker and OpenShift / Kubernetes multi-container deployment is a must have to build scalable apps.
Finally, a few other pointers to consider in the evaluation of low-code platforms are -
- Ensure that the platform you choose has a big enough community to discuss best practices
- If you are considering a low-code platform for legacy modernization, make sure you have a well-thought data migration plan
- Ensure that there is no vendor lock in and you can walk out with the assets you have built at any time.
- Prefer platforms built on open source frameworks to eliminate vendor lock in & allow extensions
- Platform cost, licensing terms in short term and long term
The Mendix-Center of Excellence at coMakeIT has certified Mendix developers with extensive experience in working with customers to help analyze requirements, and rapidly develop/deploy applications. We will be delighted to talk to you and share our insights and expertise should you have any questions.