2010/05/05
非同期リリースノート
新しいアイディアは、実装してしばらく使ってみないと本当に 使い物になるかどうかわからない。Gaucheにも、そうやって unofficialに実装されている機能というのは結構ある。 時には実装してから仕様を最終的に決めるまで何年もかかることがある。 ほんとうにそれだけ時間が必要というよりも、 決めるのを先延ばしにしているうちになんとなく時間が過ぎてるって感じなんで、 これまではリリースが近づくと未公開機能をひとつひとつ見直して、 いけそうなものは仕様決定としてドキュメントする、というふうにしていた。
以前にリリースの効用について書いたことがあるが、 リリースするつもりでちゃんとドキュメントを書くと 仕様上の穴が見えてくるので、一貫した設計を保つのにとても役に立つ。
ところがGaucheのリリース間隔が広がってきて、この「リリースが近づいたら 見直し」というのがうまく動かなくなってきた。 見直しに入るまでに未決定の仕様が大量に溜まってしまうのだ。
危機感を覚えて、少し前から Gaucheの開発ブログを 立ち上げて、次リリースで公開する予定の機能について先行して 記事にしてゆくことにした。これは思いのほか役に立っている。
マニュアルほど正確な記述ではないけれど、ちゃんと説明しようとすると その過程で穴を見つけたりより良いアイディアを思いついたりする。 ブログが非同期にリリースノートの役割を果たしてくれているようだ。
例えば、モジュールのインポート時にプレフィックスをつけたり リネームしたりという機能がtrunkには入っていて、 Import options: part oneで説明したのだけれど、 この記事を書き始める時点ではrenameの実装にまだ詰まっていた。 とりあえずprefix, only, exceptは動いているのでそれだけでも記事にしようと 説明を書いているうちに、prefix, only, exceptの実装を簡単にするだけでなく renameも簡単に実装できる別のアイディアを思いついた。
アイディアは宝石ではなく草の芽みたいなものかもね。倉庫の奥に 大事にしまっておいても枯れるばかりだ。陽に当てるとどんどん成長して、 さらに新たな芽が出てくる。
Tags: Programming, ものつくり
Post a comment