7/2/2000
「Research と Development の間で」
-- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @ -- @
これは福沢伴子さん との会話などから。
他のフィールドでも恐らく似たようなものかと思いますが、computer science では research と development というとたいていは違う人達がやってます。 research は、直接利益に繋がらなくても、長期的視点で見て、テクノロジー の進歩に貢献すると思われるプロジェクトをやります。developement は、商 品化され、利益に繋がるプロジェクトをやります。大学の研究所はたいてい research をします。大企業、IBM、Microsoft、SUN、HP、AT&T などは、独立 した development と research のグループを持っています。
こういう企業・大学がどういうふうに動くように設計されているかと言うと、 research が長期的視点を持って考え出し作り出した物事を、development が 拾い上げて、細かい所を詰めて、商品化して、もうかってウハウハ、という形 です。しかしながら、物事はそうは上手く行きません。development 側が research の作ったプロジェクトを元にして商品化するものは、百件のうち一 つ、と言われています。さて、これは由々しき問題ですね。99 件分の research に投入された resource が無駄になってるわけですから。これが何 故かを考えて見ましょう。
私の結論を先に書いときますが、原因は「research は賢い人がするもの」と いう誤解だと思います。まずは両方の証言を聞いてみましょう。
researcher は、常に developer の文句を言っています。「我々がこ〜んなに hard work して、こ〜んなに偉大なプロジェクトをやってるのに、developer が {lazly で} or {stupid で}、このプロジェクトを pick up して support しようとしない。だから我々の努力は徒労だ。けしからん!」
developer は、常に researcher の文句を言っています。「我々がこ〜んなに hard work してるのに、やり出したのは researcher だから、credit はみん な researcher のものになってしまう。だと言うのに、持って来るプロジェク トの完成度は低いし、何か分からなかった事がある時に真面目に教えてくれよ うともしない。けしからん!」
例えば、IBM Research でやっていた 4758 という secure coprocessor を作 るプロジェクトは、research としてはかなり上手く行っていて、商品として も IBM としてかなり必要にされているものだったにも関らず、 developement への移行が上手く行かず、結果、research group がサポートを しなければならなくなり、それが嫌で嫌でしょうがなかった主な researcher が会社を辞める、とかいう泥沼状態に陥りました。何でこうなっちゃうんでしょ う?各論してみましょう。
何故かと言うと、pick up すると、credit は researcher のものになってし まうのです。サポートというのははっきり言ってめちゃめちゃ大変な仕事な のですが、それでも「作ったのは researcher。君達はそれをサポートしてる だけ。」という事になってしまうのです。だから、development としては、 pick up するよりは、自分で作ったほうがいかすじゃん、という事で、殆ど同 じようなプロジェクトを development でもう一回やったりするのです。全く の無駄ですね。IBM でも、4758 と同じようなプロジェクトを development が やっていて、かなり衝撃を受けたものでした。このジレンマは、「research のほうが development より偉い」という間違った信仰から来ていると思いま す。これを何とかしなくては。
何故かと言うと、プロジェクトの完成度を上げる事や、technical assistance というのは、researcher としては、credit にならないから。researcher の 功績というものは、論文、特許、研究発表、等で計られるので、それ以外の開 発寄りの仕事というのは、苦労ばかり多くて、しても得にならないのです。だ から、理屈的に正しい研究をして、論文を書くに十分なだけ、ちょちょっと実 装して、細かい心配はせずに、すぐ次の研究に移ったほうが、researcher と しての功績を残せるのです。だから、みんなそういう行動を取るんですな。こ れも、同じ、「research のほうが development より偉い」という信仰のせい でしょう。
そして、プロジェクトの必要性の分析 -> research -> development -> support という一連の流れを、同じ人ないしチームがやるべきだと思うのです。 変化がめちゃめちゃに速い computer の分野においては、先を読んで research をする、という事よりも、今必要な事をやって、使って、そして今 度は、次に何が必要か、という小さい積み重ねのほうが重要だと思うのです。
というわけで私は学校から開放されたら、さっさと development に行きます。 researcher になるより給料が低かったりするとめちゃめちゃ嫌なんですけど、 まあ仕事のためにはしょうがないっすよね。