WordPress prides itself on being user-focused, and its development process is focused largely on building new user features. However, it is time to change this. WordPress needs to stop user feature-focused development.
Now, I'm sure that many users are thinking that I'm just some snobby developer who doesn't care about users. Actually, though I am a developer, I am also a user myself, of course, and I'm drawing on both of these experiences to come to my conclusion.
I'm not saying that I think WordPress should stop being user-focused, in the sense of trying to achieve the best possible user experience. I think that the WordPress core devs, despite the flack that they sometimes receive from other devs (like myself, even!), are usually right in the way that they put users first in many decisions that they make.
However, I think that it is no longer possible to truly put users first if WordPress is building user facing features.
WordPress is no longer blogging software. WordPress is no longer even a CMS. WordPress is no longer really any one thing. It is many things to many people, which is why it is easy to argue over which of these things it is. Is it a CMS, or blogging software, an app platform, or a framework? It is used for all of these things, and probably more.
This is to say, that WordPress no longer has the privilege of deciding what it wants to be. It isn't just a little kid who can pick what he'll be when he grows up. Instead, WordPress is at the point where it is ultimately the users who are deciding what it is. Many people use it to build their blogs; many more use it as a CMS; still others use it as a back-end for a web-app. WordPress core no longer has one single purpose; it is many things to many people.
So when user-facing features are developed in core, there are inevitably problems. Some people like them; others hate them. Some people need them for their blog; others think that they are just wasted time and superfluous "bloggy" features in their CMS. And vice versa.
There is no way for core developers to avoid this conundrum when developing many user-facing features, and it will only get worse as WordPress attempts to push from 25 to 50% of the web. There is a danger of fostering both grumbling majorities and vocal disgruntled minorities.
But there is a way to avoid this, by side-stepping the problem completely: just stop developing user-facing features in core.
In fact, go a step beyond that, and begin removing user-facing features from core.
Now, obviously, that is only half a plan. User-facing features still need to be developed, of course.
And in fact, they already are. WordPress.org hosts a directory of almost 50,000 plugins that add the features that users need (and probably a few that they really don't). WordPress has always fostered the extension mentality, and the idea that many features belong in plugins, and not in core. But in the development cycle, it is still often user focused. We feel compelled to include user-facing features in each release, and to market them to users via the About screen on update. WordPress is still being built and is serving updates as if it was just blogging software, or a primarily UI-focused product.
But it doesn't have to be. It is largely a throwback to the past that is just what both developers and users are used to. And it is time to change.
We all know that plugins are really WordPress's secret super-power. And they are here to save the day!
Nobody builds a WordPress site without plugins. The first thing one does when setting up their site is to begin installing plugins, and maybe a theme with plugin-like features.
WordPress isn't becoming a framework, or plugin platform. It already is one. And has been for some time. And and I think it is time that we acknowledge and fully embrace that. Or else we'll never get to 50% of the web. Or if we do, it may be as "the menace" that everybody uses, but nobody is really satisfied with.
So let's start developing WordPress as a plugin framework. Let's stop it with all of the user-facing features being built into core. In fact, let's start turning existing features into plugins and moving them out of core. Let's stop forcing the core developers to make increasingly impossible decisions about what WordPress is, and let the users choose. Let's democratize WordPress.
Let's start making WordPress's development plugin developer focused, instead of user-facing feature focused. This will improve the lives of plugin developers, meaning more and better plugins. And that will improve the lives of users, by improving the choices that they have available to make WordPress whatever they want it to be. That way, everybody has the WordPress that they want. And that way, everybody wins.
This post was created with the new Gutenberg editor, that has sparked debate and complaints over what core developers should be focused on.