What I like about OutSystems

Hans Bruins
5 min readJan 16, 2018

--

Ready to deliver an awesome app in 1 click

Click here to share this article on LinkedIn »

I have been working with the OutSystems software for almost 13 years. I still remember the first time it was introduced to me quite well.

In those days, I had started to work for a small company specialised in software modelling. Then, tools were quite scarce, and therefore we were always on the lookout for something better.

When my boss told me we were going to talk with someone from a Portuguese company, called OutSystems, I was surprised. I had never heard of the name (but then again, very few had). My boss had a background in financial services, and this Portuguese company came to his attention since it had attracted some Dutch investors. Also, it seemed that they were active in the software modelling market.

From scepticism to be impressed

I went to this meeting with complete scepticism. In the past, I had worked with several 3GL and 4GL programming languages and had realised that software development, in general, lacked something. I had also investigated several software modelling tools which I found all fell short of my expectations.

Some had a good approach to data modelling, and some had a good way to model the software or the processes. However, no one had a complete solution that all the layers of an architecture were present. My boss (who also shared my vision on software modelling) and I had already seen other products and worked with some, but they all were lacking a complete solution.

We were invited to a Regus office in Amsterdam. Someone with his laptop was waiting for us. The business card showed the name Paulo Rosado. After we sat around the table, he opened his laptop and showed us his product. I was blown away in a few minutes! For the first time, I saw OutSystems and realised that it was the complete solution that I was looking for. Due to the past investigations I had done over the course of years and my attempts to design our own modelling tool, I recognised the value of this software. It ticked all the right boxes.

Of course, it had some shortcomings, but they were minimal in comparison with what the OutSystem’s product brought to the table. It was literally sold to me within 5 minutes.

After that, I went two weeks to Lisbon for training and certification. I remember that WAP functionality was part of the exam, but I had refused to use or study it since it was clearly an outdated standard even then. After some debate, they accepted this and I passed. The next version of OS did no longer contain support for WAP.

What make OutSystems

OutSystems is a complete solution for building web applications. Note that this is quite different from a tool that builds websites: OutSystem is not a dedicated tool to build frontends or websites, it builds web applications. The development environment of OutSystems is called Service Studio, and it runs on an OutSystems platform server. There is also an Integration Studio that deals with extensions and external databases.

Basically, Service Studio has four modelling areas: (user) Interface, (business) Logic, Data, and Processes. You build your data model in Data, drag-drop it in the Interface to generate screens (but you can also build them yourself) and add specific business logic in the Logic area in the form of Actions. And if needed you can create business flows in the Processes area. All of these layers are interconnected; meaning for instance that Logic can use Data, and Interface can use Logic: it is what we call a full stack solution, nowadays.

No more vendor locked-in

Another concern that OutSystems had tackled was the vendor locked-in part. A lot of tools in the past gave functionality to build applications, but then you couldn’t get rid of the tool without sacrificing your application; so you were stuck in an unhappy marriage. This was not the case with OutSystems anymore. Besides working in the OutSystem’s tool you can also code in C# (or Java) to build your own components (extensions), which, via the Integration Studio, you can use later as normal Logic actions in Service Studio. Since OutSystems generates code and pages, it is possible to leave OutSystems completely and reuse the code and pages in your own setting: meaning that there is no vendor lock-in.

OutSystems is visual and modular

Since programming in Service Studio is very visual, relative little effort is needed for documentation. Because (if you’re using a properly developed method) the code is very readable.

Reusable components are created with web blocks or make functionality public, so it can be (re)used by other modules. Support for REST and SOAP services is built in while one can also create and expose his/her own services.

What I also do like about OutSystems is that they have a major version release every year which contains, most of the time, a lot of new functionalities that brings the platform a step further. In general, the OutSystems platform is very stable; I have used Service Studio since version 3.5 and I am impressed with the stability of the product.

One of the major things that I still like, after all these years, is the “1-click publish”. You create your web application and then click on the big green button. You can only publish a new version if there are no logical errors; as long as they are not solved our green button is red. Also, this is the only thing that is needed to publish your web application to the server; there are no build or database scripts to deal with, the platform takes care of all these details.

It has already been possible to create so-called hybrid mobile applications with OutSystems, for some time. In the latest version (10) it got a major overhaul, making it a very good choice for developing your near-native mobile apps. Maybe near-native is not what you want but the big advantage of it is that you can (mostly) change the application without the need for a new version in the app stores!

Out of the box, the OutSystems platform is pretty secure. The penetration tests I have seen so far acknowledged that. The development environment also warns you about certain un-secure patterns in the code.

It is also an ideal environment for fast prototyping, whereafter you can test it out and easily rework it: working with OutSystems can be really Agile.

But maybe, one of the strongest advantages of OutSystems is the ease of maintenance. Currently, maintenance, in general, is the biggest hidden expense of a project. Because the source is very readable and contained (in the sense that all you need is there otherwise it wouldn’t publish) making changes is easy.

I could go on about the advantages of OutSystems, but let’s wrap up here: with OutSystems you have a secure and versatile development environment that lets you create web- and mobile prototypes fast. You have no vendor lock-in and can expand the platform easily with extensions and services. And last but not least, it is at most in its element in an Agile environment.

~If you liked the article, click the 💚 below so more people can see it! Also, you can follow me on Medium, so you get updates regarding future articles!~

--

--

Hans Bruins

Thinker, inker, keyboard extrovert, truth-seeker and ignorance disintegrator