In my last post/rant/thing, I stated that
“New things are added to the Matrix API without first fixing what was broken”
“Matrix can’t figure out pyramid development”
…and I would like to explain.
Something I have noticed in the year or so I’ve been using Matrix (with a break where I only used IRC for a bit, after getting fed up with some of these same issues) is that Matrix doesn’t seem to mature very quickly…at all. New features are added and some things get fixed but it doesn’t ever seem to grow beyond the half-broken stage for other things. This is a very odd problem, because it’s very difficult to convince people to move over to something that has had broken presence for a year, and their only experience to it was the (really not production ready) IRC bridge.
I have nicknamed this development cycle, development strategy.
It’s where a new feature is added, and left in the initial stages while another feature is built atop it, and another atop it. This may seem fine for the early stages of a project, but if continued it will eventually snap. This is not a healthy development strategy for a long term project, as it leaves the old features broken and the new ones undone. Now that is not to say that Matrix isn’t maturing, or that I know everything there is to know about development; but rather to suggest a better way to the Matrix project, which I believe will help benefit them, the users, and those who build atop Matrix as a protocol.
I think now is a great time to go into my preferred development strategy, .
Pyramid Development is where each feature is added, matured, and tested to be rock solid before another is added on top of it. This assures that each consecutive piece of a project is build on a rock solid foundation and can mature linearly. This is in stark contrast to the current situation, where each feature is seemingly added at random, without first fixing some long-standing issues and getting a stable base. Things like WebRTC, IRC Privileges, Presence, even Basic UX Design all need to be improved yet more features continue to be hammered out first. This is not a healthy development cycle, and it’s pushing users away (specifically myself, and people I know personally).
This is a request, to the developers, companies, and designers behind matrix.org to finish and mature what they already have, before adding anything new to the protocol or client(s). This is from a user, for the users, and everyone else involved.