I've attempted to stay out of this thread, but since my name has been thrown around for a bit now, I feel I have to respond.
As lossendae has pointed out, I am no longer an employee of the LLC. I left MODX Systems in July 2013 to go work for Bigcommerce. (Someone needs to remove my "MODX Staff" badge, apparently.)
Furthermore, I never had equity stake in the LLC, so I could not be ever considered an "owner". At my time of employment, I believe only Ryan Thrash owned equity in the company (with Jason possibly having a tiny amount, that of which I am unsure) - the rest of equity was owned by the investor group behind MODX Systems. I have not rejoined because of differences with the LLC.
As for the thread specifically, I have the following concerns. This is my view on the project/company having been both a high-level employee of the LLC, and having now been distant for over a year:
The LLC as it stands is not equipped to properly manage a large OSS community and/or project.
This is because the LLC is of limited membership. It has to split its duties between Professional Services contracts, MODX Cloud maintenance, and infrastructural maintenance. It simply has very little to no time for managing an OSS project as the LLC is currently structured. This is self-evident by the lack of posts here, minimal technical roadmap direction, and general silence.
There is a lack of available, strong technical leadership that can contribute at a consistent enough level.
This was prior provided by Jason and I; however, Jason is now swamped (from what I know) with Professional Services work, and I have full-time employment elsewhere that prevents me (time-wise) from making sizable contributions anymore. However, even that was never enough - MODX needs a larger pool of technical talent to lead and direct the project.
Current contributions to MODX 2.3 are only bug-fixes, or small feature additions. There’s no overarching changes to the way the system works or improvements at an architectural level; the sole exception to this being moving the manager CSS to SCSS/SASS and a build system by Grunt, which was done mainly by JP, who was an LLC employee for a time.
For the project to reach critical growth, architectural decisions will need to be made by a group of people who are of a high enough technical skill to justify and advocate for them. A Foundation could provide this, but skill would have to be upped considerably in that group for this to be effective. Decisions would also likely move slowly because of the committee-based process, and that may be “too little too late” for Revo as a product.
There is a large amount of confusion of ownership and leadership of the project.
Technically, the project is GPL, and can easily be forked and the community could own it. However, the brand is owned by MODX Systems, and therefore any fork would lose that influence. Furthermore, there are significant roadblocks/questions to establishing a MODX.org Foundation (which I personally would be 100% behind), and they are:
- Infrastructural responsibilities: the SSO system (Rails app, last I saw), the MODX core Package Provider, the Amazon S3 instance hosting Extras and releases, the modx.com website, the forums, the github account, etc. All of these require both time, people and money to keep running and maintain. Who would own and manage this?
- The LLC would have to cede responsibilities, and at some level, ownership. This would likely be an issue.
- Ownership of technical leadership and direction; I doubt the LLC is willing to cede this at this time, but a lot has changed in the last year, so maybe this is feasible
To be honest, MODX Revolution is at least 2-4 years old in its codebase. Examples:
- The PHP codebase needs to abandon pre-PHP 5.3 requirements and modernize
- Needs to use PSR syntax for its PHP architecture to increase adoptability and usability
- Abandon a “not invented here” syndrome and utilize libraries for common functions
- Related, allow support of Composer within MODX, which has fast become the standard for PHP application development
- It uses a now-outdated ExtJS3 for the manager structure, instead of a more modern framework, like Angular
- It relies on xPDO for its ORM, which had its last master commit in Sep of 2013, and last develop commit Mar 12, over 2 1/2 months ago. It would be wiser to move for MODX3 to a more universally supported ORM, such as Symfony’s or Eloquent (Laravel)
- Very minimal test suite, which needs to be expanded upon significantly
- Heavy dependence on “god objects” and fat models, rather than a more service-class based approach
- The architecture as a whole needs to be separated into packages and service architectures, to allow more extensibility and separation of concerns (too much coupling of code right now)
- Still no “Content Elements”, or user-definable fields, for Resources, as well as Resource Types. This is pretty much a standard in modern CMS’s nowadays.
And on and on. These are the things that MODX should be striving for in its development; however, I have not see much movement in that direction outside of small bug fixes and UI adjustments (which are good, but are band-aids over larger concerns).
I believe that this is mainly caused by confusion over technical ownership. There needs to be a dedicated team of integrators, who are defining and over-communicating technical direction and ensuring that commits coming in are aligned with a constantly-evolving roadmap. This, IMO, needs to be owned by the community. The LLC needs to explicitly grant this ability to the community.
The roadmap needs to be far more defined, down to what specific issues are required for a release to happen - and those issues need tickets, whether in Github or Redmine or JIRA or whatever. The tracking system is not the problem, the lack of process is. Burndowns, sprints, and such need to be implemented and used. Feature freezes need to happen prior to releases. And there needs to be a community-driven point person who helps communicate and enforce that process. The LLC has shown itself unable to have resources for this role, and therefore the community must provide it to have the development for the project sustain.
I don’t know what all the LLC is willing to cede on this. But I do know - having been deeply in the community and now out of it for over a year - MODX is aging, fast. And it’s going to take extreme, well-defined, strategic measures to turn it around and move it to the next level. All major OSS projects have this moment. Whether or not MODX does this will depend on the community taking itself to the next level of self-organizing, and whether or not the LLC steps out of the gatekeeper role it’s currently in and into more of a cheerleader. That future is yet to be seen.
I hope the best for MODX, but things have to change, and soon.