What are the disadvantages of Outsystems?

What are the disadvantages of Outsystems?

  
I know a lot of advantages using outsystems since I been using it for almost 2 years. It makes me wonder what others think on the Disadvantages for using it?
 
The cost of using Outsystems really is'nt a joke. A company really needs to invest a lot for using it. It may lead to a lower salary for developers just to budget the company's resources (like our case)
 
Developers may become platform dependent and not all companies can afford using outsystems. Which means going to a different company can be hard because you need to refresh your memory on the semantics of other programming langguages.

Sorry for openning this topic here. Please give your unbiased comments and advise.
anyone please help give your advise.
There are a few disadvantages to the platform:
1. If you have a development street (dev,test,qa,prod) and you want productional data copied to your dev environment. Good luck

2. It is not as non-vendor locked as stated.
There is an outsystems library used to translate objects you have created.
Working with the real VB code is not-done; all the items have a unique code which makes it very 'abstract' to work with this code.
3. There is a lot of overhead as your application grows and also the Html code in which more complex pages result is pretty heavyweight.

4. The community widgets aren't adopted in the platform, making you dependant on the effort of someone to support the when i.e. you upgrade. They don't come supported
I have more but my iPhone 5s keeps crashing on the HTML input widget :)
Disadvantages compared to what?

I agree with most stuff what Eric said, but I can give multiple counter-arguments as well.

In the end it's all about the bottomline.
what have you gained in 1-2 years business-value wise?


The bottom line isn't the question in this thread. ;)
Actually I think outsystems could get an amazing system improvement if they would build the platformserver from scratch (e.g. webserver + interpreter).
Welcome to the forums, José!

This is actually a great topic, and I'm hoping to see some insightful comments here.

Eric, I didn't understand your second point. Could you detail a bit?

Cheers,
Miguel
I have worked with Outsystems now for 7 years. It is a great product however, with all things in life there are some disadvantages to it. Since you're working already 2 years with it, I expect that you have already encountered some of them.
 
On the other side; what I see as disadvantages of OS aren't necessary the ones you'll probably think of. So, it is my personal view and kind of a subjective matter.

Eric has pointed out some good ones already. I have some little points to add:

1. The release cycles: every new release has new things you need to learn. You also need to forget some old ways of working since the new stuff will replace that. What you need to learn is hardly documented. 
 
2. While OS is a marvelous product not many companies (are smart enough to) use it. This causes the problem that you are a skilled OS developer but have very few companies to work for.
 
3. OS markets its product as a way to create apps fast. Personally I think that this is not the strongest point of the software (as is easiness, maintainability and security). You can do rapid prototyping but you can't skip on the think/design time. Besides: rapid is good, stable and bugfree is much better.
 
4. Creating a nice UI is still difficult. While this has come a long way, we still see that it is difficult to interact with external graphic designers.
 
5. In a webapp build tool it is strange that css and javascript are still underrated options. There is for instance no syntax coloring or checking for JS. On the other side; it is strange to have to deal with text based languages in a visual programming environment. This was one of my complaints 7 years ago and it still is :)
 
6. I think it does not appeal to the hobbyist due to the way OS sells its products. Personally I think this is a hugely overlooked point. My next point is related to that: there is not really a good community. 
 
7. The visual approach is wonderful but forces the developer also to take good care about the naming, comments, etc. Without it, it can be surprisingly hard to read code from other developers.
 
8. I would love to see the OS visual approach to other things and programming languages. I think this is a missed opportunity of OS.
 
I work with a company where investing in OS software is approved by the mother company but investing in their own developers isn't. So, in a sense I am in the same boat as you :)
 
I disagree completely with Eric's #1 regarding dat from prod to dev. I do it quarterly, and there is some very good documentation explaining it as well. It's not as smooth or as simple as I'd like it to be, but it's not a "good luck!" story at all. Re #2: it generates C# code, NOT VB code. Important difference. :D

J.Ja
I truly appreciate your comments, I am really having a personal crisis, weighing scales on staying at my Company that uses Outsystems or going to different companies. 

As I mentioned, I've been using Outsystems for almost 2 years and I truly can say that I have learned a lot specially on the understanding Customers. I became really good in writing SQL Scripts because of using Stored Proc's, Functions, Views just to minimize the Software Units. I am truly thankful for the opportunity of having Outsystems as the first platform on my first job as a developer. 

It's really tough thinking about this, Could it still be worth it if you stayed at a company wherein you can deliver great projects and deliver fast with a low salary and knowing that other companies requires other programming langguage as your experience because of the fact that they can't afford great platforms like Outsystems.

Sorry for posting this on this great community,
Miguel Ventura wrote:
Eric, I didn't understand your second point. Could you detail a bit?

Cheers,
Miguel
Miguel,

To answer your question.
Every entity, structure etc. you create has a cryptic reference in the code and so have several different objects you create within the platform.
The technical 'bottom line' on the question "Is there a vendor lock-in" is formally a NO.

Looking at the resulting generated code and quality of this code in terms of a practical situation; e.g. readability and general extensability / maintainability, it is in programmer terms 'crap'.
The consequences of 'letting the platform go' means in practise that the effort of e.g. implementing an extra attribute is huge (this is way, way more work and way more complex than if you've written the code from scratch)
Justin James wrote:
I disagree completely with Eric's #1 regarding dat from prod to dev. I do it quarterly, and there is some very good documentation explaining it as well. It's not as smooth or as simple as I'd like it to be, but it's not a "good luck!" story at all. Re #2: it generates C# code, NOT VB code. Important difference. :D

J.Ja
 I can agree with you on the scenario that you if have; a quarterly PROD to DEV and a limited scale
environment this will probably be worth the effort.

When I'm adding to the equation:
- 8+ database catalogs each having at least 30+ entities
- 21 E-space modules with different versions in Prod and Dev
- Accurate OLTP information needed so at least a weekly, automated 'clone'
- Database constraints
- A changing environment (adding entities and attributes so actually trying to fill data on a different database schema)

 We have created a manual approach with a lot of automation to the reach the above.
The existing users structure is a pain including having a load of constraints, so if you want a scalable environment you will NEVER actually reference the UserId as it is provided by the platform (We use the full account name in every E-space instead).
Matching the tables is doable but overall looking at a DEV / TEST / QA / PROD street; this really could need work.

Above 'issues' consist of two 'types':
1. Complexity (something the platform 'knows' more about)
2. Quantity (something IT should solve for you in any case)

This is the reason why I think I can say managing large datasets over several platform
servers is a pain and could and should for a very large part be solved by the platform.

It's not like I'm stating this because I know another platform that does it.
I'm stating it because the Outsystems Platform has reached a state that it covers the main 'difficulties' other platforms don't cope with very well.
The fact that the management of datasets over the several environments hasn't been covered yet and adequate is bringing the platform out of balance imho.

The question on this thread is very clear and I don't think the platform is the holy grail I even think it is out of balance for some part and to regain it's balance major steps should be taken.
- Adoption of common widgets that provide expected functionality of the Outsystems platform into the platform with proper support.
(Without the community created widgets I know none of our applications could work properly)
- A simple but full configurable SOAP implementation support (including things like XSD, proper mapping features etc)
Yes you can use XSD validation, but this should be default and supported, documented etc.
Take Tibco Businessconnect as an example
- Reporting / output handling functionality
There is no proper method to things like handle prints on different paper forms and print to a printer using a specific drawer etc.

I could go on and on with things we are buying separate software for because there is not enough 'coverage' in the platform.
Maybe I need to lower my expectations.  

The platform still has a lot of challenges to overcome to reach the holy grail status :), especially when looking at enterprise
setups there is not enough professional coverage of common techniques / needs.
I can totally relate to what Hans Bruins stated.

It might seem though that I've only got comment on the Outsystems Platform but mind you that this is not the case.
I even think that bringing simplicity to the design environment enabled me to think on a higher level than I did before, creating a better understanding of complex business situations and managing to simplify them.

The fact that we are actively using the platform and run into it's 'edges' means to me that we're using it to a large extent.
“Sorry for openning this topic here. Please give your unbiased comments and advise.”
 
Don't be sorry, what you mention here is an issue that most of us have to some extent.
 
About the low salary: in the past I have switched jobs because I could get paid more. However, it was one of the most unpleasant environments I have worked in. After that I decided that a bigger payment is great but having pleasure in your work is much better.
 
You have learned of lot SQL which is valuable thing to have because a lot of programming language have a relation with databases. In fact, I know jobs where good SQL knowledge is the main aspect.
 
You can also try to start learning a new language besides OS in your spare time. This is how most of the software engineers learn new languages anyway. Choosing one can be tricky but there are some obvious ones: if your OS environment is the .Net variant you can play around with C#. If not or otherwise, learn some Java: in a report I read Java developers are still the most demanded programmers. If you already know some Java, try Scala. I am going to learn that myself in the next couple of months :)
 
However, said all this, keep in mind that the current software engineering market is fragmented. With that I mean that it seems that you can't survive on 1 language, especially when dealing with web applications; html, xml, css, javascript and all the needed libraries or frameworks (tedious job..), asp, .NET, some PHP, python, etc. And that is just the development side of the process, there are also specialized languages, libraries and frameworks for testing and deploying your product (Ant, Make, etc.).
 
That wild field tells me personally that there is something wrong with the current software development but if you're a quick learner it probably will not bother you. However, it also tells you that OS has some strong advantages with its clean development, publish and deploy cycles : ) 
Eric Oud Ammerveld (Running PS version 7.0.1.7) wrote:
There are a few disadvantages to the platform:
1. If you have a development street (dev,test,qa,prod) and you want productional data copied to your dev environment. Good luck

2. It is not as non-vendor locked as stated.
There is an outsystems library used to translate objects you have created.
Working with the real VB code is not-done; all the items have a unique code which makes it very 'abstract' to work with this code.
 Eric, we've developed a nice data-staging tool :-) so no disadvantage anymore for us !!
 
Joop Stringer wrote:
Eric Oud Ammerveld (Running PS version 7.0.1.7) wrote:
There are a few disadvantages to the platform:
1. If you have a development street (dev,test,qa,prod) and you want productional data copied to your dev environment. Good luck

2. It is not as non-vendor locked as stated.
There is an outsystems library used to translate objects you have created.
Working with the real VB code is not-done; all the items have a unique code which makes it very 'abstract' to work with this code.
 Eric, we've developed a nice data-staging tool :-) so no disadvantage anymore for us !!
 
 Hi Joop,

The fact that you have created it and Outsystems hasn't says to me they are missing something on the platform :)
Ofcourse we have also created something, but it should be more simple and more solid and 'attached' to the platform.
 :)
 
Life is too short to get up every day and not do something you love. We're thankful for every developer in our community, but if you "break up with us" we'll go drown our sorrows in some ice cream and move on. :-)

Or, perhaps even better, you could try to sell your new company on OutSystems, and then you'll be the resident expert and suddenly worth twice as much!

:D

Good luck!

Jose Cuervo wrote:
I truly appreciate your comments, I am really having a personal crisis, weighing scales on staying at my Company that uses Outsystems or going to different companies. 

As I mentioned, I've been using Outsystems for almost 2 years and I truly can say that I have learned a lot specially on the understanding Customers. I became really good in writing SQL Scripts because of using Stored Proc's, Functions, Views just to minimize the Software Units. I am truly thankful for the opportunity of having Outsystems as the first platform on my first job as a developer. 

It's really tough thinking about this, Could it still be worth it if you stayed at a company wherein you can deliver great projects and deliver fast with a low salary and knowing that other companies requires other programming langguage as your experience because of the fact that they can't afford great platforms like Outsystems.

Sorry for posting this on this great community,
 
 
Hi all,

Anyone who has talked to me knows I'm a full blown enthusiast/evangelist of this platform, having said that... the licensing model of the platform is the only real issue for me. Its really difficult to pitch it to any new client! The whole SU's + limited number of users + base Price/year + "you don't see the code but it exists" is really tough to sell!
But once you sell it the client almost instantly sees the value in it.

Cheers,
Hermínio Mira

Hey guys... After 2 years and a half since the last post in this thread, what about to make a retrospective? I'd really like to know: Wich of the above points continues to bother the comunity?
Still the price.

In my dev team, we want to use OS for everything that doesn't fit into the Sharepoint Portal category. But from the manager level upwards, all they think about is SUs.
Sometimes when I get asked to do something that "is very quick and easy" (and you know what that means) I do it in OS and say something like "you were right, it only took 30 minutes and 3400 SUs" to raise awareness that fast and well, there is only one way. Most of those apps are for little use to none and can be discontinued in less that a year so the SUs is a non-issue.
When we talk about bigger apps, the moneyfocused mind say that it's better to hire someone to spend some weeks doing it in .net, then rehire to do any possible change (for a time period that can be of years), instead of hiring someone to "drag some balls into the screen" that anyone can read after a day.

If the cost were smaller, there would be no discussion. This way, we have a discussion almost every month that years later I mathematically win. It also feels good, but I'd rather have fun doing it, than waiting to say that in OS it would have been better and cheaper.
Well, I think I can contribute on the following areas:
1 - it is hard to work on hierarchical tree. I am avoiding to use the gadgets available and every time I face this problem I have to create not reusable components
2 - Integer as ids can be a constraint. If I could use foreign keys as part of keys I can increase the number of registries I can insert into database. However, it is not easy to manage compound keys.
3 - absence of deep learning material/examples. Sometimes it is hard find some information on online manuals. Usually text is simple explaining simple things. I don´t see good materials explaining how things are inter-related and I have to research a lot. The videos available in the learning sections are good but beyond that...
4 - Actually price is a problem to little companies. I am trying to create some products but at the end of the calculations I realized that must part of my earnings will go to OS. Maybe a partnership could be a good option to dissiminate more OS on little companies.