読者です 読者をやめる 読者になる 読者になる

音声チャットをはじめよう! - festivoice.net オープン

http://festivoice.net/
気軽に多人数の音声チャットが始められるサービスfestivoice.net(フェスティボイス)をオープンしました!

festivoiceはfestival(祭)とvoice(声)を組み合わせた造語です。ユーザー登録が不要で、誰でも簡単に始められます。

文字だけではうまく伝わらないことは、とてもよくあります。そんなときにfestivoice.netを試してみてください。


festivoice.netのシステムはオープンソース*1で公開しています。社内のサーバーや自分のノートPCに入れて使うことができます。「ちょっと音声チャットができるといいなー」と感じていたら、ぜひ導入してみてください。

設定ファイルを書く必要もなく簡単に起動できるので、文字のチャットがもどかしくなったら、ササっとサーバーを起動してやるとカッコイイでしょう ;-) ササっと使えるサーバーをあらかじめ起動しておくと、さらにカッコイイでしょう :-p

festivoiceができるまで

festivoiceは、私を含めて3人で約1ヶ月で開発しました。皆筑波大学の学生*2です。

  • FURUHASHI Sadayuki:企画・サーバー実装・クライアント実装・Webインタフェースを担当
  • KASHIHARA Shuzo:ストリーミング・クライアント実装・サーバー実装を担当
  • SHIBATA Yasuharu:音声圧縮・サウンド入出力・クライアント実装・Webからの1クリック起動を担当

それぞれ学業や他の仕事を両立しつつ、さらにそこから捻出した少ない時間の中で作っていたので、実質的な開発期間は1ヶ月よりもっとずっと少ないです。


開発のスタートがとてもスムーズだったのが印象的でした。

  • 「開発リポジトリが必要だ」
  • 「gitのリポジトリを作ろう」
  • Xenで開発用サーバー立てました」
  • Trac作りました」
  • sshのアカウント作りました。公開鍵送ってくださいな」
  • 「masterブランチにmavenプロジェクトをpushしました」

少人数ならではのフットワークの軽さと、個々人の技術力の高さが際立っています。


開発の中ではペアプログラミングを実践してみました。以前に紹介したCagraの開発の時のスタイル(両方コードを書き、困ったら相談する)とは別のスタイルで、「片方(ドライバー)がコードを書き、片方(ナビゲーター)が見ていてツッコむ・ナビゲートする」というスタイルです。
詳しくは:はじめてのペアプログラミング - obfuscatism コードを書くペースが1人より圧倒的に速いというのは事実です。


ナビゲーターは「ドライバーの後を追ってコードが間違っていたら指摘する」と言うよりも、ドライバーに先回りして書かれるであろうコードを予測しておくといいのかもしれません。
自明なら呼び出している関数に渡すべき引数を読み上げたり、ドライバーが予測とは違うコードを書き始めたら「なぜ違うコードを書いたのか」を考えてみて、間違っていると思ったら指摘して相談してみたり、自分が予測したコードの方が良いと思ったらそれを提案できます。
この過程は非常に刺激的で、お互いにモチベーションを維持することができ、その上コードの品質も上がります。


これを実践するには、やはり以下のようなポイントが必要かなーと思います:

  • 最初にこれから書くコードの意味や大まかな設計を互いに理解しておく
  • お互いに十分にプログラミングのスキルがある

今回のペアプログラミングは既存のコードの再設計(高速化・マルチスレッド化)だったということもあり、コードの意味はお互いに十分に理解していました。やっぱり人間なので途中でコロコロと忘れるわけですが、2人で共有しておくことですぐに取り戻せます。


ペアプログラミングは非常に効きます。そこで密にコミュニケーションを取るのは重要です。とは言え同じ場所・同じ時間に都合良く開発者が集まるのはなかなか難しいものです。そんなときfestivoiceが役に立つかも知れません ^_^;)

*1:ライセンスはApache License, Version 2.0

*2:そしていわゆるAC