Yesterday, I retweeted a post which criticized the currently fragmented state of web development. The post was pretty aggressive, but I agreed with some of its points re: over-engineering, and a fragile plugin/dependency model that only seems to be getting worse. I’m all for criticism — these are important conversations to have, but then someone pointed out to me a line in the post that I originally skimmed over which personally attacked an open source developer. Woah. Nope. Nope. Nope. That is NOT okay. That line quickly turned the post from a critical, though salty, expression of an opinion on the industry to a personal attack from an angry developer. I regretted sharing it immediately.
Okay, Let’s be Real
Things change quickly in this industry. If that’s news to you, then you must have started yesterday. Welcome to the chaos. And yes, you can call the current state of web development a bit chaotic, but that’s because there are more people than ever contributing ideas and sorting through those ideas by implementing them! Imagine that. User testing, prototyping, and iterating.
Obviously a library like React was built for a specific business need, for a huge company. What do you expect? It’s new, it’s experimental, things are going to break. It was written insularly in a company with brilliant engineers that needed to move quickly to stay ahead of their competition. And now that it’s being used by more and more people, clearly there are growing pains.
Open Source Entitlement
One thing that irritates me more than anything is the expectation people have to other people’s time, specifically open source project maintainers. They are not your tech support. They built a product you are using for free. You’re welcome.
Hey, OSS maintainers, you don’t owe anybody anything.
You have a problem? Submit a Pull Request. You don’t know how to fix it? Spend some time in the codebase and learn how — or you can do what Michael Mifsud did and learn a programming language to contribute to an open source project he loved and used. Don’t have time to do that? Cool, they don’t have time for you either.
Developers are people. I don’t understand why this is so hard to remember. Think about this the next time you email someone on a weekend and get angry at a response that takes a while. Your work time might be their off time (time zones are a thing), they also have things to do.
Etiquette does not end where your keyboard begins.
Criticizing Software is a Good Thing
There is a very important line between criticizing a software and attacking the individuals who built that software. Often, “bad” software comes out of circumstance, and bad managerial decisions, and things that are out a developer’s control. Saying “IE sucks” is very different than saying “The IE team sucks.” You (probably) weren’t there. You don’t know the decision chain and history.
No developer tries to build a bad product on purpose.
Criticism is a good thing. Actionable criticism is even better. But personally attacking each other out of frustration is just sad. The next time you make a comment or write a blog post, ask yourself if it’s actually productive.