Will Low-Code cause unemployment and devastation among developers or is it just the next new hype?
In our attempt to evaluate the threat of Low-Code to software engineers, we — a group of adventurous developers at Comsysto Reply — decided to dip our toes into the Low-Code platform of OutSystems. Would we need to polish up our resumés in order to find that second leg to stand on after becoming obsolete as developers? Or is becoming a Low-Code expert the way to go?
We began with a Jump Start Training organized by OutSystems introducing us to their platform and demonstrating how it can accelerate building web applications employing full-stack visual development. During the session, we experimented hands-on with their IDE called ServiceStudio. We were impressed when we had a running web application put together within two hours, including a frontend, backend, and database. We deployed it to the OutSystems cloud within seconds and could immediately open it in mobile-view on our smartphones.
But everything seems always great when following along a perfectly prepared tutorial with the solution directly at hand. We decided to go a bit further and evaluate some aspects we believed were critical for productive usage. Three critical areas came to mind: UI customization, integration with external systems, as well as role-based authentication and authorization. But how to start?
Before we could integrate data from another application, we needed some piece of software that would hold and display the data. When creating a project with OutSystems, one can choose between a reactive web app or phone app setup. These projects come with predefined modules like login or menu screens, but it is also possible to use customizable modules to create software elements that can be easily reused. To be quicker, we decided to go for a prepared setup.
Building with OutSystems, you get a modern UI design out of the box that provides a wide range of layout options. As we gathered from our Jump Start session, we could use an existing template with the click of a button that already provides a product gallery container well suited for our use case. Besides, using provided templates, it is also possible to create your own templates contributing to the re-usability of UI elements.
With the Theme Editor, you can choose your own color pallet or have it auto-generated based on a supplied icon. The font style, spacing of elements, and their borders can also be adjusted. Further, the CSS used by OutSystems is accessible and modifiable to make changes to the overall application or the currently selected screen by overriding properties in the supplied sheets.
When designing single screens while no data is yet available, OutSystems supplies dummy data with the provided templates, so that you get a first feel for how your application will look when all parts come together. A so-called Widget Tree gives you a good overview of the elements and their dependency within a screen.
But especially for customer-facing applications, UI customization is often a critical factor. Though OutSystems provides many pre-existing components and design features, it still feels that customization — especially for corporate designs — is limited. With the Theme Editor, we could only select three colors for our pallet and the interaction of the style sheets was not very intuitive. In addition, we were missing SVG support which is important for sharp-looking images.
To evaluate the effort of integrating a piece of software built with OutSystems into existing infrastructure, we decided to consume a public REST-API of a webshop.
The platform provides a standard REST integration (next to a SOAP integration) which easily lets us consume a resource by supplying the resource method and its URL. By submitting nothing but a sample JSON response body, a data structure was auto-generated that would hold our expected data. Next, we created an action with an output parameter per mouse click and assigned it the data structure, and bam… we were consuming products from a REST-API without writing one line of code.
Though it felt awkward as code-loving developers, we were thrilled to see that we could consume a GET endpoint returning a list of products in just a few clicks.
However, in the short period of time we had, we were experiencing some trouble figuring out how to communicate with another API that requires authentication. For example, we were not sure how to set an environment variable within the IDE. But, we believe, this as well as many other complex constructs are feasible by integrating high code using the Integration Studio by OutSystems. Another alternative might be using a plugin from Forge, which is OutSystems’ community repository for open source components.
As web applications like online shops or administration dashboards always require their users to authenticate to grant them different access levels, we decided to check out what OutSystems offers in terms of user management. Here, OutSystems provides an administration interface to manage all end users per cloud environment account. The users can be assigned to a specific application that is built within the OutSystems infrastructure. But in case an existing identity provider is preferred (e.g. Azure AD), one can simply configure the external authentication provider in LifeTime, the application for lifecycle management as well as IT user management.
We decided to create a simple test user in the user management tool provided and assigned him to our application. Now, it was easy to log in with our test user since a login screen with the needed logic is provided out of the box. But our test user was not just a regular app user, we decided he should have a special role and see special features in our application. How could we, without writing any code, make that happen?
Well, we added a new user role via ServiceStudio. We only had to give it a name and already we were supplied with some handy functions to verify, grant, or revoke the role. The user role was instantly available in the user management tool and we were able to assign it to our special test user. Now, locking or unlocking a screen for a certain user was just a tick of a checkbox per user role. Further, we could even show or hide single elements on a screen by applying an if-element with a condition to check for authorization.
However, while becoming familiar with the platform and its IDE, we noticed some frustration when searching the documentation and the web for step-by-step instructions on how to set up user management. As we believed this a typical use case and crucial to most software systems, we expected this to be explained in detail.
To sum it all up: Yes, as a full-time developer, the outlook of working with an IDE assembling an application only through clicking, dragging, and dropping UI elements around is not very attractive. But, when looking at it from a business perspective, it is definitely suitable for PoCs, MVPs, and projects with a tight budget. Without a large financial investment, you can present a sleek-looking mobile or web app in just a few clicks to the customer. And we all know, no matter how intricate and elegant your code is, what impresses most is a clean and sharp design.
As demonstrated by our first attempt at building an online shop, it also seems to hold some value for integration into an e-commerce platform. We would even consider it to be an option for use cases with a focus on accessing, displaying, and manipulating data, such as simple ERP-Systems in the public sector, where the financial budget for developing modern applications is usually very limited.
Our curiosity is definitely sparked and we are willing to test OutSystems further. As of right now, we do not see it as a threat, instead, it could be a supporting tool for fast PoCs, marketing pitches, and simple applications for our customers, but who knows what the future holds? … And polishing up that resumé is never a bad idea.
You want to find out what other tools we at Comsysto Reply apply and what services we offer? Visit our website: https://www.comsystoreply.de/services
This blogpost is published by Comsysto Reply GmbH
Innovation through insight.

Innovation through insight. Thinking lean and moving agile when delivering software products for the digital era.
Written by

Innovation through insight. Thinking lean and moving agile when delivering software products for the digital era.


Leave a Reply