In my previous story, I told you about the benefits of using Outsystem for building web applications. This time I want to share with you some drawbacks of it.
It would help if you were a developer
As it usually happens, great flexibility derives complexity. Outsystem development has nearly no limits. But you more likely need to be a developer to build something with it.
It doesn’t mean you shouldn’t touch Outsystems without having any prior developing experience. But it does mean you most likely will need to learn web-development basics as you would do it with any other native development technologies.
Continue on my last point. I want to add that the market doesn’t have a lot of Outsystem Job offers. It means, whenever someone decides to become an Outsystem developer, it would be a bit harder to find a new job. The same goes for companies that would like to hire skilled Outsystem developers. It’s a niche technology with t’s own tiny bubble.
It’s not cheap
Outsystem paid Subscriptions to begin from 3500 Euro/month (at the moment of writing). It sounds costly for a private person but seems affordable for Shadow IT in big enterprise organizations.
I try always to be careful with such kinds of calculations. You never know what would be cheaper to hire a team of developers (for example, Frontend, Backend, and DevOps), with a total salary from 12,5K Euro/month (based on Payscale stats, just an average wage, without any social contributions.). Or to hire simply one Outsystems developer and pay a license?
Working in a big team
Team collaboration is never easy. With Oustsystems, it gets even more difficult. All developers work in the same shared development environment. That means, when I stop my work in the evening, I need to be sure that I didn’t forget to remove any constructions or known issues. Otherwise, I could block my teammates.
That also means, when I need to refactor one or another component, I need to be sure that no one works there at the moment. That is very similar to the trunk-based approach, with one crucial difference: you need to push your changes to the “master” before seeing or trying out your result. In other words, It’s like when multiple people work on the same Server, on the same project Folder with its monitor.
Having multiple teams with shared modules or applications brings other challenges. Releasing those shared components requires a lot of attention and planning in advance.
Every change pushed to the server generates a new version of the application. Thanks to a Single-Push-Button approach, which looks like magic in the beginning. What doesn’t simple is to figure out in half a year why someone changed something here or there? In other words, for the business-critical application, proper changelog history is a must. Unfortunately, Outsystem has neither a “commit” message feature nor an easy way to compare two versions.
When should I use it?
It’s very individual, but IMHO you’ll get the best out of Outsystems when you use it for:
It’s easy to have fast iterations for explaining your business ideas and gather feedback.
- Short time application
Create an App or Website for an Event, Conference, Marketing presentation, or anything you don’t need to support for a long time.
- Small applications
The best example for that would be the Registration app for travelers, that are very common due to all Corona limitations. Doesn’t suppose to be reached on features but could be brought very fast to the market.
- Shadow IT