Jiemamyの開発を支えるインフラ

普段このブログではJavaや設計のなど、テクニカルな話しか書いてないなー。そして、なんか毎回「講座」のようなエントリが多い。だもんで、今日は徒然的なお話でひとつ。あくまでエッセイなので、結論とか訴えたいこととか、まとまった身のある文章とか、あんま期待しないで読んでくださいw

元々Jiemamyを作り始めたのは、高効率な開発体制っていうものに高い関心があるからです。Jiemamy Projectが「ソフトウェアの提供」ではなく「開発モデルの提供」を目標に掲げているのもこの辺りから。そして、先日 Eclipse について執筆したのも、この分野への関心の高さからですね。

まぁそんな中で、DBの開発状態を適切にSCMで管理する体制をサポートするプロジェクトとしてJiemamy Projectを立ち上げた。これはあちこちで私が公言しているテーマですね。しかし、これとは別に、Jiemamy Projectには個人的な裏テーマがありまして。これが「最先端の開発インフラやOSSをふんだんに使った開発の実践」です。

実務だとフレームワークはこれ使えだ、OSSは使うなだ、それはもうありとあらゆる制約がありうる訳で、そういった制約が一切ないOSSプロジェクトでは、自由に環境を作れるわけです。予算の問題はありますが、近年はOSSでほとんど揃うんですよね。このような環境で開発を推進するノウハウ蓄積*1や、実効性の評価*2、というのが裏テーマです。

以前、コミッタにヒアリングをしたところ、Jiemamyに関わっているモチベーションの一つに、このハイスペックなインフラの元で開発ができる、というものもありました。同じようなことを考えているんですね。個人的にはまだ活用し切れているとは思えていませんが、みんなそこそこ満足しているようですw

さて、そんな開発を支えるインフラには具体的には様々なものがあり、Jiemamyの開発では Eclipse(IDE), Subversion(SCM), Maven(ビルドツール), Hudson(CI), Wiki(GoogleSite*3 ), GoogleGroup(メーリングリスト), Skype(IM), Tugboat.GTD(タスク管理), JIRA(ITS), FishEye(リポジトリビューア), Crucible(コードレビューア) 等*4を利用しています。

JIRA, FishEye, Crucibleについては商用製品になりますが、OSSプロジェクトに対しては無償のライセンスを提供してくれています。というわけで、お金はかかっていません。アトラシアン社には感謝してもしきれない感じです。ありがとうございますw まぁ、Javaアプリケーションサーバを用意しなきゃいけない敷居の高さはありますが。ASPサービスとかしてくれればいいのになーw

余談ですが、先日より私が所属する会社にJIRAが導入されました。キャンペーンなのか何なのか、10ユーザライセンスが1000円だったんすよ。1000円ってw そりゃ買うわ。今まで、ITSとしては Sourceforge付属のもの, Redmine, Trac, JIRA を使ってきましたが、さすが人気の商用製品。使いやすさはダントツです。こんな事言ったらTracRedmine好きな人に申し訳ない気もするけど(汗 まぁ好みは色々です。あくまで個人的な評価ってことでご容赦をw

で、そこに惚れ込んで、開発インフラをアトラシアンシリーズでほぼ固めている地豆ですw が、CIツール(アトラシアンにはBambooってのがあります)だけはHudson使ってます。まぁ、Hudsonのコミッタ id:cactusman が直接サポートしてくれるってんなら、そのメリットは大きいでしょう。ということで。この活用方法は、id:cactusman のブログでちょいちょい掲載されていますので、そちらにお任せ。ちなみに、彼が勉強会等で話す事例として地豆がよくとりあげられていますw

課題管理とタスク管理、つまりJIRAとTugboat.GTDですが。利用形態がカブるインフラに見えると思います。が、Tugboat.GTDのコミッタに聞いたところ、この2つは対立するインフラではなく、共存して相互補完する関係にある、とのことでした。なんとなくは分かるんですが、上手く活用し切れてはいない気がします、自分。タスクの粒度の話を以前聞いたのですが、その辺り上手く説明できないので、Tugboat.GTDのコミッタである id:kacchi123 や @yousukehara*5さんの解説に期待しておきますw

という恵まれた環境でOSS開発できています。いぇーい。という話でした。

*1:ただインフラを用意するだけで活用できる訳ではない。

*2:最先端のインフラだからといって効率が良いかどうかは分からない。

*3:wikiとはちょっと違うけども。

*4:上に挙げた以外にも、GoogleDocs, GoogleWave, RememberTheMilkなど、使ったら便利そうなインフラは色々ありますね。

*5:http://yosuke-perspective.blogspot.com/