OutSystemsDev Zone

What Is Low-Code?

What is low-code? Low-code is a way to design and develop software fast and with minimal hand-coding. It enables skilled people to deliver value more quickly and more reliably.  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.

what is low code full-stack

Low-code is analogous to different things, depending on your mindset. It’s like a bar code in some respects: instead of having a person in every store that sells a product put a price sticker on each item, they simply scan the barcode and set the price. The price can be different for every store, but the setup is the same. Country dwellers can compare it to a combine harvester. Also known as a “combine,” this piece of machinery can cover 150 acres each day, cutting, sorting and separating grains in a single operation. A person with a scythe can usually cut around one acre per day, which still leaves the threshing and separating to be done later.

Low-code is to software what bar codes and combines are to their respective areas: they automate manual tasks that are difficult and time-consuming to free up people to do things that are much more important.

So there’s 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.

Our teams and roles have become ever more complex and specialized; even full-stack developers have their specialties. Take a look at Stack Overflow’s developer survey: self-professed full-stack developers responded that they specialized in C#, PHP, Java, Node.js or other niches. Then there are the DBAs, the test engineers, the Angular/React/Ember specialists.

Much of the software we build follows similar patterns: an HR system and a ticketing system are both CRUD applications at heart. And of course, they’re not the only HR or ticketing systems the world has seen. If we’re being generous, perhaps 10% of each is unique; the rest re-implement patterns seen a thousand times elsewhere.

Low-code describes a family of tools that helps developers leap-frog all those specialized roles, skip the plumbing and re-implementation, and go straight to the unique 10%. Once you’ve seen these low-code tools in action, it’s not surprising that they’re often also called rapid application development platforms.

Here’s what a typical low-code platform looks like:

  • A visual IDE: An environment for visually defining the UIs, workflows and data models of your application and, where necessary, adding hand-written code.
  • A connector to one or more back-ends: automatically handles data models, storage and retrieval; think of it as an ORM on steroids.
  • Application lifecycle manager: Automated tools to build, debug, deploy and maintain the application in test, staging and production.

Beyond those basics, each low-code tool can differ significantly. Some are quite limited and more akin to a visual database front-end, like FoxPro in the 90s. Others, such as OutSystems, give you everything you need to create modern, cross-platform enterprise mobile and web applications.

what is low-code back-end

What Is Low-code Like to Work With?

Fundamentally, building software with a low-code tool 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, rather than hand-coding yet another user management system or writing ten tests before a single line of your app’s code, you get straight to creating something new and valuable.

Let’s compare how we’d create an application using a common web framework to how we’d do it with a low-code platform.

Whether you’re creating with .NET MVC, Spring Boot or Ruby on Rails, you (and your team) go through roughly the same steps:

  1. Figure out the requirements.
  2. Plan the architecture.
  3. Select a back-end framework, some libraries, data stores and any third-party APIs.
  4. Select a front-end framework and hope it isn’t deprecated before you finish development.
  5. Choose your deployment stack, set up CI, create an operations plan.
  6. Create wireframes and prototypes.
  7. Hand code the UI in your chosen JavaScript framework.
  8. Write a bunch of failing tests.
  9. Define your models and hook them up to data stores.
  10. Define and then code your business logic,
  11. Create views that will provide and receive the necessary JSON data to or from the front-end.
  12. Implement your workflows and UI in your chosen front-end framework.
  13. Integrate third party APIs using their published interface or, if you’re lucky, a supported library in your chosen language.
  14. Repeat until the tests pass.
  15. Test for security, performance, quality and user acceptance.
  16. Deploy, patch, monitor, update until the application’s end of life.

With a low-code platform, such as OutSystems, it would look more like this:

  1. Figure out the requirements.
  2. Select any third-party APIs.
  3. Draw the app’s workflows, data models and user interfaces in the visual IDE.
  4. Connect your APIs, usually with automatic capability discovery.
  5. If necessary, add any hand-code either to the front-end or to customize the automatically generated SQL queries.
  6. Test for user acceptance
  7. Deploy to production, then push updates with a single click.

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

Ultimately, low-code is a way for developers to get more done. With a low-code platform, you spend more time creating and less time spinning wheels. Sure, it’s fun to learn the latest faddish JavaScript framework or play with a cutting edge NoSQL data store but while you’re doing that your competitor has an MVP in front of customers.

Low-code isn’t about reducing your value as a developer. Let’s think back to the combine harvester: it makes farmers more productive, but farming still takes a lifetime of skill and knowledge. It’s the same with low-code: it 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?”

About the author

Matthew Revell

When he's not pondering the answers to low-code questions and writing for OutSystems, Matthew Revell heads up Hoopy, the developer relations consultancy he founded. He also runs DevRelCon, the developer relations conference. the DevRel blog and DevRel Jobs.

Comments

Excellent article…

Mário Araújo

Thanks Matt!

Pedro Miranda

Great article! I like how Outsystems manages to put in practice this design, that’s the real challenge.

Mário Araújo

Thanks Pedro!

Tuxedo

Fast in development BUT
ALSO VERY SLOW in execution…
And restrictive what yo can do.

Mário Araújo

You are spot on with your comment Tuxedo.

At OutSystems that a huge engineering challenge and our team works hard to keep OutSystems Platform open so that developers can extend it when needed.

For example – you could use the platform’s APIs or extend it with your own code – both for front-end and backend.

Take care!

Leave Your Comment