Has this happened to you? You want to build an application within weeks. You find a low-code platform that allows you to build an application with speed, using only a small team of professional developers. After building a custom application you decide to move to another platform. That’s when you realize you are “locked-in”!
The low-code platform you used generated proprietary code and it required a subscription to run applications independently. You have problems with data access and control, as the platform uses proprietary technologies, and code maintenance and access to libraries is a challenge.
Being “locked-in” is a challenge many developers, architects, and application teams face while using or moving applications in different platforms. To address this challenge and understand the extent to which you could be locked-in you need to first ask some of these questions:
- Are the applications built on the platform independent?
- Can applications run without dependencies or do you need a subscription?
- Is the platform open and flexible to allow two-way IDE interoperability?
- Does the platform provide a simple way to access and export data?
- Does the platform help to easily create, share, and consume APIs?
- Does it offer an open-source runtime library, making deeper customizations free from lock-in?
- Is the pricing and licensing option future proof?
Lock-In is Not Binary. It’s not Black and White.
In Gregor Hohpe’s book, The Software Architect Elevator, he talks about how modern ‘elevator architects’ are instrumental in aligning organizations and technology, reducing friction, and charting a transformation journey. When they ‘ride the elevator’ from the penthouse (where business strategy takes place) to the engine room (where technologies are implemented) they understand that the common attribute in system design like lock-in is not binary, it’s not black and white.
The attributes of a “lock-in” come in different dimensions, in the form of a platform, code, or vendor lock-in. The approach to understanding lock-in cannot be in an all-or-nothing manner. It needs to be considered across the application development and deployment lifecycle, at a broader level in terms of business / vendor, platform, and code lock-in. And while the seductive proposition of low-code is to build applications faster with leaner teams, you need to consider the different dimensions of a lock-in to unlock the real value of low-code.
The Real Value of Low-Code is How it Addresses Different
Dimensions of a Lock-In
Platform Lock-In. Can you run applications on infrastructure of your choice?
Once you build an application, the question is does the platform allow you to run applications on infrastructure of your choice, on-premise, private or cloud? How certain are you about the cost of running your applications in say a year or five years from now? To avoid being locked-in to a low-code platform, you must consider how your applications will be run in the future, on what type of infrastructure, and other aspects of accessibility, scalability, and portability.
By supporting hybrid and multi cloud app deployments, low-code platforms allow running of applications on infrastructure of your choice. With the increasing importance of delivering and deploying applications on cloud infrastructure, you can lower infra TCO by leveraging container technology. Docker containerization helps you to manage your IT app infrastructure, faster than VMs, enabling portability of workloads between cloud vendors. Low-code platforms that support cloud-native architecture, and have auto-containerization and application delivery integrated, can help you seamlessly deploy and scale applications on infrastructure of your choice.
Code Lock-In. Can the auto-generated code be extended and customized?
You could get locked-in to a platform in various ways, from proprietary application-level services to control over associated access rights. Moreover, when shifting platforms, exporting and re-importing projects is a tedious affair. With the need to copy-paste code, it makes the development process time-intensive and error-prone.
Given that the majority of the code is auto-generated by a low-code platform, the quality of code, the flexibility to extend and customize is something development teams need to be particular about. Taking a developer-centric stance, low-code platforms adopt a standards-based ‘real code-behind’ approach. This provides extending code in the future and interoperability of code changes across inbuilt editors and external IDEs (Eclipse, IntelliJ).
Distribute applications freely without concerns of being lock-in to vendor-specific frameworks. The low-code platform you choose must be built on an open-standards based technology stack, one that allows you to distribute applications without licensing concerns, and without a lock-in to vendor specific frameworks.
Write and extend custom code in an IDE of your choice. Another aspect of a code lock-in arises when you need to build applications on one platform and use it on a custom Integrated Development Environment (IDE) of your choice.
To optimize application lifecycle management, low-code offers a unique development experience. The IDE sync feature in low-code platforms enables you to mix-and-match custom code written in an IDE of your choice, such as Eclipse or IntelliJ, with the platform components.
To know how you can seamlessly sync project changes between our low-code platform and the IDE of your choice, check out The Studio WorkSpace Sync Plugin. Using this plugin, you can pull the latest project changes made on the platform and ensure they are applied to the IDE code, you can push IDE changes to the platform, and synchronize projects.
Keep in mind that when switching vendors, you are also moving to a new product. You could be locked-in to a product because it becomes difficult to release new features, manage updates, make heavy customizations, configure integrations and setup proprietary extensions.
A low-code platform allows deeper customizations using custom methods and extensions accessible from frameworks, without being locked-in to a product or the platform. With access to an open-source runtime environment and libraries, a low-code platform uses popular frameworks used by millions of developers, making it easier to make customizations and avoid a product lock-in.
Synchronice and track code changes with version control systems. Most development teams also face the challenge of tracking and updating code when version upgrades happen. Every time a version is released, most of the times applications need to be rewritten to maintain the existing extensions and customizations built.
To synchronize changes and track code changes, low-code platforms offer version control services. By using an inbuilt version control system (VCS), you can manage changes to your projects files, including source codes, documentation and web pages. Low-code platforms provide an integrated version control system where you can configure external VCSs such as Gitlab, Bitbucket, and Github.
Business or Vendor Lock-In. Is the licensing and pricing option future-proof?
A business or vendor lock-in is typically what IT teams mean when they say ‘lock-in’. This type of lock-in could happen when you are switching from one vendor to another. Commercials such as support agreements and licensing that you sign up for could get you locked-in to one vendor.
To avoid a business or vendor lock-in, begin with asking whether the pricing suits the requirements and size of your enterprise and if it is future-proof when you want to scale in the future.
Software development platforms have always had some type of proprietary nature embedded. With open source technology like low-code, this has changed. Low-code platforms take an extensible approach to application development and delivery, one that supports open source technologies. That being said, when evaluating a low-code platform, you need to be aware of not getting locked in to the ‘abstraction’. The abstraction of code extensibility, data accessibility, flexibility to customize, and freedom to track and manage components in the application development and deployment process.
How you use your technology will determine its success. Be aware of the types of lock-in.