It's easy to treat low-code development and traditional development as an either/or proposition, but the reality is more complex. Low-code and traditional approaches to programming often overlap within the same workflows.
Here's a primer on what low-code means, how it compares to traditional application development practices, and how to integrate it into your business's broader development strategy.
Low-code development basics
Low-code development is an approach whereby a developer implements some elements of an application using pre-coded modules, often selected through a drag-and-drop interface, to build desired functionality. It usually requires some level of custom coding in order to tweak modules or customize the relationships between them. But, in general, a low-code approach enables developers to write many fewer lines of actual code than they would through traditional application development.
The main and most obvious benefit of low-code development, especially for seasoned programmers, is that it's fast. Prebuilt modules reduce the time to implement application functionality, so developers can focus on tasks that require more originality or that have higher priority for the business. Low-code development also can help developers integrate an app with an external platform without learning all the ins and outs of that external platform.
Some advocates also pitch low-code development as a way to turn non-IT personnel into so-called citizen developers. Low-code can make programming more accessible to the masses, but low-code techniques alone don't make it practical for everyone to code custom apps, because low-code typically requires at least some manual coding effort, and an understanding of fundamentals of application design and functionality.
Thus, while democratizing development may be one potential benefit of low-code, enterprise developers and some line-of-business people who have coding know-how arguably stand to gain the most from low-code.
Low-code vs. traditional development
The lines that separate low-code development from traditional development are a bit blurry, for several reasons.
Most enterprise developers have implemented low-code techniques in certain parts of their workflows for a long time, even if they do not consider themselves low-code developers. If an IDE auto-completes lines of code or automatically fills in variable names, for example, that functionality approximates low-code development, although traditional development-tooling vendors rarely position their tools that way.
External modules or third-party APIs that integrate functionality into an application are also basically akin to low-code programming. Even software libraries, a cornerstone of application development for decades, can be considered a kind of low-code development, in that they enable developers to build a complex application with very few lines of manual code.
Content management platforms such as WordPress and Drupal also blur the line between traditional development and low-code, because they support both techniques. You can develop basic websites on these platforms with little custom coding -- or create a simple website with just a few points and clicks and no coding at all. Meanwhile, some heavy-duty e-commerce sites and media hubs build websites on these platforms with extensive original coding.
Thus, most development strategies are best suited to a mix of both approaches. Although various platforms are marketed specifically for low-code development, they likely do not fully meet an organization's development needs on their own.
Traditional development pros and cons
Traditional development offers several advantages:
- Control. Developers have the greatest degree of control over how their code is written and how applications are structured.
- Flexibility. Traditional development can be accomplished using virtually any programming language and development platform.
- Deploy anywhere. Apps developed using a traditional approach can be deployed to whichever destinations developers choose to support.
There are two major drawbacks of traditional development:
- Time. Manual programming is more time-consuming than auto-generated code from low-code tools. It also takes longer to manually tweak code to support multiple platforms, and build sockets and other interfaces between applications and services.
- Skills. Traditional development may require more specialized expertise with a certain programming language or development platform. Still, low-code development also requires special skills.
Low-code pros and cons
The chief advantages of low-code include:
- Speed. Programmers can build apps faster using a low-code approach because it eliminates some manual programming work. Mendix, a low-code platform vendor, claims nearly three-quarters of developers who use low-code tools complete projects in under three months, where a traditional approach can take twice as long or more.
- Reuse. Low-code modules are easy to reuse and share between apps, although this might be restricted to the same low-code platform.
- Cost. Because low-code development is faster, it may reduce total costs for the business.
But low-code is also subject to several potential disadvantages:
- Quality. Low-code apps may not perform as well or be as reliable as well-designed apps created using a traditional approach. Their auto-generated code is typically designed to support a wide variety of platforms and use cases, rather than a team's specific deployment environment or application architecture.
- Customization. Low-code platforms offer less opportunity to customize an overall application or control how it runs.
- Deployment options. Some low-code platforms allow developers to deploy applications only to certain platforms, such as specific clouds.
Use cases for low-code vs. traditional development
The best way to take advantage of low-code is not to choose between a low-code approach or traditional development. Instead, strike the right balance between the two strategies and determine where it makes most sense to incorporate low-code approaches into your workflows.
Here are some common use cases where low-code approaches offer the most value:
- Integrations. Low-code tools can make it easier to integrate an app that you build with external tools or platforms.
- Simple websites. There is rarely a sufficient reason to hand-write HTML, PHP and CSS code for a simple website that consists mostly of static content.
- Business analytics. A low-code approach is often ideal to build dashboards or reporting tools to support business analytics -- in fact, many ERP and business process management (BPM) platforms offer integrated low-code tools.
- Business processes. Similarly, apps that support simple business processes such as customer data collection or vendor contract approvals are good candidates for low-code development. Low-code integrations in BPM platforms make these apps easy to build even for people who aren't professional coders.
When not to use low-code
To get the most out of low-code, it's equally important to know which considerations make traditional development a better approach.
- Security. Low-code is not inherently insecure, but it can be difficult to ensure that low-code apps are developed according to strict security standards. They may also be more difficult to audit because source code is buried under the low-code abstractions.
- Performance. Low-code apps are unlikely to deliver the highest degree of performance. If you want top performance you may need to optimize every line of code, and for this you'll need a traditional development approach.
- Maintainability. If the low-code tools used to develop an app are discontinued by their vendor, maintenance over the long-term becomes a challenge.
- Lock-in. A dependence on low-code may put developers at higher risk of being locked into a particular low-code platform and its ecosystem. They may be able to deploy only to the environments supported by the platform, or encounter difficulties to migrate their codebase to a different vendor's platform.