the idea of changing the licensing options for elgg

in the recent thread where ismayil stated he is quitting the position of core developer of elgg, i suggested that maybe a good idea would be to look at the option of requiring commercial users of elgg to pay a license fee for use. as far as i am aware, steve is the only active core developer left and he asked me to create a new thread to discuss the idea.

to be clear, i prefer open source projects - including elgg - to be entirely free for all. the reason why i am suggesting to create a license fee requirement for purely commercial users is that it has been my experience and also the experience of other developers i know (including ismayil, from his comments) that generally, the primarily commercial users do not give anything (or at least very little) back to the community and so we have a situation that is something like:
 

  1. coders create plugins and core code for free - for their own reasons, possibly to support their own website.
  2. commercial developers use the code that was developed for free, gaining them the benefit of the others with nothing in return.
  3. the commercial developers then use their resources to create their own proprietary code - giving them the benefit of both their own work and the work of everyone who shared... attempting to gain 'commercial advantage' - while ignoring that the basis of their 'advantage' could not exist without the community providing that basis for free.
  4. the commercial developers get paid - sometimes very well - while the community developers do not.
  5. there is an obvious imbalance that could be balanced by government or corporate entities that use elgg providing support in the form of money, coding time or other resources.
  6. coders who work for free may (and often do) feel somewhat exploited by the situation, while the commercial users of the code often get rewarded greatly.

i don't know the names of many commercial sites that use elgg, because i don't track that topic much - but i do know of at least one now major site that used it and who claimed all along to be 'supporting' the open source community and elgg, yet in reality - as far as i know - did absolutely nothing to walk that talk.

why should this situation be allowed to continue? especially when it would be relatively simple to improve it and simply by putting out the intention to improve it there may be adequate impetus provided to inspire larger users to offer help which previously they didn't bother to do.

Steve implied in the other thread (i think) that commercial users would just fork elgg and avoid the license fee. That would be their choice and right to do so - but at least if they did that then there would be an end to the problems listed above. If they, or i, or anyone takes over our own version of elgg and no longer comes to the community or the core developers with support tasks/questions then they are entitled to do that and use their resources to make their own version of Elgg. I am suggesting though that the license make clear that after a specific date, they are not licensed to use any new code produced for Elgg by the core team unless they pay the license fee. I'm really not clear exactly how the elgg community would lose out by this because to my knowledge (and it appears to the knowledge of other coders i have spoken to) these commercial entities provide little to nothing here anyway, so what is lost?

how would this license idea 'save' elgg?
 

  1. coders would know from their immediate use of the system that their work on the core is not going to be entirely counter productive to them, in that they may be giving code to groups who do not compensate them in any way and who may actually be direct competition for them online. at the very least they will know that elgg itself is being directly supported by their potential 'competition' and thus the effect is somewhat mitigated. this offers peace of mind and a sense of reciprocation that is missing currently and which is necessary in a group sharing environment.
  2. by bringing in some money for the elgg core team, it becomes possible to bring balance to the team and provide motivation and increased quality of life to some extent.
  3. a carefully worded clause in the agreement could provide a doorway for commercial users to bypass the fee if they instead provide coding / support time for the elgg core.. though i don't know how that would be worded from a lawful perspective or managed in practical terms. this would inspire more elgg core work from 3rd parties, rather than them just relying on the overworked core team.
  4. the increased potential for financial support may draw new attention to elgg in general.

what are the mechanisms needed?

  1. change in the agreement for elgg that stipulates that purely commercial use requires either a license fee or an agreement to provide a certain level of technical services for elgg core.
  2. maybe some kind of serial number system built in to elgg to monitor license use, which gives some scope for commercial use to be monitored.
  3. enforcement of the policy would require nothing more than standard operations of law for software license infringement.

this kind of approach is not my favored one at all - by nature i prefer to not involve 'legalities', 'money' or any of these topics into creativity - but i am also pragmatic and i feel there is a lot of potential being lost here and hard work going to waste to some extent.

any thoughts are welcomed.

 

  • Practical consideration: changing license would require agreement from all copyright holders, probably including Thematic Networks, the trademark owner. I think this is impossible.

    The premise that commercial orgs don't give back is shaky. ColdTrick contributes core work and numerous plugins. Arck, numerous plugins. Often plugins done at/for universities are open sourced.

    If the fee is low, why bother, we already collect a decent amount from donations.

    If the fee is high, I don't see that working anyway.

    Show me a project with the structure you're imagining and consider if the core team (who are all more or less happily employed) can realistically morph into that. That seems the very hard part. If we're just going to pay core devs, who decides who gets paid?

  • I also do not think a commercial license will help. New parties will move to alternatives, existing commercial parties either fork and branch of or stop contributing at all. Maybe some will pay and contribute but do not think many.

    I asked if our developers would want to work on core. None does, not because of lack of money (they get paid anyway) but lack of challenge. If you would fix something in core, you get at least the same amount of new issues back is their feeling.

    That is why core developers gets frustrated I guess. There is no end, no satisfaction.

    For developers want to work on a framework it needs a clear architecture, structured code and models and that is what is missing here. It is functionally great with all the plugins so from a user perspective very interesting, but apparantely not for a developer. A license structure will not help in any way in improving that.

    I think some very though decisions need to be made.

  • @Steve -

    Practical consideration: changing license would require agreement from all copyright holders, probably including Thematic Networks, the trademark owner. I think this is impossible.

    I cannot comment on that since i don't know the full details.

    The premise that commercial orgs don't give back is shaky. ColdTrick contributes core work and numerous plugins. Arck, numerous plugins. Often plugins done at/for universities are open sourced.

    I was not thinking of Coldtrick and Arck, since to me the individuals involved there are virtually core coders anyway. I am thinking of the Universities, governments and corporations who use Elgg but who are not specifically in the business of developing elgg sites for profit. I don't have a list of all of these, but core developers have referred to them as being in the 1000s.

    If the fee is low, why bother, we already collect a decent amount from donations.

    i have no idea how much is collected through donations. it sounds like the amounts are not enough to pay someone to work at developing elgg though - is that correct?

    If the fee is high, I don't see that working anyway.

    again, my lack of knowledge of the entities involved means that i cannot give a complete response to this topic. it is true though, that if institutions rely on the software for important functions it should not be difficult to get them to pay for a license in return for continued support of their functions and the promise of future enhancement. their choice is to pay or use an alternative which will probably also require them to pay.

    Show me a project with the structure you're imagining and consider if the core team (who are all more or less happily employed) can realistically morph into that. That seems the very hard part.

    in terms of software licensing, there are 1000s of projects that use a free for non-commercial use model and that require fees to be paid for a commercial license. the difference here is that we are talking about the extra detail of the project being open source rather than proprietary. i have not done much research into this, but i can see that oxwall (the social network platform) states they are open source and also that they have paid packages: https://www.oxwall.com/order

    while their model is not the same as i am suggesting - at least they represent a model to reference in terms of how to monetise such a project.

    wether the solution is closer to oxwall or closer to what i have suggested as a starting point, a shared factor in both is that there would be a need for people to manage the licensing and related activities.

    If we're just going to pay core devs, who decides who gets paid?

    that is a question that brings into focus legal and employment law aspects which i am not able to comment on due to a lack of knowledge of the entities involved and relevant law in the relevant jurisdiction. i imagine though that it would be a question of defining a paid job role for a developer - which might be you or someone else - and then building on that as funds are available to do so.

    it is a bit frustrating to be presented with the idea that the corporate/owning entities of elgg might prevent any change to the licensing / copyright terms - presumably for commercial / investment / financial reasons - and yet in the process would prevent a growth in the commercial / investment / financial aspect of the platform. maybe they have other reasons stopping them from change?

  • @Gerard:

    I also do not think a commercial license will help. New parties will move to alternatives, existing commercial parties either fork and branch of or stop contributing at all. Maybe some will pay and contribute but do not think many.

    this is unknown to me - i don't have any way to ascertain the realistic outcome.

    I asked if our developers would want to work on core. None does, not because of lack of money (they get paid anyway) but lack of challenge. If you would fix something in core, you get at least the same amount of new issues back is their feeling.

    I don't really understand what is being said here. you may get new issues arise as a result of fixing any issue, whether it is in core or not - that's just part of maintaining a codebase. if it was so unchallenging to do the work, then it should be easy to do and get satisfaction from quickly. ;)

    For developers want to work on a framework it needs a clear architecture, structured code and models and that is what is missing here. It is functionally great with all the plugins so from a user perspective very interesting, but apparantely not for a developer. A license structure will not help in any way in improving that.

    i agree that there is a need for some kind of formal design documentation - we lack even the most basic of hierarchy diagrams showing how a page is put together in the elgg framework (afaik). making the role of core developer attractive requires more than just money, it requires support of various kinds in terms of design and management too. again, this is why i think some form of commercial licensing will make the difference here as it potentially opens doors to building a dedicated team which would not occur otherwise (not without having a massive user base to draw from for free anyway).

  • As someone who is in the business end of this working a ton of hours for Arck I can say that we give back as much as we can.  The vast majority of our plugins are opensource, whenever we discover a bug and/or solution we report it and push back.  One of the difficulties from the business standpoint is we have a lot of clients on legacy versions, which means I spend a lot of time still dabbling about in 1.8 which leads to plugins that aren't really useful if they're not forward compatible, and more importantly it means I'm spending a lot of time not working in the most current version.  Therefore I'm not discovering the bugs or better ways to do things quite as fast.  As we start new projects we always the most recent version but not everyone has the resources and inclination to put enough of a maintenance budget to keep the base elgg version current.

    A lot of this comes down to the fact that we have more work than time available, so free work tends to get bumped to tomorrow.  Some system of compensation for dedicated core work would certainly go a long way I'm sure, I just don't know how that can be accomplished.  I don't know that licensing is the ticket, or if the Foundation has funds that could be used to pay for development (or if that's even allowed).  If it is then it would be up for debate on how to determine who and how much and all sorts of questions.  That said, I think if it's possible it's worth exploring the possibility.

  • Elgg is too much trying to reinvent the wheel again. There are so much frameworks that could do the heavy lifting so Elgg could focus on being a social network engine instead of trying to build upon a programming language as php from the ground up (as was needed 10 years ago). It isn't anymore and frustrates not only developers but core dev as well (I would guess).

    Such frameworks can handle messaging, groups, users, profiles, pages, forms, design, ui, ux, scaling, seo, flows and all of that basic stuff. Elgg could adopt it and built an engine that facilitates this to make a social network and an easy to use and logical engine for plugin developer to create new user functionality on top of it. Using standards that they learned like true MVC and not something that seems like it, but isn't and therefore confuses devs along the way and hate it more and more while using it because they have to learn something that is not how it is supposed to be built in the first place.

    What I see in my practice is that our developers are using OS as lego. They select components which seem useful and integrate them if and when needed. Every project contains new lego blocks and they don't want to know much the details of how it is working, just use it. 

    They are lazy and clever at the same time. Those components need to apply to standards and have dev friendly interfaces (function, input, output, args), or will be discarded. Documentation is important to help them how to apply the lego.

  • To sum it up, I think Elgg is a user friendly but developer unfriendly (sort of a) framework.

  • Note: I've (ab)used my powers to delete the last couple of unhelpful comments from heated participants. If you'd like to discuss how Elgg's license would be changed or how that would help, feel free, but keep it civil.

    Pet theories about how developers feel about contributing or why they don't are welcome in other threads. Thanks!

  • hehe.. such is social interaction in a passionate world!

    @Steve - are you able to comment on the aspects of this thread that i have said i don't have enough information about? i feel like the issues involved have always been somewhat held in the shadows for reasons i don't fully understand. e.g. the scope of elgg's use by institutions and groups with significant resources.

  • I don't think the license is the problem. Or the other way round: I don't think a license change is the solution.

    Why?

    It has happened at least three times (as far as I know) that people have forked Elgg. Not forked in the sense of maintaining a kind of a working branch (stable in the sense to have a fixed ground base for their own projects - this seems to be the case at least in one other case I know of). But forked in the sense of taking Elgg as it is and then completely overhaul it for their own use (which also involves making money out of it). The point here is that they don't want to contribute their modifications back to Elgg core but keep them for themselves - otherwise they wouldn't have any good justification to make money of their rebooted Elgg fork. And they have likely drifted so far away from Elgg core in the meantime that bringing back anything is quite useless anyway (for us).

    What would a commercial license required mean to anyone who has the capacities in developer resources to make significant progress in Elgg and who also has money/funding to start with? It would most certainly backfire for us who want to see Elgg core itself making progress. A license change isn't set into force retroactively. No once would be forced to update to a newer Elgg version required to operate with a commercial license. They could just fork the latest version prior the license change to work with in future and we would have gained NOTHING. Most likely even less than nothing because even the small chance that someone would make at least some contributions to Elgg core when still using the original Elgg branch would be diminished.