I want to tell you about a problem in our community.
I participated in many open source projects such as Babel, Flow, Yarn, Lerna, and others. As a developer, I was lucky enough to be part of the best times of the community, as well as the worst.
By pleasant memories, I can include invitations to conferences all over the world, traveling to places that I would never have imagined that I would get new friends from all over the world. I gained my best friends through working in open source projects.
')
But I'm afraid this is not all that I came across.
From myself : the text further is the cry of the soul of the author and, as it seems to me, must be read by each developer, author and commentator. Words always matter and affect to one degree or another.When you are part of a project with tens of thousands of users, you have to meet a lot of criticism. Sometimes it seems to me that I am some kind of politician. Some criticism is not justified, but most are still constructive. But the most annoying thing that they often criticize is too cruel.
Such a negative effect is otherwise adequate criticism. I can talk for days about the various trade-offs that I had to make while working in projects. I am happy to reconsider my views and am ready to admit that I am wrong (even when it is difficult). But when they begin to reproach me for the work in which I have invested everything, they very sharply criticize the work done, it hurts me. The consequences are terrible.
Let me give you an example:
When we launched Babel 6, the planned changes to the API were made. We have moved from an implicit approach (works out of the box) to an explicit one (works for all).
Before the release, the functionality did not cause controversy and a lot of effort was put into it. We prematurely, in a few months, informed the community about our intentions and collected feedback.
But when it came time to publish the version, articles like "[Babel 6 is] a lesson how not to write applications" or "[the Babel team] destroyed the web platform" immediately fell down. I met people who mentioned me online, calling me an idiot. And a wave of articles about the “decline of JavaScript”.
Every day, notifications of how enchanting we screwed up seemed to me.
Why continue after this? Of course, we burned out the desire to work on the project. I no longer feel like I create Babel. It all started as the most interesting experience in my life, and ended up with every day I feel worse and worse.
Vicious reactions are over. Every day I have to read how someone yells about how badly we work. In this situation, it is difficult to maintain motivation - I literally stopped looking at the issue and pull requests.
I'm on reddit, a couple of months after the release of Babel 6For any developer community, this is a huge problem when participants start to burn out. If periodically, every couple of years, some innovations really do not suit people, they should help us to understand this, because in the end, such criticism has a painful effect on the community as a whole.
Yes, our products have their own difficulties. But instead of hitting on those who can best fix it, why not take their side and help sort it out? This is not so difficult, but for some reason many people do not think about it.
I would like to tell you about another article that was published recently.
For a start, the title itself already offends the developer. Of course, the author wants to talk about the existing problems in the product, but does the developer even want to open such an article, not to mention the analysis of the information contained in it.
The article describes the difficulties that can be encountered when working with Angular 2. Provocative headlines and a lot of empty offensive words that do little to explain the nature of the problems themselves.
Even there were similar branches in
/ r / javascript , in which this relationship is supported and even more words in a bunch of copyright.
The appearance of articles and discussion threads was very disappointing.
There was not a single productive thought in them. It is impossible to benefit from this. It was a group of people who teamed up and shouted about their vain attempts to sign with the product before switching to another tool.
The Angular team has amazing people with a head on their shoulders and great experience in the community. I am sure they will survive this.
But not everyone can take a punch. Wounds remain and become a burden for developers, especially new ones.
I do not say that the criticism of our work is not needed or it should not be public. I am not writing this letter due to the fact that I am a fanatic of Angular 2. I no longer work with the UI, but even when I was working, it was not in the Angular 2 team.
In fact, the last couple of weeks, I decided to start using it. I want to study it, as it is important to look at the technical solutions of others and try it out on personal experience.
As a person who has created a lot of UI, I would like to share this experience:
- Angular 2 is very dynamic. The basis is a set of ideas that are not yet generally accepted, so the training takes place on the Skolz path.
- In the templates there are compact names that are not obvious at first glance. They look foreign, even if absolutely logical. Sometimes they have more meaning than they actually carry.
- Documentation as if throws you into the abyss and in a hurry trying to get you out of it. There is a lot of information and if you try to try everything, it becomes difficult to digest. Examples seem hazy. (This refers to item number 1)
- Also, the documentation mentions concepts that were not explained to the reader. Without argument, it is difficult to accept something new. (Also applies to # 1)
I could continue the list, but pay attention to this: I do not whine, do not insult, do not complain. I give feedback.
Each item in this list (perhaps, except for the first one, which was mentioned only as a reference for the remaining items) is a task for the team on which to focus. I present this as a friendly user who wants to make the product better.
And it is not hard at all. I took the problems that I had, and tried to understand the cause of their occurrence. In general, I believe that documentation always requires improvement, because everything else can function by itself. I chose the area that most favorably affects the experience of using the product as a whole. I tried to rectilinearly convey it so that it does not look like an attack of anger.
The work of the developer is sometimes tedious. You lose your mind when things don't work the way you want. People struggle with this in different ways, both in programs and in life.
I understand when people are frustrated when difficulties arise. I understand that not all people become those who make important decisions in a team, and at times it infuriates. I understand that career is very important for them.
What I don’t understand is attacks on those trying to help. I do not understand people who have decided to publicly express their rage and are not trying to positively influence the situation.
I admit that I myself am not without sin. Anger and frustration sometimes overcome and it becomes difficult to contact people. I always regretted when this happened to me and I had to force myself to apologize many times.
Of course, it is easy to justify your aggression by trying to convey your point of view. To think that you are helping others by expressing yourself in this way. To think that you are hot-tempered because you have to do with it.
But we, as a community, have to confront it.
You can become a part of this situation not only by writing an angry article or insulting the developer on Twitter. But everyone in this community is probably guilty of being allowed to speak to someone louder than the rest.
Every time we positively vote, like, or mark someone’s negative with an asterisk, we increase their rage. Each of our comments superimposed on the words of the author and all this is hostile to those who only want to change the situation for the better. Caustic article with 1000 pluses and 600 comments can not but hurt.
Even those sensible, well-intentioned and positive people, justify this behavior by inaction, not rejecting it immediately.
Being part of a community in which this manifests itself is a nightmare for the developer. It seems to you that you are just trying not to become another target of their anger.
And when this goes on for weeks or months, as is often the case, then everything ends up with the people who are most capable of solving the problem leaving. This is the worst thing you can imagine for the community. Developers leave and often projects cannot be rehabilitated after such.
Babel managed to get on her feet, but it took almost a year for the new team to continue working on the project. This was achieved only through the hard work of people such as
Henry Zhu [Henry Zhu] and
Logan Smith [Logan Smyth].
My biggest contribution to the project over the past year was adding, as a joke, ascii graphics to Guy Fieri. It was criticized as “extremely unprofessional” behavior and people asked “how can we trust the team after this?” - well ... I think it's time to stop.
And there are many such “communities”, including / r / javascript, Hacker News, in which a negative attitude is encouraged more than a positive one.
I already mentioned that I was lucky to meet many developers from various open source projects over the past couple of years. I met hundreds. You will probably find it difficult to name a project with thousands of stars on GitHub, in which I personally would not have known at least one developer.
And I have talked with these people a thousand times over the years, having accumulated a lot of advice.
I have always been advised to avoid such “communities” as / r / javascript and Hacker News. They said that they were overflowing with ignoramuses, who did not know what they were talking about, with trolls screaming at everyone and everything, that they were just pits where gigantic mountains of nonsense burned.
More often I was told: “Do not let them get to you, they are not worth it.”
Such communities get rid of the people who can contribute the most. From those who are able to solve problems that arise in the community. And all due to the fact that some are not able to control their anger and be more restrained.
It must be stopped. Must stop encouraging anger. If not for the sake of the developers, then for the sake of yourself. Otherwise we punish only ourselves.
It is necessary to highlight articles that raise real problems and positively affect the community. You need to participate in discussions that are aimed at obtaining a result. Fight the desire to publish something that reflects only hatred. You can not continue to accumulate problems without investing anything in their solution.
If you focus on solutions and helping others, sharing ideas, then we can change the world for the better. We are all part of a larger community and have an influence on it. This influence is either constructive or destructive. It all depends on us.
Such are the realities of the community. We will either work on the bugs, or continue to dig our own hole.
Respectfully,
James kyle