プログラミングを社会的な行為と見なすことはプログラミングの周囲のコミュニティ構築方法を変える。コードベースではなくコミュニティを構築することに注力するべきだ、とAsh Furrow氏は言う。氏は、行動規範を用いて、長い議論はスカイプやGoogle Hangoutを使い、簡単な課題を自分で解決するのではなく、責任を権力を分散することを推奨している。
ArtsyのシニアエンジニアであるAsh Furrow氏はCraft 2017で、オープンソースのコミュニティを作ることについて話した。InfoQはこのカンファレンスをインタビューと記事で取り上げている。
InfoQは氏にインタビューを行い、社会的な行為としてのプログラミングについて、オープンソースコミュニティで共感を広める方法について、オープンソースへの貢献を容易にする方法について、オープンソースのメンテナの燃え尽きを素早く検知する方法やそれを防ぐ方法、そして、組織がオープンソースから得られる利点について話を聞いた。
InfoQ: "プログラミングは社会的な行為だ"と言いましたね。詳しく教えてください。
Ash Furrow: プログラミングとはなんなのか考えてみましょう。プログラミングは単なるタイピングではありません。ドキュメントを読み/書きし、質問をし、そしてコードを読み/書くことがプログラミングです。これらは全て人間のコミュニケーションの形態であって機械のコミュニケーションではありません(コードは人間が理解できるように書くべきであり、ついでにコンピュータが実行できるだけです)。コミュニケーションは社会的な行為です。私が思うに、プログラマはこの分野でのコミュニケーションの重要さを認識していない場合があります。
プログラミングを社会的な行為と捉えることはプログラミング周囲のコミュニティの構築方法を変えます。コードではなくコミュニティに注力するべきです。それには共感が必要です。
InfoQ: オープンソースコミュニティではどのように共感を促進できるでしょうか。
Furrow: オンラインのコミュニティで共感を生み出すのは難しいです。テキストでやりとりするからです。テキストにはニュアンスがありません。トーンがありません。私がメンテナに、長い議論は可能な限りスカイプやGoogle Hangoutで行うことを推奨するのはそのためです。相手の顔をみて声を聞くことは、全員がプロジェクトにとって最良なことを求めているということを思い起こさせてくれます。
行動規範もとても役に立ちます。コミュニティに参加することは歓迎されることであり、いじめや侮辱されることを心配する必要はない、ということを知らしめるのに使えます。ソフトウェアは、皆のために開発されるべきであり、それを実現する唯一の方法は皆によって開発されることです。今までプログラミングコミュニティにはいなかった人たちを歓迎することなしには実現できません。
InfoQ: オープンソースへの貢献を容易にするためにメンテナができることは何でしょうか。
Furrow: コードベースではなくコミュニティを構築することに注力することです。簡単な課題を自分で解決するのをやめ、GitHubでイシューを作り、"fit for newcomers"というラベルを貼って、誰かが解決できると感じられるようにしましょう。イシューを開いてくれた人には感謝しましょう。
コミュニティのメンバに賛成できない場合もあります。私はそのような場合、LARA(Listen, Affirm, Respond, Add)アプローチを使います。
- Listen – 相手が書いたものを再読し、とりあえず信じてみることにする、ということを伝えます(親友がコメントをしたかのように)。
- Affirm – 賛成できる点を見つけ、それを伝えます。
- Respond – 丁寧かつ親切に議論を続けます。
- Add – 事実、反例、プロジェクトのビジョンについてのドキュメントを示します。
InfoQ: メンテナの燃え尽きのリスクについても話していましたね。燃え尽きを検知し、回避するにはどうしたらいいでしょうか。
Furrow: 権限と責任を可能な限り早い段階で手放します。プルリクエストをマージし、新しいイシューをレビューする権限を与えるということです。貢献者をRuby gemやCocoaPodのオーナーとして加えるということです。また、マスターブランチを強制プッシュから守るということでもあります。
あなたが関わらなくとも、イシューが報告され、分析され、修正される、という状態が理想です。
InfoQ: 組織はオープンソースから何を得ることができるでしょうか。
Furrow: いくつかの点で利益があります。まず、評判です。雇用者として十分な評判を得ていないなら、オープンソースへ貢献することで獲得できます。評判によって開発者があなたの会社へ惹きつけられます。そして、無償の教育です。もしあなたのオープンソースが人気になったら、新しく採用された人もそのオープンソースに馴染んでいる可能性があります。最後に無償の貢献です。あなたのコードを多くの目が見ています。そして、多くの開発者がプロダクションで使っています。未来へのアイディアや品質保証のテスト、バグレポート、コードを改善するプルリクエスト。その全てを支払いをせずに得られます。
また、私の考えでは、オープンソースに関わることは好奇心と失敗から学ぶ文化を養うのに役に立ちます。このような態度は組織の心理的安全性に繋がっており、従業員をより幸せに、生産的にします。オープンソースはチームがより良いコードを素早く高品質に書くことに貢献します。チームを満足感を得られます。ウィン-ウィンの関係なのです。
Rate this Article
- Editor Review
- Chief Editor Action