I am not satisfied dragging and dropping

If you haven’t heard already, OutSystems is a low code platform designed to build applications quickly. They have rapidly grown over the years and especially after receiving a funding round of 55 Million from North Bridge Growth Equity. Needless to say, there is a market.

At a previous company, I was sent to an OutSystems training course at their headquarters in Atlanta and spent a lot of time with the platform itself. I built Android apps, IOS apps, web services, and web applications with the tool. Dude, aside from what I just tole you, that trip was so much fun! I have to give a shout out to some of the people I used to work with because they were awesome.

Anyway, the point is I have had a lot of experience with the OutSystems application so my opinions are relevant!

Work became… Miserable

After returning from the headquarters where I did a week of solid training, my company decided to pull me off traditional coding (C#, .NET Core, Angular, TypeScript… ya know, the fun stuff) and put me full time on OutSystems to build a mobile and web application. IT. WAS. HELL.

To begin with, you do not have control over things like you would if you decided to build an application from scratch. For example, some UI elements in my apps would work sometimes and then other times they wouldn't, not to mention the version of OutSystem platform (yes, there is a platform side to it as well) did not have a debugger. So, I was building apps without a true way to identify issues and fix them. You see, OutSystems consist of two parts: server platform and the client. Unlike Visual Studio, where you could debug your code locally on your machine, you cannot do that in OutSystems. In OutSystems you have to publish your code to the platform server and then debug it remotely. So, if you are going to do any dev work then you have to have an internet connection. Speaking of debugging, there was so much going on under the hood that I didn’t know what was wrong with the app and what was causing it to not work correctly. My boss would ask me why it is not working and I literally did not know because their is so much that happens under the covers.

But, that isnt the only thing I did not like. I remember I would get exceptions and errors when running my app. If you get an error when building an app the fun way, from scratch, then you can pretty much narrow down the issue and go in and fix it, no matter how low level. Well, that is not the case with OutSystems. In OutSystems, if you get an error after it succesfully built in the platform then 99% of the time you had to put in a support ticket. This happened so many times. I can remember when they offered group meetings every week just to solve issues that people had with using the platform. These group meetings with OutSystems were almost comical. Not just developers, but really smart developers would be in these meetings asking how to show a map on the screen, how to use custom HTML within the UI, I even heard one dev ask how to use Angular within OutSystems. I remember answering and saying “just build the app in Angular instead of OutSystems”. Yea, that comment wasn't received well by upper management who happen to be in the meeting.

So, as I worked with OutSystems it had been months since I had touched any code. I felt like one of those people who just show up, get a paycheck, and then went home. Honestly, anyone can be an OutSystems developer. I begin building a startup on the side because my brain become so disengaged at work. Needless to say, I ended up leaving that company soon after. Don’t get me wrong, it was a good company with good intentions but I can’t do boring stuff all day. I have to be building, learning, and thinking. This is important because if your employees are building, learning, and thinking, then the company is most likely going to grow.

Why I Left

OutSystems ruined the dream and hope I had for this company. It seriously put a stop on my journey to becoming a top Software Engineer at an innovative company. I joined the company to take on a challenge, learn more about engineering, and build unique tools to solve business problems. Instead, I was stuck dragging and dropping components to build mobile and web apps, calling OutSystems customer support to see how to convert an integer to a string, it was so annoying. I feel like the company I had worked for was approached by OutSystems sales and had a spell cast on them. They were just told they could get the apps out the door and into production quicker, but were never told the quality, maintainability, and scalability of the apps would not be good. Always remember this:

You can have it good and fast, but it is not going to be cheap. You can have it fast and cheap, but it is not going to be good.

have your pick. You can have people that don’t know much about software development throw you together an app using a “Rapid Development Environment” or you can have people that are head deep in code, have full control over issues that arise (outside of the scope of frameworks, etc), and that are engaged at work.

The Bright Side

Don’t worry, I was not going to leave this article full of negativity. The positive side is if you have never worked with programming languages before or are just learning to program, then picking up OutSystems will most likely be easy for you. It is also good if a company is wanting to find someone that does not have a lot of experience in programming and wants to get them in, train them up, and pay them a lower amount than an actual programmer.

Let’s face it, it sounds good to upper management when a company tells them that they can get an application out the door in half the time and half the developers at a higher quality. If you believe this then please refer back to that grid I showed you earlier and pick only 2.