Hi, my name is Roy and I am one of the many developers you may see online discussing code. Right now I am writing this article on a CMS (Content Management System) called WordPress. You probably heard of it, it powers give or take 30% of the Internet, and that number keeps on climbing. However, how did it get there? Philosophically, this isn’t the article to discuss that, but we do know it started 15 years ago, by a guy named Matt. Matt decided to take an existing project and create WordPress to make it a better blogging platform. However, how does it go from that to 30% of the Internet?
Developers & Users: Symbiosis at its best
When Matt first created WordPress, he may or may not have even had a need. He could have been doing it for fun, or he could have had a business / consulting need that WordPress solved, or maybe he was the one that had the need. When I look at the projects I’ve created on my GitHub I realize many don’t go anywhere. I create them whether it was for fun or I wanted to open source a client project (with their permission). That is to say, they have a purpose to appease me or a client, I put them on GitHub, and they kind of get stagnant and die (I’d like to think of it as more of a long break, but most don’t get touched again).
Note: When I say “user” I mean anyone who is using a piece of a code I wrote. They could be using that code to add to their code, or build off of it to build more code, or they could be using a plugin I made and just the UI of said plugin in the WordPress admin.
Why Developers Need Users
When I look back at my old projects on GitHub I wonder why I never did anything further with it, why a repo hasn’t gotten any attention in months, or even years. I then look at things like the issues created or PR’s, and I see a trend. The longest lasting & most worked on GitHub repos, have a purpose for me. For example my most popular repo is my Angular WordPress theme. My first commit to that repo was April of 2013 and in some form or another it has gone through 7 versions. Why? Because it has always been a tool to keep my Angular skills up to date. If I wanted to learn the latest and greatest Angular code, I’d pull open my WordPress theme, knowing that I could learn everything since WordPress is a base I know well. However, I was my own user. While others stumbled across my repo, and some even created issues, this was always my pet project and I was the main consumer of it. So what about the other repos? The ones I committed code to for a month, then haven’t touched in years?
Most of my repos are fun pet projects, and while I hope each one serves a purpose to someone besides myself, ultimately it comes down to me not having the time to to just work on pet projects. I wish I had the financial backing to do that, but I don’t. So, unfortunately that means when I work on something even when I try to keep it up to date and maintained, if it has no use to anyone, including myself, then I just leave it alone. There are also some repos that technology has not advanced or has changed so they become useless (I guess I should delete those repos).
Take for example my FIRST GitHub project in 2013, a Gravity Forms extension plugin that allows you to showcase the top choices that were picked in a poll you created. I needed this for a client, saw that there was no way to do it, so I built it, threw it on GitHub hoping that someday either Gravity Forms could include it in their core code base, or that more people would use it. No one did. So, this repo hasn’t been updated since April 2013. This is a good comparison because I created this repo the same month and year as my Angular WordPress theme, however that repo got a lot more updates, branches, and issues created & resolved.
I’m not the only one
If you look at other developers’ GitHub you will probably find the same story. Unless they have the time and/or passion to keep up to date with a project they have, I bet most of their projects are going to fade in the sunset as the needs for that project dwindle.
Why Users Need Developers
Having a developer working on a project can save you a lot of time. Taking a simple example with WordPress, plugins. If you wanted to build an e-commerce website with WordPress, you’d install WordPress and then install something like WooCommerce or Easy Digital Downloads. Once that is set up, you’d set up your store products, taxes, shipping, etc. and within a day you can have a store up and running. These 2 plugins are huge (WooCommerce being owned by Automattic now), so there are teams of developers who work full time on these plugins. As a user, you need them to do their job, so that you can build the website you want to build.
As a developer myself, I lean on other developers to build things that I can leverage to build cool things. Going back to my Angular WordPress WordPress theme as an example, the first version of the theme used WordPress’s admin Ajax to make calls which echo’d out JSON. I started this project before the REST API project was a thing, so there was no easy REST API to hook into. By version 2/3 the REST API was starting to make its way into a useful plugin, and I immediately started using it. I needed the developers who committed to the REST API feature plugin to keep on working on it, so that I could build cool things with it. In this relationship my role was flipped and I became the user.
Just like the REST API plugin, most of my repos on GitHub are geared towards other developers finding it useful and using it, whether it be a code library or just some helper functions.
How We All Prosper
So what is the morale to all of this. You probably already knew that every piece of code you don’t write, there is a developer who did. I really wanted to point out how we all need each other on both ends and that users don’t get enough credit for what they bring to the table.
Do you know how much joy it brings me to see a project I have get a new issue, or even better a PR fixing or adding something? Even if there is 1-2 other people who use it, it means there is a reason (even if its not financial) to spend some time every week/month on it to make that project better. Its kind of a catch 22, right? I can build something and keep on working on it till someone finds its useful enough, but also I need someone to find it useful enough to keep on working on it.
Pat Yourself On The Back
Not just did you read through this article, I assume you are one end of this, and you are doing a great job. My only advice is that if you are a developer, and you do find a project you think will be useful, don’t be scared to share it before you find it “ready”, and don’t give up so fast. I know I’ve given up on projects I think have potential use cases too early.
As a user, keep on using. However, if you aren’t letting the developer(s) know you are using their projects, maybe make a point of spending even a few minutes every so often letting them know that you exist, that you use their plugin, repo, etc.
WE TOGETHER build the Internet