Software Units - How to decrease them?

Software Units - How to decrease them?

  
Are there any common tips, suggestions on how to decrease the number of SU's without reducing the maintainability?

I find it a bit annoying that referenced entities/attributes cost SU's. It does imply that if you want to have a proper architecture it comes with a cost.
which is nice for sales but bad for developing good programs...


in any case, my intial suggestions...

- keep the number of static entities to a minimum. they cost 500(!) SU's for starters...
- try to use only 1 ajax-refresh in a screen action (25SU per refresh)
- remove all local error-handlers if you can handle them on a higher level (20su per handler)
- try to reduce the timer (400su)
- Roles (beware of them, they are automatically created with each espace, so kill them asap)


do espaces or xifs themselves count for a number of SU's?

The official answer would be something like this:
This question may apply to the community edition when every SU counts, but in a professional edition don't try to fit three 40k apps into a 100k license. Buy a bigger license, turn them into 3 50k and make 2 more apps, bringing added value to the company ;)


Speaking as someone who started a project knowing how many SUs was allowed to spend:
Cut on the timers. Since most of them run daily or hourly make a single timer calling an action and in the action make a decide splitting daily from hourly actions. It's ugly and lame, but it works.
About the single ajax-refresh for action and elimination of unused roles is good programming. The error handling depends on the subject and complexity of the app, but usually most pages don't need a specific handling.


To search for particular SU consuming objects check the docs:
Hi!

Nice topic Joost! I was wondering about this also as I'm evaluating the Outsystems capabilities under a community license I always need to check how much I've alredy consumed.

It would be great to have access to the documents that Nuno listed, but unfortunatelly is unavaible, hope someone put it back again.
I know the official answer would be, but sometimes you simply don't have a budget to upgrade a licence (yes, manpower cost prolly more than a licence, but it's a psychological thing)

On the 50K limit for example, I have 1 webservice with 1 webmethod, yet it contains over 400 structures with at least 5 attributes.
that leaves me with a whopping 16K SU where I cannot do a thing about except fixing the wsdl myself, once I know what I use and what not.
But those are SU's I cannot predict upfront sadly enough.
Yet it will consume over 1/3rd of my SU's without having done anything.
 
I just deleted most (all) of the error handling in my 30K challenge and it saved met 3000 SU's ...
Thanks you Justin James !
if you have a lot of "For Each Widget" you can try to do the same For Each with an If and a Counter

normal For Each = 15 SU

alternative For Each with If  (for the stop condition) + Assign (for the increment Counter), it's 2 + 2 SU. In this case, you can´t use List.Current but it's List[Counter]...

in query's, the Simple query and Refresh Query cost 20 SU each and the Advanced query is only 2 SU
Here is the documentation on how many software units each element consumes:  http://www.outsystems.com/community/download.aspx?DocumentId=656.  I found my biggest hitters were Roles, Site Properties and Static Entities.  I also found that you can go through each element in your espace and use F12 to find elements that aren't being used any where in your espace and remove them.
Rebecca -

Roles are indeed a real SU killer! IntelliWarp in 5.X was bad about that one, it would create 3 roles for every entity you made a list/show/edit set of screens for...

Static Entities are bad. It's tempting, for example, to put every country and every province in a static entity... it's not much work to make it a normal entity and use a bootstrapper to import an Excel file instead. Site properties... if you have THAT many site properties, you may need to re-think something!

And yes, the F12 walking through is critical. I recently saved a customer many thousands of SUs just by trimming "dead weight" from the application.

J.Ja
Joop -

Happy to help!

J.Ja
I downloaded the Community Edition and was quite surprised when I got to a point, while I was test-driving the product, where the system informed me that I exceeded my Software Units. I downloaded a sample CRM application and made some changes to it, trying to figure out how it all works.

I refer to part of the e-mail I received after I registered, i.e.
"Can I use the OutSystems Platform for personal projects? Follow this link to download your copy of the OutSystems Platform Community Edition. With it you can create your own web and mobile applications for free, no strings attached."

Well, apparently there are strings attached. There is a Software Units limitation. So, I suggest that the statement be changed to something like "...for free, with one string attached".

I am very disappointed, because I wasted my entire Saturday, thinking the Community Edition was for free, no strings attached.

I sincerely hope that you all agree with me that the statement regarding the free Community Edition is misleading. Please make everyone aware of this Software Unit limitation, before they go to all the trouble of downloading and installing it.
The statement is not misleading, the Community Edition IS for free with no strings attached. And we do tell you about the Software Units limitation: On the download page of the community edition you have a table comparing the features of the Enterprise and Community editions. In this page you can read that you have limited Application Complexity and it even tells you a rough estimate of how much you can do with it (50 web pages and 25 database tables).

What "no strings attached" doesn't mean is "you get a full fledged version of the product". It means that by using the Community Edition you don't owe anyone (in this case, OutSystems) anything. You can use it for whatever you like (within its limitations) for however long you like without having to pay a dime.

Like many (free) trial versions of software out there, if you want to unlock the full potential of the OutSystems Platform you have to pay for it. Some limit you on what you can build by limiting functionality, others limit you on how long you can use them. We limit you, essentially, on how much you can build with the platform.
Hi Jay,

I'm sorry to hear you didn't manage to complete your evaluation. Can you share with us which sample apps did you install for exceeding the SUs? Would registering for the 15-day trial (using a cloud server, instead of downloading the platform server) allow you to complete the evaluation?
I agree with Jay. You're being a bit stealthly, and it doesn't breed trust.
I also was evaluating this product, however I did notice there was a size limit. The 'close box click' came for me when I started searching for pricing information online. There is none. You need to call a 'friend'. Commentary indicates it's a very big number, hence why it's not online. Is it embarassing?
Sorry OutSystems guys. Clever product though.
Ricardo Silva wrote:
The statement is not misleading, the Community Edition IS for free with no strings attached. And we do tell you about the Software Units limitation: On the download page of the community edition you have a table comparing the features of the Enterprise and Community editions. In this page you can read that you have limited Application Complexity and it even tells you a rough estimate of how much you can do with it (50 web pages and 25 database tables).

What "no strings attached" doesn't mean is "you get a full fledged version of the product". It means that by using the Community Edition you don't owe anyone (in this case, OutSystems) anything. You can use it for whatever you like (within its limitations) for however long you like without having to pay a dime.

Like many (free) trial versions of software out there, if you want to unlock the full potential of the OutSystems Platform you have to pay for it. Some limit you on what you can build by limiting functionality, others limit you on how long you can use them. We limit you, essentially, on how much you can build with the platform.
 Hi Ricardo,

I totally understand that the Community Edition does not have all the features of the full-fledged product, and that is okay. However, those features that are provided in the Community Edition should not come with any strings attached. The absence of the Software Units limitation does not constitute a feature.

The fact still remains that the free version does come with a string attached, no matter how you try to explain this fact away.

Sorry, but I strongly disagree with your take on this.
Jay -

I am curious what limitations you think the Community Edition should have, other than "no support", if any.

Many packages, even open source packages, have some kind of limitations in the free or open source version. It's a well establish system in the industry, because making something of this quality and scale requires a lot of money. The only time I see truly "no strings attached" software at this level is when it has a huge company behind it, one so big that a project like this doesn't cost them enough money to show up in the budget, and it helps them drive other sales. For example, IBM's support of Eclipse drives Java, which drives IBM server sales.

J.Ja
Justin James wrote:
Jay -

I am curious what limitations you think the Community Edition should have, other than "no support", if any.

Many packages, even open source packages, have some kind of limitations in the free or open source version. It's a well establish system in the industry, because making something of this quality and scale requires a lot of money. The only time I see truly "no strings attached" software at this level is when it has a huge company behind it, one so big that a project like this doesn't cost them enough money to show up in the budget, and it helps them drive other sales. For example, IBM's support of Eclipse drives Java, which drives IBM server sales.

J.Ja
Justin,

This opens up an interesting discussion. I understand that companies have to make money, otherwise, how are they going to provide great products. Having said that, they should carefully think about the correct business model. One way would be to provide a version of the product that has just enough features to allow someone to get a good feel for the product, but without the features that could turn it into a full commercial product. Let's say I want to develop a solution that I would like to sell to companies, I would then have to purchase a full-fledged version, because it will have all the features required.
 
Let's look at a scenario where I don't want to make any money with the product, i.e. if I would like to create a social or open site that does not charge any fees. For a site like this I would not require all the bells and whistles that come with the full-fledged product. But, don't limit me in those features that you do allow me to use. And don't provide me with any support, unless I'm willing to pay.

Developers should not have to pay for software. Developers are your friends, They build products that companies could buy. And that is where you should make your money. Companies have large budgets, as opposed to developers who usually don't have the same.

My suggestion: Go for a pay-per-use model, rather than a pay-to-develop model, Provide you own Saas and/or Paas, or use other Cloud services, such as AWS, to seamlessly deploy solutions developed by using your software. Encourage developers to use your product, because every solution they develop can then run on your service platform (or on a partner's paltform), where you will make your money. The more developers you have out there developing solutions, the more money you will make. So, don't make developers pay for your product, make the users of the final product pay for it.
"because every solution they develop can then run on your service platform (or on a partner's paltform), where you will make your money."

Except that it won't, because it fits in the Community Edition and there's no reason NOT to use it.

I'm not sure if this was the reason why we selected the model we used, but I'm pretty sure that all these variables were taken into account when designing it, and we selected the one that seemed to better fit our growth needs.

It doesn't mean that we're not open to re-evaluating the model, and we do so constantly (making your feedback much appreciated!).
Jay -

It's worth noting that in version 6 of OutSystems, they tried exactly that. While I have no "insider knowledge" here (I do not work for OutSystems and never have), I would assume that there are very good reasons why this is no longer being offered. Based on my understanding of the OutSystems customers, I think that nearly all of them are big enough to have an existing server room and IT department, and their applications are being developed for internal enterprise use, and as a result, paying for a third party host is not an attractive choice to them. Maybe in 5 or 10 years this will change, but right now I can see this being a challenge to sell into, and I certainly would not base my business on it.

J.Ja