Categories
How It Is

You’re Wrong about Open Source Development

You’re not wrong, but you may be wrong, and that’s why your favorite tool doesn’t do what you want. Yet.

We like to say that the ‘customer’ is always right. But when it comes to open-source products, the line between customer and developer is blurred. I joke that I’m not the owner of code, I’m the custodian, and by fielding questions from users and other developers, I turn that into a better product. There’s more and more calls for people like me by the way. A non-insignificant number of companies ask me “Is there someone else like you who would want to work for us?” because giving good support is hard, it’s a weird skill set, and it requires the ability to tell someone “I’m sorry, but that’s just not correct.”

Yes, I tell people they’re wrong a lot. When I say it, I try to couch it in more friendly terms like “I understand why you’d think that, however because of XYZ the product chose to do ABC.” Or maybe even “That would be great, but historical support forces us to do that in a way that would remain backwards compatible. It would suck if we broke everyone going forward, right?” See the point here is that you’re not right but you’re not exactly wrong either, you’re just isolated in view.

Well that escalated quicklyTunnel vision is something that happens to all of us. We look at the world from our perspective (yes, I was Captain Obvious there, I know), which means when most people remark that a project needs something, what they really mean is they need it. This is the part of passion that escalates into angry and vitriol remarkably fast, by the way, so if you’ve ever seen someone go from zero to abusive in three comments, that’s often what’s going on. They really want something to the point that they see red and can’t get out of their tunnel.

Getting back to the rational world is hard, especially if you don’t really understand what it means to develop open source. You may think the developers are ignorant of their users, or out of touch, or don’t care. After all, if open source allows anyone to contribute, why doesn’t a project do everything?

Well besides the fact that it can’t do everything, there are four main reasons a project doesn’t do things the way you it to. This doesn’t mean you’re right or wrong. Being wrong doesn’t mean you are wrong. It’s pretty hard to ever hear ‘wrong’ and not take it a little personally, though. Just keep in mind the reality that most Open Source developers are way more in touch with their users than people behind iOS or Microsoft Word. They just move at a different pace.

Support Support

The people who write the code have to support the people who don’t (or can’t). If they don’t want to support certain code, they shouldn’t have to. After all, what if they don’t feel confident that they can!? If you ask a developer to put in a feature they don’t use and don’t really understand, what happens when it breaks? I always tell people “You can’t support what you don’t know, and you can’t know what you don’t use.” This is why everyone who’s been through my WordPress training is pushed to actually use WordPress. Supporting something is so much easier if you use it. Thankfully all WordPress developers use the product every single day, so they know what it’s like.

Top ↑

Complications Complications

The code is something everyone wants, but it’s too damn hard to code and remain backwards compatible, which is a huge deal for WordPress. A good example of this kind of thing would be WordPress Multisite’s shift from using /blogs.dir/ to /uploads/ for storing uploads. Doing this allowed us to dump MS Files and speed up WordPress because we’re no longer routing images through PHP (lots of benefits there). It came at the cost of losing the ‘hide’ effect of the /files/ URL, but you weren’t really fooling anyone about that anyway. Point being, we had to do this in a way that didn’t break everyone on an older design of WP! That took a lot of time!

Top ↑

Time Time

It takes a lot of time to get code right. So maybe they’re actually working on it, but it’s going to take a long time and it’s not done yet. Open Source moves at the speed of imagination and passion, so if a developer has the time and the itch, things get done. Some tasks are pure drudgery, which brings us to …

Top ↑

Feelings Feelings

This is Open Source (ala Sparta Meme)If you’re stuck between writing code you like to do a feature you want and writing code someone else wants and you don’t have an investment in, you’re probably going to do what you want. This is the reason that’s hardest to understand, and it’s the one most people call ‘unprofessional’ because it boils down to “Oh you don’t like something so you’re not doing it?” If this was iOS or MS Word, yeah, you’d get fired. But this is Open Source, and the rules are a little different here. We make what we make out of that same passion you have to see what you want to see.

Top ↑

So … why not what I want? So … why not what I want?

Because not yet. Maybe never. But WordPress was built to be extendable, not to be everything for everyone all the time. And that’s the beauty of it. But that’s another post altogether.

3 replies on “You’re Wrong about Open Source Development”

I agree with your sentiments, but I think that 99% of what you said applies equally to commercial software.

“Thankfully all WordPress developers use the product every single day, so they know what it’s like.” Yes, they know what it’s like but no one uses every feature of the product that they support or develop. That’s one of the reasons that support of a complex product is so difficult, and why sometimes a new feature is introduced and it’s obvious that whoever coded it didn’t really understand how it would be used . . . or in some cases, obvious that they didn’t test it (probably because they didn’t understand how to test it). A trivial but humorous example of that is a feature in one of the products I support where you can hover the mouse over a progress bar to see how far along the person is . . . and you may get the information that they’re 33.3333333333333% done. No developer worth their salt would let that make it to production, but probably this coder, if they tested it at all, did so and observed “50%”.

“Just keep in mind the reality that most Open Source developers are way more in touch with their users than people behind iOS or Microsoft Word.” Interesting statement. Not sure I agree, but really the problem is that being in touch with the users is only the first part of getting a new feature coded or a change made. As you point out, it may be horrendously difficult or cause big compatibility problems, and these are as much issues in the commercial world as in the open-source world. I think that the bottom line of the process is much the same on both sides of the fence. In both cases the decision on what to implement is a consensus process. In the commercial world a specific individual has more say in the process based on his place in the organization chart. In the open-source world the same applies plus the “I want this so bad that I will code it myself” aspect. There’s a list of potential enhancements that gets filtered down to what people are actually going to work on. I’m not convinced that it’s inherently “better” in the open-source world.

But back to the theme of your commentary β€” support. It is a difficult and thankless job. Thank you for doing it. I suppose it’s a human trait to fixate on the things that annoy you . . . people use a system every day, it does 99% of what they want perfectly, and they invariably grouse about the 1%. It’s all well and good to point out shortcomings, but unless they’re fatal flaws it’s silly to condemn an entire product just because it doesn’t work exactly as you think it should in every respect. Sometimes I’ve come close to asking these people, “If you hate the system that much, why do you use it?” But now I’m preaching to the choir.

@Steve: I have asked that question in the past, and probably will continue to do so. Normally I get the reply “Well it’s better than everything else out there…” :martini:

The whole ‘Open Source Devs are more in touch with users that closed source’ is an assumption I make based on the fact that we have events where the devs of products like Drupal and WordPress come to talk to users and listen to them. I’ve never seen an event where MS sends it’s Word devs to talk to users πŸ™‚ Nor would I expect anyone to go. The level of ‘community’ in open source, including both dev and users, is unheard of in closed source realms.

Comments are closed.