A day in the life of a low-code platform user is not unlike that of a professional developer in a traditional, full-stack role. But consider what your day would be like if you could take many of the “I wish I could’s” and “I wish I didn’t have to’s” you encounter daily and make them your reality. Likely, you would spend less time on things you dislike doing and more time on things you enjoy doing.
That’s what it’s like using a good, low-code platform.
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. Some low-code development platforms allow you to pull in existing data models from an external database, such as SQL Server or Oracle. These platforms 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, presented to the user. For mobile, depending on the platform, you can draw the UI, and it will produce a native cross-platform experience for Android, iOS, and Windows.
As you can see, it bears a striking similarity to the MVC model of development. Here is 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.
Of course, that’s not the only significant difference. With visual development, you dive straight into specifying the unique value of your application. What does that mean? In traditional application development, hundreds 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, and draw the UI.
This might not seem like development, but consider the end goal of software: it’s to get things done. 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 entirely 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 in 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, 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 PostOps
The 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 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.
{{ parent.title || parent.header.title}}
{{ parent.tldr }}
{{ parent.linkDescription }}
{{ parent.urlSource.name }}