衝動的に始めるFLOSSプロジェクト(1)~計画を立てよう~
【Intro】
FLOSSプロジェクトに関わったことはありますか? 最初の一歩を踏み出すまでは、躊躇してしまうものかもしれません。「仕事でもやってるから、プライベートでやる気がしない」という人もいるでしょう。あるいは「そこまで技術力がないから恥ずかしい」という人もいることでしょう。もしかしたら、「どうやって始めればいいのかがわからない」という理由で関わるのを避けてきた人もいるかもしれません。
「FLOSSは使うもの」という認識を持っている方が多くいらっしゃるかと思いますが、それはFLOSSの一面にすぎません。わたしの考える「FLOSS」は「参加するもの」です。幸いなことに、FLOSSプロジェクトの多くには、わたしのような若造も活躍する余地が多分にあります。趣味の1つとして、FLOSSに関わるのも結構楽しいものです。
前置きが長くなりました。実はわたし、性懲りもなくFLOSSプロジェクトを始めようと思っています。これ自体は「衝動的」と申しますか「思いつき」なので、どこまでできるのかはわかりません。ましてや、人様に誇れるようなものではないのですが、せっかくなので「わたしがどのようにFLOSSプロジェクトを始めたのか」について、数回に分けてご紹介しようかなと思っております。
先に言い訳させていただきますが、わたしが始めようと思っているこのプロジェクト、空き時間を見つけてチマチマ進めていこうと思っています。それくらい「お気楽」にやるつもりなので、記事の掲載間隔があいてしまうかもしれません。そのあたりはご容赦いただければと思います。もし、なにか疑問な点などがあれば、コメントをお寄せください。「わたしはこう思う」レベルになってしまうかもしれませんが、できる限りお答えしたいと思います。
【はじめに考えるべき事:ノープランからの脱出】
「FLOSSプロジェクトを始める」といっても、いろいろなアプローチがあります。いくら「衝動的に始める」とはいっても、「完全ノープラン」ではうまくいくはずのものもうまくいかなくなってしまうことでしょう。まずはじめにいくつか考えるべきポイントを列挙した上で、整理してみましょう。
○「何をやるのか」
いくら「衝動的に始める」とはいっても、「何をやるのか」が定まっていなければ何も始まりません。取り急ぎ、漠然としたイメージでも構わないので、「これをやる」というものを考えておくべきでしょう。
ちなみにわたしの場合は、「PHPのフレームワークもどきを実装する」というのがそれです。この記事を書いている時点では具体的に何かがあるわけではないのですが、「何をするか」が定まるだけで、自ずと「次は何をすべきか」が見えてくる(少なくとも「見えやすくはなる」)はずです。
○「独自にプロジェクトをはじめる」か「既存のプロジェクトに参加する」か
「FLOSSプロジェクトを始める」といった場合、「独自にプロジェクトをはじめる」か「既存のプロジェクトに参加する」かは、必ず考えることでしょう。どちらにするかは、個人の好みによるところが大きいとは思いますが、どちらを選ぶべきか、いくつかケースを列挙してみたいと思います。
- 独自プロジェクトの方がよい場合
- やりたいことが明白である
- 既存のプロジェクトでは自分のやりたいことができない
- ニッチなニーズに対応したい
- 業務として開発をしている(成果物を最終的に自社製品として使用したい)
- 既存のプロジェクトの方がよい場合
- 自分のやりたいことをしたい
- 初めて参加する
- あまり時間がとれない
- 普段使っているプロダクトに貢献したい
……と、こんな感じでしょうか。もちろんこのほかにもあるでしょうし、人によって基準は違うと思います。わたし自身は、「既存のプロジェクトにマッチするものがあるなら、それにコントリビュートしたほうが望ましい」と考えています。特に、自分が普段よく使うものがあるのであれば、それにコントリビュートすることにより、自分自身のメリットになるのはもちろん、コミュニティへの貢献にもなります。以上を一言で言えば、「基本は既存のプロダクトに参加する。それが不都合な場合のみ独自で始める」といったところでしょうか。
もし、「既存のプロダクトに不満があるので、Forkさせたい」というのが目的であれば、一度考え直した方がよいかもしれません。一概には言えませんが、「プロジェクトをForkさせる」ことは「けんかを売る」ことと見なされる場合があります。ライセンス上は問題のない行為だとしても、「人間」を相手にしている以上、プロジェクトメンバーと十分な話し合いを行うのが先でしょう。
ちなみにわたしの場合は、成果物を「自社でも」使いたいと思っています。そのため、FLOSSなライセンスとは別なライセンスで提供できるよう、準備しておきたいと思っています。これは、既存のプロジェクトでは難しいでしょう。また、既存のPHPフレームワークはすでに方向性が定まっているため、わたしが実装したいと考えるアイデアを入れ込む余地がありません(もっとも、この「アイデア」はたいしたものではないのですが)。以上の理由により「独自にプロジェクトを始める」という選択をしました。
○「どこでやるのか」
「FLOSSプロジェクトを始める」というぐらいですから、遅かれ早かれソースコードの公開をどうするかを考えなければいけないでしょう。そのほかにも、プロジェクトのWebページやコミュニティ内で使うメーリングリスト、そしてバグトラッカあたりは必要になることでしょう。必要になるのはいいのですが、問題は「誰がどこに用意するのか」という点です。自前ですべてを用意するのもよいでしょう。
とはいっても、すべての人が「自前ですべて用意する」という手段を使えるわけではありません。仮に「自前で用意できる」という人でも、手間の問題等で、意図的にその選択肢を除外する場合もあるでしょう。幸いなことに、無料でプロジェクトをホスティングしてくれるサービスが提供されています。特にこだわりがないのであれば、ホスティングサービスを使った方がよいかもしれませんね。@ITさんで「安藤幸央のランダウン/ソースコードの宝石箱、●●Forgeを見逃すなかれ」という記事が掲載されていましたので、そちらをご参照いただければと思います。
ちなみにわたしは、SourceForge.jpを使うことにしました。
【Outro】
これまでの話を整理しますと、わたしは「PHPフレームワークの開発」を「独自のプロジェクト」にて「SourceForge.jp」を使って始めます……ということになります。取り急ぎ、衝動で動く分には必要最低限の事項は決まったのではないかと思います。もちろん「最低限」なので、もっと決めておいた方がよいということもあるかとおもいます。そのあたりは、各自調整してください。
次回はSourceForge.jpにて、アカウントの登録とプロジェクトの作成を行いたいと思います。
当コラム「若人視点」へのご意見・ご感想・ご批判等、歓迎いたします。コメント欄に記入いただくか、el@hyec.org宛にメールしてください。
いただいたメッセージはすべて拝見させていただきますが、個別にお返事させていただくことが難しいかもしれません。
なお、特に当コラムに対するご質問や誤字・脱字、認識の誤りについてのご指摘をいただいた場合は、個人を特定できないようにした上で、当コラム中で使用させていただくことがございます。