JavaScript様、

私たちのコミュニティの問題についてお話したいと思います。



Babel、Flow、Yarn、Lernaなど、多くのオープンソースプロジェクトに参加しました。 開発者として、私は幸運にもコミュニティの最高の時代と最悪の時代の一部になりました。



楽しい思い出に、世界中の会議への招待状を含めたり、世界中から新しい友達が来るとは想像もしていなかった場所に旅行したりできます。 私はオープンソースプロジェクトで働くことで親友を作りました。



しかし、私が遭遇したのはこれだけではないのではないかと心配しています。



私自身から :さらにテキストは著者の魂の叫びであり、私には思えるように、すべての開発者、著者、解説者によって読まれるべきです。 言葉には、常にある程度の意味と影響があります。



数万人のユーザーがいるプロジェクトに参加しているとき、多くの批判に会わなければなりません。 時々、私はある種の政治家のように思えます。 一部の批判は正当化されていませんが、ほとんどはまだ建設的です。 しかし、最も不快なのは、彼らがしばしば残酷すぎると批判することです。









そのような否定性は、さもなければ適切な批判に影響を与えます。 プロジェクトに取り組んでいる間に私がしなければならなかったさまざまな妥協について話すのに何日も費やすことができます。 私は自分の意見を確認できてうれしく、自分が間違っていることを認める準備ができています(難しい場合でも)。 しかし、彼らが私がすべて投資したビジネスのために私を非難し始めるとき、彼らは行われた仕事を非常に鋭く批判し、それは私を傷つけます。 結果はひどいです。



例を挙げましょう。



Babel 6を起動したときに、APIに計画的な変更が加えられました。 暗黙的なアプローチ(箱から出してすぐに使える)から明示的なアプローチ(誰でも使える)に移行しました。



リリース前は、機能によって矛盾が生じることはなく、多くの労力が費やされていました。 私たちは数ヶ月前に、コミュニティに意図を通知し、フィードバックを収集しました。



しかし、バージョンを公開するときが来たとき、「[Babel 6は]アプリケーションの作成方法に関するレッスン」または「[Babelチーム]はWebプラットフォームを破壊しました」のような記事がすぐに現れました。 私はネット上で私に言及した人々に出会い、私を馬鹿と呼んだ。 そして、「サンセットJavaScript」に関する記事の波。









毎日、私たちがどれほどうんざりしたかについてのメッセージの通知を見ました。



この後続行する理由 もちろん、私たちはプロジェクトに取り組む意欲に圧倒されました。 バベルを作成する気はなくなりました。 それはすべて私の人生で最も興味深い経験として始まり、毎日私がますます気分が悪くなるという事実で終わりました。



悪質な反応を超えました。 毎日、私たちがどれほどひどく働いているかについて誰かが叫ぶ方法を読む必要があります。 この状況では、モチベーションを維持することは困難です-私は文字通り問題とプルリクエストを見ることをやめました。
Babel 6がリリースされてから数か月後、redditを使用しています



開発者コミュニティにとって、これはメンバーが燃え尽きるときの大きな問題です。 定期的に、数年ごとに、人々がいくつかの革新に本当に満足していない場合、最終的にそのような批判はコミュニティ全体に苦痛を与えるので、彼らはこれを理解するのに役立つはずです。



はい、当社の製品には独自の問題があります。 しかし、それを最もよく修正できる人に出会う代わりに、彼らの側を取り、それを整理するのを手伝ってください。 これはそれほど難しいことではありませんが、何らかの理由で多くの人がそれについて考えません。






最近リリースされた別の記事についてお話ししたいと思います。









まず第一に、タイトル自体はすでに開発者を怒らせています。 もちろん、著者は製品の既存の問題について話したいのですが、開発者はそれに含まれる情報の分析は言うまでもなく、そのような記事を開きたいとさえ思うでしょう。



この記事では、Angular 2を使用するときに発生する可能性のある問題について説明します。



/ r / javascriptにも同様のブランチが登場しました。このような姿勢はサポートされており、さらに多くの言葉が著作権の束に含まれています。



記事とディスカッションスレッドの表示は非常に残念でした。



それらには単一の生産的な考えはありませんでした。 これから恩恵を受けることは不可能です。 それは、別のツールに切り替える前に製品と署名しようとする無駄な試みについてチームを組み、叫んだ人々のグループでした。



Angularチームには、肩に頭を抱え、コミュニティでの豊富な経験を持つ素晴らしい人々がいます。 彼らはそれを生き残ると確信しています。



しかし、誰もがヒットするわけではありません。 傷は残り、開発者、特に新しい開発者の負担になります。



私たちの作品を批判する必要はない、あるいはそれを公にすべきではないと言っているのではありません。 私はAngular 2の狂信者であるため、この手紙を書きません。私はUIを使用しなくなりましたが、たとえそうしてもAngular 2チームにはいませんでした。



実際、ここ数週間、私はそれを使い始めることにしました。 他の人の技術的な解決策を見て、個人的な経験から試してみることが重要だからです。



多くのUIを作成した人として、この経験を共有したいと思います。



  1. Angular 2は非常に動的です。 まだ一般的に受け入れられていない多くのアイデアに基づいているため、トレーニングは滑りやすい経路で行われます。

  2. テンプレートには、一見しただけではわかりにくいコンパクトな名前があります。 たとえ絶対に論理的であっても、それらは外見的に見えます。 時には彼らは実際に運ぶよりも理にかなっています。

  3. ドキュメンテーションはあなたを深byに投げ込み、急いでそれからあなたを引き出そうとします。 たくさんの情報があり、すべてを試してみると、消化するのが難しくなります。 例はあいまいに見えます。 (これはパラグラフ1を参照)

  4. ドキュメントには、読者に説明されなかった概念も記載されています。 議論がなければ、新しい何かを受け入れることは困難です。 (第1にも適用)



リストを続けることはできますが、これに注意を払ってください。私は泣き言を言ったり、in辱したり、文句を言ったりしません。 フィードバックをします。



このリストの各項目(最初の項目を除き、残りの項目へのリンクとしてのみ言及されている場合があります)は、チームが注力するタスクです。 私はこれを、製品をより良くしたい友好的なユーザーとして提示します。



そして、それはまったく難しくありません。 私が抱えていた問題を取り上げ、それらの発生の原因を理解しようとしました。 一般に、ドキュメントは常に改善が必要だと思います。他のすべてが単独で機能できるからです。 私は、製品全体の使用経験に最も有利に影響する領域を選択しました。 怒りの攻撃のように見えないように、私はこれを率直に伝えようとしました。






開発者の作業は面倒な場合があります。 あなたが望むようにすべてがうまくいかないとき、あなたは夢中になります。 人々は、プログラムと生活の両方でさまざまな方法でこれと格闘しています。



困難が生じたときに人々がイライラするときを理解しています。 すべての人々がチームで重要な決定を下す人になるわけではなく、時にはそれが激怒することも理解しています。 私は、キャリアが彼らにとって非常に重要であることを完全に理解しています。



私が理解できないのは、助けようとしている人に対する攻撃です。 怒りを公に表明することを決め、状況に積極的に影響を与えようとしない人々を理解していません。



私自身、罪がないわけではないことを認めます。 悪意と欲求不満が時々克服され、人々とのコミュニケーションが困難になります。 これが私に起こったとき、私はいつも後悔し、私は何度も謝罪することを強いられました。



もちろん、自分の視点を伝えようとすることで、攻撃性を正当化するのは簡単です。 このように自分自身を表現することで、他の人を助けていると思うこと。 あなたが気にかけているので、あなたは短気だと思うために。



しかし、コミュニティとして、私たちはこれに立ち向かう必要があります。






怒っている記事を書いたり、開発者をTwitterでby辱したりするだけでなく、そのような状況に参加することもできます。 しかし、おそらくこのコミュニティの誰もが、誰かが他の人よりも大声で話せるようにすることに罪を犯しています。



私たちが肯定的な投票をしたり、誰かのネガティブをアスタリスクでマークしたりするたびに、私たちは彼らの怒りを増やします。 私たちの各コメントは著者の言葉に重ねられており、これは状況をより良くしたいだけの人々に敵対的に向けられています。 1000のプラスと600のコメントを含む退屈な記事は触れざるを得ません。



思慮深く、意図的で、前向きな人々でさえ、すぐにそれを拒否するのではなく、怠慢によってそのような行動を正当化します。



これが明示されているコミュニティの一員になることは、開発者にとって悪夢です。 あなたは彼らの怒りの次のターゲットにならないようにしようとしているようです。



そして、これが頻繁に起こるように、数週間または数ヶ月続くと、問題を残すことができる人が最も多くなります。 これは、コミュニティにとって想像できる最悪のものです。 開発者は去り、多くの場合、プロジェクトはこの後修復できません。



Babelはなんとか立ち直ることができましたが、新しいチームがプロジェクトに取り組み続けるのに1年近くかかりました。 これは、 Henry ZhuやLogan Smythなどの人々の努力のおかげで達成されました。



過去1年間のプロジェクトに対する私の最大の貢献は、Guy Fieriのasciiグラフィックを冗談として追加することでした。 これは「非常に専門的でない」行動として批判され、人々は「この後チームをどのように信頼できるか」と尋ねました。






そして、/ r / javascript、Hacker Newsなど、多くのそのような「コミュニティ」があり、肯定的な態度よりも否定的な態度が奨励されています。



過去数年にわたって、さまざまなオープンソースプロジェクトの多くの開発者に会えたことは幸運だったとすでに述べました。 私は何百人にも会った。 GitHubで何千もの星を持つプロジェクトに名前を付けるのはおそらく難しいでしょう。私は個人的には少なくとも1人の開発者を知りません。



そして、私はこれらの人々と長年にわたって何度も話し合い、多くのアドバイスを蓄積しました。



私は常に、/ r / javascriptやHacker Newsなどの「コミュニティ」を避けるようにアドバイスされています。 彼らは自分たちが何について話しているのか分からない無知な人々でいっぱいであり、トロールがあらゆるもので叫び、それはナンセンスの巨大な山が燃え尽きる穴だと言った。



彼らはもっと頻繁に私に言った:「彼らにあなたに到達させないでください、彼らはそれの価値がありません。」



そのようなコミュニティは、最も貢献できる人々を排除します。 コミュニティで発生する問題を解決できるものから。 そしてすべては、一部の人が怒りを抑制できず、より抑制されることができないという事実によるものです。



これを停止する必要があります。 怒りを助長することをやめなければなりません。 開発者のためではない場合は、あなた自身のために。 そうでなければ、私たちは自分自身だけを罰します。



本当の問題を引き起こし、コミュニティにプラスの影響を与える記事を強調する必要があります。 結果を得るための議論に参加する必要があります。 憎悪のみを反映したものを公開する衝動と戦ってください。 ソリューションに何も投資せずに問題を蓄積し続けることはできません。



ソリューションに焦点を当て、他者を支援し、アイデアを共有すれば、世界をより良く変えることができます。 私たちは皆、より大きなコミュニティの一員であり、それに影響を与えています。 この影響は建設的または破壊的です。 それはすべて私たち自身に依存しています。



これがコミュニティの現実です。 バグに取り組むか、自分で穴を掘り続けます。



よろしく

ジェームズ・カイル



All Articles