2007年4月13日金曜日

博士の異常な愛情の話

半ば趣味的な僕のプロジェクトの一つに「SmartProjection」というのがあります。3次元OCT の撮影結果を精査するためのビュアーの開発プロジェクト。

SmartProjection を作る前は、3DViewer という LabVIEW ベースの自作の簡易プログラムを使っていました。ただ、これ、動作は遅いわ、何も出来ないわで、一緒に仕事をしていたユーザーからも大不評でした。そりゃそうです。何せ、初めて3次元のOCTが撮れるようになった日に、その場しのぎに作ったプログラムですから。

SmartProjection はこの反省を生かし、かつ、開発を始めたときから一緒に仕事をしているお医者さんたちの意見を入れながら作ったプログラムです。また、SmartProjection を作成する頃には僕自身も臨床に興味を持つようになっていましたから、「使う側が快適な」ソフトを目指しています。

こうして説明していると、なんだかユーザーサイドの視点で作ったソフトのようですが、実はこのソフト、新しく身につけた LabVIEW のプログラミングテクニックを試すための実験プロジェクトでもあります。なので、たまに、無駄に内部アーキテクチャの入れ替えをしたり、データのハンドリング方式をかえたりして、外から見えない効率を上げたりするわけです。作りこみ!作りこみ!作りこみ!です。

こういう作りこみ系のバージョンアップ、実は、ユーザーからはあまり受けないんですね。一生懸命内部アーキテクチャを整理しても、使ってるお医者さんからは「ふーん。で?」とか言われてしまうわけです。まあ、そりゃそうです。僕自身も、使ってるソフトのバージョンアップのリリースノートを見て「メモリ効率が最適化されました」とかだけ書いてあると「えー、そんだけー?」と思ったりします。

結局、そういうバージョンアップって、ユーザーからすれば、開発者の自己満足なんですね。(ほんとうは先々効いてくる重要な改良なんですが。)自己満足、それはわかっているのです。でも、開発者としては、手をかけたいのです。手をかけて手をかけて手をかけて、もう、プログラムがかわいくてかわいくてしょうがないのです。「はえば立て、立てば歩めの親心」です。「ああ、今日は、データの読み込みが 5% 早くなったね」、「ああ、今日は内部データの扱いが統一形式になったね」と。もう、かわいくてかわいくてしょうがないのです。このままではヤバイ32歳(独身)です。でも、プログラムって、手をかければ手をかけるほど、しっかりと育っていくのです。かわいいものです。

こうして考えると、物作りは人を育てることに似ています。手をかければ手をかけただけ人は育つものです。でも、それは、いい子いい子の手取り足取りではなく、時に内部のアーキテクチャを全書き換えするくらいの荒療治であり、非効率なルーチンでも、単に取り除くのではなく、何度も何度も実行して非効率な理由を探し出すような気の遠くなるデバッグでもあります。でも、結局言える事は、手をかければ手をかけてだけ人は育つし、プログラムは良くなる、ということではないかなあ、と、思ったりもするわけです。

Joschi

0 件のコメント: