開発プロジェクトを支える名脇役たちオープンソースソフトウェアの育て方(1/3 ページ)

多くの開発プロジェクトでは、IRCやRSSフィード、Wikiといったツールを駆使して開発が進められています。本稿では、そんな名脇役たちにスポットを当てていきます。

» 2009年09月15日 08時00分 公開
[Karl Fogel, ]

IRC/リアルタイムに行なわれるチャットシステム

 多くのプロジェクトでは、Internet Relay Chat(IRC)を使ったリアルタイムのチャットルームを提供しています。そこではユーザーと開発者が質問を出し合い、すぐに返事をもらうことができます。自前のIRCサーバを動かすことも可能ですが、普通はそこまで頑張る必要はありません。むしろみんながやっていることをまねてみましょう。つまり、Freenodeで自分のIRCチャンネルを開設するのです。Freenodeは、IRCサーバを自分で管理する苦労からあなたを解放すると同時に*1、プロジェクトのIRCチャンネルを管理するために必要な規制を行っています。

 まずやるべきことはチャンネルの名前を決めることです。最も分かりやすいのはプロジェクトの名前です――Freenodeで使える名前なら使ってください。もし使えないのなら、プロジェクトの名前に近い名前で、できるだけ覚えやすい名前を選んでください。質問に素早く答えてほしいユーザーがすぐに分かるように、プロジェクトのWebサイトでIRCチャンネルが利用できることを知らせましょう。例えばSubversionのホームページでは、ページ上部の目立つボックス部分に次のような情報を表示しています。

Subversionをお使いなら、メーリングリスト users@subversion.tigris.orgを購読し、Subversionによるバージョン管理FAQを読むことを勧めます。IRCのirc.freenode.net上のチャンネル#svnでも質問することができます。

 プロジェクトによっては複数のチャンネルを持つものもあり、1つ1つが副次的なトピックを扱っています。例えばあるチャンネルはインストール時の問題を扱い、別のチャンネルでは使い方の問題、開発に関するチャット、などです。(章6.コミュニケーション巨大化への対応項では、チャンネルを複数に分割する方法について議論しています)プロジェクトが始まって間もないなら、皆が一緒にお喋りできるようにチャンネルの数は1つにすべきでしょう。後に開発者1人に対するユーザーの数が増えるのに応じて、チャンネルの分割が必要になるかもしれません。

 どのチャンネルで喋ればよいかは言うまでもなく、利用できるすべてのチャンネルを知らせるにはどうしたらよいでしょうか? そしてチャットをするとき、プロジェクトに特有の決まりごとを知らせるにはどうすればよいでしょうか?

 答えはチャンネルトピック*2を設定して知らせることです。チャンネルトピックは、はじめてチャンネルに入ったときにユーザーが見るメッセージです。これは新顔のユーザーに簡単な案内をすると同時に、さらに詳しい情報へのポインタを提供します。例えば以下のようなものです。:

あなたは #svn で喋っています。

#svn のトピックは以下の通りです。Subversionユーザーの質問を受け付ける

フォーラムです。http://subversion.tigris.org も参照してください。||

開発に関する議論は、#svn-dev で行われています。|| 長い Subversion の

トランザクションを貼りつけないでください。http://pastebin.ca/ のような

貼りつけ用のサイトを使ってください。|| ニュース: Subversion 1.1.0 が

リリースされました。詳しくは http://svn110.notlong.com/ を参照してくだ

さい。

 これは簡単ですが、新顔のユーザーが知る必要がある情報を伝えています。チャンネルの目的を正確に伝え、プロジェクトのホームページを示し(ユーザーによっては、プロジェクトのWebサイトを訪れたことがないとチャンネル内で迷子になってしまいます。)関連するチャンネルに言及し、貼りつけに関する案内もあります。

貼りつけ用のサイト

 IRCチャンネルは共有スペースです。誰でも他人の発言を見ることができます。これは貢献したいと思うときに会話に割って入れますし、ほかのメンバーはやり取りを見て学ぶことができるので普段はよい状態です。しかしデバッグセッションのコピーのように、大量の情報を一度に流さなければならない場合は問題になります。なぜなら、チャンネルにあまりに多くの行を貼りつけるとほかの会話をぶち壊してしまうからです。

 こうした問題の解決策は、ペーストビンまたはペーストボットサイトを使うことです。大量のデータを他人から見てほしいと頼まれる時は、チャンネルに貼りつけないで、(例えば)pastebinに行き、フォームにデータを入力して生成されたURLをチャンネルに伝えるように頼みましょう。そうすれば、そのURLを誰でも訪れてデータを見ることができます。

 今ではたくさんの貼りつけサイトが無料で利用できますし、まとめて示すには数が多すぎますが、わたしが使われているのを見たことがあるサイトを幾つか以下に示します。NoMorePasting.compastebin.carafb.netpastebin.com


ボット

 多くの技術指向なIRCチャンネルには、いわゆるボットと呼ばれる人間でないメンバーがいます。これは特定のコマンドに反応して情報を保存したり、表示したりできます。通常は、ボットはチャンネルにいるほかのメンバーと同じように扱います。つまり、コマンドはボットに“話し掛ける”ことで伝えます。例えば次のようなものです :

<kfogel> ayita: learn diff-cmd = http://subversion.tigris.org/faq.html#diff-cmd

Thanks!


 これはボット(ayitaとしてチャンネルにログインしています)に“diff-cmd”という問い合わせの答えとしてあるURLを覚えておくように伝えています。では、ayitaに話し掛けて、ほかのユーザーにdiff-cmdに関する情報を伝えるように頼んでみましょう:

<kfogel> ayita: tell jrandom about diff-cmd

<ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd


 便利な短縮コマンドを使っても同じことが実現できます。

<kfogel> !a jrandom diff-cmd

<ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd


 正確なコマンドとそれに対する振る舞いはボットによって異なります。上の例はFreenodeの#svnで通常動いているayitaのものです。ほかにもDancerSupybotといったボットがいます。ボットを動かすのに特別なIRCサーバ上の権限は必要ないことを覚えておいてください。ボットはクライアントプログラムなので、誰でもセットアップして特定のIRCサーバ/チャンネル上で待機させることができます。

 あなたのチャンネルで同じ質問が繰り返される傾向があるなら、ボットをセットアップすることを強くお勧めします。ボットの操作方法を身につけるのはほんの一握りのメンバーですが、ボットが効率的に反応してくれるので、少ない人数で繰り返される質問に答えられるのです。

IRCの会話を保存する

 IRCチャンネルで起こったことはすべて保存できますが、必ずしもそれが期待されているわけではありません。IRCでの会話は建前上は公なものかもしれませんが、非公式なもの、もしくは半ばプライベートな会話だと考える人も多くいます。IRC上ではユーザーは文法に無頓着ですし、オンライン上で絶対に保存されたくない意見(例えば、ほかのソフトウェアやプログラマーに関するもの)を言ったりするかもしれません。

 もちろん、会話のまとめを保存すべき時もあるでしょう。その場合はよいのです。ほとんどのIRCクライアントはユーザーの要求に応じて会話を保存できますし、それができなくても会話をフォーラム(ほとんどの場合はバグ追跡システム)に貼りつけるだけならいつでもできます。しかし、節操なく会話を保存すると不安になるユーザーもいるかもしれません。すべての会話を保存するのなら、必ずその旨をチャンネルトピックで明示的に宣言し、保存先のURLを示すようにしましょう。

[1] Freenodeへの寄付を要求されたり、期待されたりすることはありませんが、あなた個人やプロジェクトに余裕があるなら寄付することを考えてみてください。米国国内からだと税金が控除される寄付金として扱われますし、寄付されたお金を使って価値のあるサービスが提供されるのです。

[2] チャンネルトピックを設定するには/topicコマンドを使います。IRCコマンドはすべて“/”で始まります。IRCの使い方やチャンネルの管理に慣れていないのであれば、IRC help archiveを参照してください。特にAn IRC Tutorialは優れたチュートリアルです。


       1|2|3 次のページへ

content on this article is licensed under a Creative Commons License.

注目のテーマ