A low-code development platform brings computers closer to the ways that humans think about problems.
In my last post called “What Is Low-code?” I noted that low-code is all about building software without re-inventing the wheel. I mentioned that it provides a set of tools that work together to help skilled people create value faster and more reliably. This time, I’m going to take a closer look at those tools. And that’s how the question went from "what is low-code" to “what is a low-code development platform?”
What It Means to Be a Low-code Development Platform
Think of the tools you use to build software. There's an IDE, a data store, third-party APIs, at least one development language and, most likely, some kind of framework. Your entire stack - from back-end to front-end - has multiple moving parts. And, each has their own learning curve and integration needs. Now what about deploying and managing your application in production? Think continuous integration, issue tracking, schema migration, monitoring, security, and scaling. A low-code development platform bundles together all those components into a single coherent suite of tools that let you build applications visually. Once built, it then handles the full lifecycle of those applications through test, production and ongoing maintenance. The most sophisticated low-code technology even takes care of dependency tracking; you get immediate feedback on how each change you made affects the full stack of the application.
What Are the Parts of a Low-Code Development Platform?
Each low-code platform has its own take, but there are some essentials that you’ll find in all of them:
- Visual development: A low-code platform lets you draw your business workflows, the user interface and the data models they rely on.
- Automated database integration: The platform transparently converts your data models into relational tables and SQL queries. And, data from external APIs is automatically made available from your application.
- Full lifecycle management: Low-code development platforms ease the headaches of deployment, maintenance and change with a variety of options. The best low-code development platforms, however, offer one-click deployment, automatic scaling and project management tools.
Depending on the platform, you should expect to find everything you're used to in a web or mobile app development environment. Let’s take a look in more detail.
Low-code Application Development Starts Out Visual
As a low-coder, you spend your time in a visual development environment equivalent to Visual Studio or NetBeans. Rather than starting a project by hand-coding, some basic routing or writing a set of failing tests, you draw the shape of your application in four parts:
- Data models: Here you specify the data your application will store and how it will be stored in the database. There are some low-code development platforms that let you pull in existing data models from an external database, such as SQL Server or Oracle; these are well-suited for building enterprise-grade applications.
- External data: Integrate third-party resources with your application, such as REST APIs or your company's SAP.
- Business logic: What is the precise workflow the application needs to follow in each possible scenario? This is the equivalent of writing methods in C# or Java.
- User interface: The front-end, whether mobile or web, that’s presented to the users. For mobile, depending on the platform, you can draw the UI and it'll produce a native cross-platform experience for Android, iOS and Windows.
Similar to MVC?
As you can see, it bears a striking similarity to the MVC model of development. Here’s the big difference, though. In a low-code development platform, you describe what you want to happen rather than prescribing the steps the computer should take. Think of it like this: in C# or Java, your code gives the computer precise instructions for what to do. In SQL, your code describes what data you want to retrieve, but it doesn’t tell the database how to get it for you. SQL is declarative programming and so is the visual development found in low-code platforms.
Dive Straight In
Of course, that’s not the only big difference. With visual development you dive straight into specifying the unique value of your application. What does that mean? In traditional development, hundred of lines of code are lost to retreading the same old ground. As developers, we go through the same rituals each time we start a new project and it can be days before we've created something valuable.
With a low-code development platform, you can have an MVP in a couple of hours. Sketch or import the data model, drag and drop the workflows, draw the UI.
This might not seem like development, but consider the end goal of software: it's to get things done. (More on this topic here.) The visual development inherent in low-code platforms enables productivity almost immediately. There's no lag while you remember the precise rite demanded by your preferred traditional development language. That's not to say visual development can do everything. It's low-code, not no-code. Hand-coding is reserved for when you need to create something totally new. And, with visual development, your brain power hasn't been drained away by the minutiae of 100% hand coding.
Modeling Your World: Automated Data Integration
In a low-code platform, describing your data model is simple:
- Specify data entities (the equivalent of database tables).
- Define the attributes within those data entities (like the columns of a database table).
- Draw the relationships between the attributes (specify foreign key relationships).
When you come to access that data in your application, you call it by name just as you would an object in an OOP language. The real difference is that you can largely forget the mechanics of how the data is stored and retrieved. It’s similar to how an ORM works. However, rather than hand-coding object definitions, and model validation rules, you use the drag-and-drop interface to draw the data model. Integrating with external data sources should be equally as straightforward. If you were developing in C#. you might expect a LINQ connector for an external data store or a library in NuGet to access a third-party API. In the most fully featured low-code platforms, such as OutSystems, it works the same way. Connectors let you access other databases directly or integrate with an enterprise system such as SAP or Salesforce. If the API you want to use has a REST or SOAP interface, the low-code platform will probe the API’s capabilities and make its data available in your application.
Full Lifecycle Management Isn't DevOps. It's PostOpsThe DevOps revolution has done a lot to democratize code deployment:
- Commit to git, push to repo.
- CI triggers, builds, runs tests.
- If tests pass, CI pushes to production.
DevOps and continuous integration have done a lot to tear down the walls that DBAs and sysadmins love to build. Nonetheless, those three steps represent a romanticized view of DevOps deployment. Sure, it works that way for a minor change. But, bring in a database migration or major new chunks of functionality and the ops side can still require just as much effort as the development. So, DevOps has been great, but the admin side of running an application still slows down updates and takes considerable manual effort. Low code’s answer is to skip over DevOps and go straight to "PostOps." Here’s how:
- Roles and permissions: A low-code development platform will enforce who can make what changes and who can push to production.
- Real-time testing: Most low-code platforms will verify each change you make as you develop to make sure it will work in production.
- One-click deployment: You can push even the most complex changes into production with a single click.
- Hands-free scaling: As usage of your application grows, the low-code platform will make use of additional VMS, database shards and so on in order to scale seamlessly to match demand.
The low-code platform handles anything that you’d need to configure manually. As with everything low-code, it's all about getting your unique value onto the screens of users more quickly.
Beyond the Basics: What Sets Low-Code Platforms ApartOne low-code platform is as different from another as C++ is from Powershell. While each ticks off the basics, it’s the additional functionality that separates the toys from the enterprise-scale platforms:
- Versatility: Can you build the application that your business needs or does the platform restrict you to effectively theming pre-built logic?
- Cross-platform: Can a single team create one application that will run everywhere you need it to? For example, imagine creating and maintaining a single codebase that runs on iOS and Android without any additional effort on your part.
- Lock-in: Are you a hostage to the vendor’s fortunes or can you take your functioning application with you whenever you need to? OutSystems generates standard .NET or Java, meaning you can take it with you whenever you want.
- Developer community: Are there others building applications using that low-code platform and will they help if you need it? What does the vendor do to encourage that? Is there a way to share code with other developers, such as with OutSystems Forge?
Ultimately, a low-code development platform should be as flexible and perform as well as a web or mobile app built with traditional development. Whether it’s a simple internal HR app or an end-to-end underwriting system for an insurance giant, the best low-code platforms will let you get straight to building value. And, you'll have right tools at the moment you need them.
At the Heart of a Good Low-code Development Platform
One of the most important differentiators between low-code platforms is how quickly you can become productive. This is partly a function of how well that platform is suited to the problem you want to solve, but it’s also a fundamental of the platform’s own design. Here’s the heart of what low-code is all about: the ability to jump right in and start describing your solution to a problem. A platform that asks you to learn just as much arcane detail as traditional development might call itself "low-code," but it is not delivering that essential descriptive element. At OutSystems, our low-code platform is behind thousands of production applications that have been created by our large and friendly developer community for companies large and small. Whether you’re targeting a Microsoft or Java stack, iOS or Android, OutSystems has you covered. You can rapidly develop enterprise applications that integrate with external services, present slick UIs to users and deploy to production in a single click. Give OutSystems a try today (it's free) and see how much you can build in just a few hours.