What is low-code? Low-code is a way to design and develop software applications fast and with minimal hand-coding. It enables skilled people to deliver value more quickly and more reliably. Using visual modeling in a graphical interface to assemble and configure applications, developers skip all the infrastructure and re-implementation of patterns that can bog them down and go straight to the unique 10% of an application.
Low-code is analogous to manufacturing cars in some respects: most of what was once done by hand is now automated. The machines involved in the automation don’t decide what the car looks like, but they do accelerate the assembly and delivery process.
Low-code is to software what assembly lines are to the auto industry: both automate manual tasks that are difficult and time-consuming to free up people to do things that are much more important.
So, is there one answer to "what is low-code?"
No Really, What Is Low-code?
Okay, time to get away from analogies and down to the business of really answering "what is low-code?" In the software world, we rely on libraries, APIs and third-party infrastructure so that we can focus on delivering the unique bit of value that wouldn’t otherwise exist. But we still get bogged down.
Low-code describes a family of tools that helps developers create complete applications visually using a drag-and-drop interface. Rather than writing thousands of lines of complex code and syntax, low-code platforms allow users to build complete applications with modern user interfaces, integrations, data and logic quickly and visually.
Here’s what a typical low-code development platform looks like:
- A visual IDE: An environment for visually defining the UI, workflows, and data models of your application and, where necessary, adding hand-written code.
- Connectors to various back-ends or services: Automatically handles data structures, storage, and retrieval.
- Application lifecycle manager: Automated tools to build, debug, deploy, and maintain the application in test, staging, and production.
Beyond those basics, no two low-code tools are exactly alike. Some are quite limited and more akin to a visual database front-end, like FoxPro in the 90s. Some focus on niche business needs, like case management. Others have adopted the low-code term to describe a purpose-built tool that has little to do with actual application development.
Others, such as OutSystems, give you everything you need to create modern, cross-platform enterprise mobile and web applications with capabilities that complement existing team structures.
What Is Low-code Like to Work With?
Fundamentally, building software with low-code is the same as building software any other way. Unless you’re writing everything from scratch in machine code—and, no, assembly language doesn’t count—then you’re already taking shortcuts built on the work of others.
With low-code, it’s all about the things you don’t have to do. Rather than hand-coding yet another user management system, dealing with the idiosyncrasies of the latest programming framework, or writing ten tests before a single line of your app’s code, you get straight to creating something new and valuable. Why start new when these problems have already been solved and the patterns are well understood?
Let’s compare creating an application using a common web framework to creating it using low-code.
The Traditional Application Development Process - Whether you’re working with .NET MVC, Spring Boot, or Ruby on Rails, you (and your team) go through roughly the same steps:
- Figure out the requirements.
- Plan the architecture.
- Select a back-end framework, some libraries, data stores and any third-party APIs.
- Select a front-end framework and hope it isn’t deprecated before you finish development.
- Choose your deployment stack, set up CI, create an operations plan.
- Create wireframes and prototypes.
- Write a bunch of failing tests.
- Define your models and hook them up to data stores.
- Define and then code your business logic,
- Create views that will provide and receive the necessary JSON data to or from the front-end.
- Implement your workflows and UI in your chosen front-end framework.
- Integrate third party APIs using their published interface or, if you’re lucky, a supported library in your chosen language.
- Repeat until the tests pass.
- Test for security, performance, quality and user acceptance.
- Deploy, patch, monitor, update until the application’s end of life.
The Low-Code Development Process - With low-code it would look more like this:
- Determine the requirements.
- Select any third-party APIs.
- Draw the app’s workflows, data models, and user interfaces in the visual IDE.
- Connect your APIs, usually with automatic capability discovery.
- If necessary, add any hand-code either to the front-end or to customize the automatically generated SQL queries.
- Test for user acceptance.
- Deploy to production, then push updates with a single click.
Seven steps instead of sixteen.
Low-code understands that most of the time spent hand-writing code in web and mobile apps is pretty much wheel spinning. There’s no need to tread the same path each time we start a new project. Low-code lets us create applications visually using battle-tested fundamentals. Our focus becomes delivering something valuable to the world.
Low-code Is About Getting More Done
Low-code isn’t about reducing the value of developers. Low-code lets teams of developers produce more value more quickly while drawing on their understanding of how to create and maintain high-quality web and mobile applications.
You can try low-code for yourself with OutSystems. Get started for free by following our tutorials to build web and cross-platform mobile apps in a fraction of the time you’re used to. You'll also be able to help out the next person who asks, “What is low-code?”