今回は、『Contribute to opensource: the right way』の著者であるDaniele Scasciafratte氏へのインタビューの後編です。これは彼へのインタビューのパート2です。パート1はこちらから。
多くの人は、オープンソースプロジェクトに貢献するという考え方に怖気づいたり、圧倒されたりしているかもしれません。あなたの本は、このような懸念にどのように対処し、貢献を志す人たちに指針を与えているのでしょうか?
どのオープンソースプロジェクトも同じ環境アーキテクチャとツールを持っています。最初のステップは、プロジェクトがどのように動いているかを説明することです:コミュニケーションプラットフォーム/サービスや、それらの違いを説明し、あなたがメンテナの作業を単純化するためにここにいることを提案します。次のステップでは、機能やドキュメントの改善など、あなたのニーズを理解してもらうための個人的な質問をします。最後のステップは、さまざまな活動に関するものです。
私はこれらのステップを第1レベルと第2レベルに分け、プロジェクトに直接的な影響を与えるか与えないかに分類している。直接的な活動とは、プロジェクトへの影響が即座に確認できるタスクのことである。これに対して、非直接的な仕事の影響は、その仕事が終わってからわかるかもしれない。
第一レベルの活動は、プロジェクトの経験がゼロでも誰にでもできる。レビュー、ローカライゼーション、サポート、テスト、プロモーション、エバンジェリズムなどである。第2レベルは、より多くの経験を必要とし、新人には難しい:ドキュメント作成、コミュニティ管理、開発。
このように貢献を分類することで、FOSSプロジェクトがどのように機能しているのかを誰もが理解しやすくなり、どのプロジェクトでも同じアプローチを再利用できるようになります。
全てのプロジェクトは異なるため、人々は圧倒され、何から始めればいいのかを明確にする必要があります。代わりに、日常的なことを探すことが助けになります。例えば、食料品の買い物をしていて、新しい商品について何もわからないとき、原材料を説明しているラベルを読むだけです。
あなたの本は、プロジェクトの選択、開発環境のセットアップ、パッチの提出、問題やプルリクエストへの対応など、オープンソース貢献のさまざまな側面をカバーしています。オープンソース貢献への新しい読者のために、実践的なヒントや戦略を教えていただけますか?
熟練者であろうと初心者であろうと、開発者であろうとローカライザーであろうと、私がいつも勧める最初のことは、たとえそれがReadmeファイルであったとしても、とにかくドキュメントを読むことだ。
知識は、自分の経験に近いほど意味がある。この本の最初の草稿を書きながら、いろいろな人にレビューしてもらったのですが、多くの人が専門用語の説明を求めていたり、私が十分に説明し、明確にしていないことを求めているのがわかりました。
オープンソースは、チケット、コードパッチ、サポートフォーラムでの返信など、人々のフィードバックに基づいている。プロジェクトの将来にとって重要な何かを改善することから始めてはどうだろう?Stack Overflowの調査によると、FOSSプロジェクトの主なセールスポイントの1つはドキュメントの質で、コミュニティがそれに続くという結果が出ていたのを覚えています。
私が見た新参者のもう一つの問題は、彼らはプロジェクトに感激して貢献したいが、何から始めればいいのか手助けが必要だということです。
様々な活動内容を説明することで、どこに貢献するのが心地よいかを理解することができる。サポートに参加することは理想的なステップです。
オープンソース・プロジェクトには、しばしば独特の文化、開発プロセス、コーディング標準があります。あなたの本は、読者がこれらの違いをナビゲートし、さまざまなタイプのプロジェクトに効果的に貢献するためにどのように役立ちますか?違いが解決された後、最も簡単に始められる方法は何ですか?
様々なコミュニケーションツールやプラットフォームツールについて説明することは、通常、コミュニティの構造を理解するための方法です。例えば、そのコミュニティが企業によって運営されているのか、それとも様々な貢献者によって運営されているのか、他のコミュニケーションメカニズムを持つ現代的なコミュニティなのか、古い手続き(メーリングリストのみなど)を持つ古いコミュニティなのか、新しい人を歓迎しているのか、などです。
\統合主義的アプローチでプロジェクトに参加することは、FOSSが(中略)有名なことです。プロジェクトを改善する最善の方法に参加できないようなバイアスを持つことになります。私は、そのプロジェクトがGitHubやGitLabを使っているかどうかということ以外に注目しています。それらは、特定のサービスやポリシーを持つコードホスティングプラットフォームに過ぎません。行動規範も重視しません。行動規範は確かに重要ですが、研究段階やプロジェクトに貢献する最初のステップにいるときだけではありません。
オープンソース・プロジェクトは、その規模、複雑さ、成熟度において大きく異なることがあります。あなたの本は、さまざまなプロジェクトにどのように対応し、読者が自分のスキル、興味、目標に基づいて貢献するのに適切なプロジェクトを選択できるように導いていますか?
どんなプロジェクトにもさまざまなニーズがあるので、たとえば優先順位を学ぶ:
私は外部のリソースも使って様々な分野や活動を説明している。134ページの本には、総括、分析、ジャーナルなど、プロジェクトがどのように何かを改善したかを、バズワードではなく事実で説明しているリソースへのリンクが200も掲載されています。
最後に、読者にこの本から何を感じ取ってほしいですか?オープンソースプロジェクトに貢献することに興味があるけれど、何から始めたらいいのかわからないという人に向けて、メッセージやアドバイスをお願いします。
メッセージは簡単です:心配しないで、親切にしましょう。FOSSは人間によって作られたものであり、もしあなたが彼らと話し、あなたにとって非常に迷惑なバグを報告するときに、プロフェッショナルで、気品があれば、今後のあらゆる動きが改善されるでしょう。
また、もし相手がプロジェクトで働くために給料をもらっている従業員であれば、親切であることは常に良いことです。FOSSの冒頭にあるモットー “Free as Beer “を忘れてはならない。
この本のタイトルには「正しい方法」という言葉が含まれているが、これはあるアプローチがより効果的であるということを言っているに過ぎない。この本は、オープンソース環境でのキャリアの一例を示すために、私の自伝から始まります。
新版のたびに、私はイベントでアイデアを集め、人々と話し、TwitterやRedditを読んで人々が何を求めているかを確認することから始めた。こうすることで、COVIDのパンデミックの時に始めたように、FOSSの世界の「温度計」をチェックすることができる。
追加すべきものがあれば、本を改善するためのリソースを集めています。
今、私はAIの台頭を追っていますが、GitHub Copilotのケースですでに見たように、FOSSの分野ではこの本に影響するような新しいことは(私見では)ありません。それでも今更ながら、例えばいくつかの特殊なルールを持つ新しいライセンスがいくつかある。
というのも、私はいつも「オープンソースに貢献する」というトピックについて言うべきことはすべて書いたと判断しているからだ。これは読者の皆さんにとっての課題です: 何か足りないものがあれば、私に連絡してください 😀
また、重要なことは、この本を読んで、誤字脱字や不明な点、トピックに欠けている点を私に報告すること自体が、オープンソースに貢献しているということだ。本書はすべてGitHub上にあり、フリーなGPLv3ライセンスの下でライセンスされています。貢献した人は本の中で言及されている。
ダウンロード数は1,000に近づきつつあり、新記録となるだろう。
第3版に関連する例としては、この本とオープンソースに対する私の目的とアプローチを説明するために述べた「ボーイスカウトのルール」が挙げられると思う:
「キャンプ場はいつも、自分が見つけたときよりもきれいにしておくこと。地面に散らかったゴミを見つけたら、誰が作ったかに関係なく片付ける。次のキャンパーたちのために、意図的に環境を改善するのだ。”
オープンソースコミュニティに関する私の最近のインタビューのひとつ、Developers’ BakeryのポッドキャストでのGlotDictについてです。