目次次「井の中の蛙」 English

プログラムは隠せ


あるソフトハウスで、プログラマにプログラムの指導をしていたときである。 ホワイトボードを使い、色々説明するのであるが、どうしても具体性がない。 一般的な解説にならざるを得ない。全般的な知識不足で、多くの誤解をしなが ら日夜プログラムを作っていることは容易に想像できた。

各人の犯す誤りには個性が出る。それで、実際の誤りが入っている、彼等、 彼女等が作ったプログラムを用いて説明した方が遥かに効果的と考え、疑問点 などのあるプログラムを次回に持ってくるように言った。

もちろん、次回には何も持ってこない。それで、何でもいいから、自分で作っ たプログラムを持って来て欲しいので
「持って来なさい。持ってくれば、悪い個所があれば分かるし、楽をしてプ ログラムが書けるようになる」
と言った。でも、
「いやだ」
「いやよ」
の合唱になったり、講習会場から逃げだしてしまった。

何回目になっても、何も持ってこない。結局、無味乾燥な、一般論の講義に しかならない。こんな講習、やる方も、受ける方にも何のメリットもない。ど うみても、時間の無駄としか思えない。せいぜい、講習会の後で、何人かで近 所の喫茶店でケーキを食べながらの談話以外に目的がなくなってしまった。

次第に参加者は減少するし、教えるこちらも、社長から依頼された義理でやっ ているだけになってくる。そして、自然消滅的に、この講習会はなくなった。

実際には、全員が捨てたものだった訳ではない。講習会にはプログラムを持っ てきたりはしなかったが、後で個別に相談にきたりする者も若干はいた。もち ろん、そういう人間は、こちらがあれこれ言うまでもなく、彼等なりに自己研 鑽を積んでいることは明らかだった。当然、プログラムの腕も、その集団の中 では一番上位の方だと思われた。

コンピュータの専門雑誌を出している出版社から、プログラムの解説記事を 書いてくれないかという話があった。このとき、書くのは構わないが、できだ け実戦的なものにするために、仕事のために作った「本物のプログラム」を題 材にして記事を書くことに決めた。それで、材料集めに、雑誌に「下手なプロ グラム」の募集の案内を出した。

集まったプログラムの大半は、とても採用できるようなものではなかった。 下手ではない。どちらかというと筋の良いものばかりである。世の中、こんな 筋の良い連中ばかりいたら、日本のソフトウェアの平均レベルが今のように低 い訳がない。

そう思っているうちに、目茶苦茶下手な、素晴らしいのが応募されてきた。 編集部の方から、
「これは一体何なのか訳が分からん」
といって転送されてきた。私も絶句した。技術的に無茶苦茶だったのだ。ど んなにひどかったかは、参考文献1の第3章を見てもらいたい。

面白かったのは、そのプログラムは、本人が直接応募したものではなかった。 上司が応募したものだった。きっと下手な新人なので、彼のプログラムを診断 してもらいたいと思って応募したのだろう。上司からの手紙もついていて、会 社の状況までが見えるようだった。ただ、本人だけでなく、上司の方も、いや、 上司の方が問題ではないかと思えたが。

自分のプログラムを隠したがる気持ちは私だって良く分かる。プログラムを みれば、どこが下手か、何を誤解しているか、共同作業は上手く行っているか など、プログラムの全てが暴かれてしまう。誰が、どのくらい下手かを、全員 の前で公表することになるのだ。

だが、悪い個所を見えなくしていたのでは、何の治療もできない。

問題は、各人のプログラムのあら捜しをすることではない。人間は、皆同じ ような失敗をする。他人の失敗例を見て、
「ああ、こうしては、いけないのだな」
と思って、同じ失敗を繰り返さないようにしてあげたいのだが、これがコン ピュータ社会で一番難しい課題である。

私が最初にいた会社では、毎週のミーティングの最後に、自分の技術上の失 敗を発表する制度を設けていた。細かい失敗まで発表されるときりがないので、 30分以上か一時間以上だか忘れたが、誤解し続けていたりして、時間を無駄 にしたものを発表するようにしていた。

これは好評であった。他人の失敗を聞くのは楽しい し、ミーティングも和やかになる。もちろん、失敗したこと自体は決して責め ない。その失敗に対して、どんな対策をとると良かったとか、今後同じ失敗を 繰り返さないための話をする。

こういう環境を作ることは、本当に難しい。プログラマの世界では、実力の 差は歴然としている。囲碁や将棋の世界で、互いに勝負をして何とか試合にな るのは、1、2段(級)の階級差までであり、差がそれ以上開くと、何度挑戦 しても軽くあしらわれるだけになる。プログラマの世界の実力の差も同じ位あ る。

私は囲碁を趣味の1つとしている。そして、囲碁雑誌などを見ると、プロが アマチュアの相手をした実戦譜が載っていて、かなり詳しい解説がついている。 こういうのを見て一般のアマチュアは色々な技術を身につけ、強くなっていく 者は強くなっていく。実戦譜に限らず解説書には、良い手を一手だけ示して終 わりということは、まずない。悪手を示し、なぜ悪いかを解説している。過半 数はそれに費やされている。

ゲームであれ、コンピュータであれ、技術を習得して腕を上げていくという 本質に変わりはない。だから、プログラムという実戦譜をみながら解説を加え ようとしたのだが、これは難しい。

世の中、プログラムを隠す人間ばかりではない。自分の作ったプログラムを、 どうぞ使ってくださいと公表する人間たちもいる。分からないと、良く知って いる人のところにプログラムを持って相談に行く人もいる。

こういう連中は、概して優秀である。あるいは短期間に腕を上げていく。優 秀であり、自分のプログラムに自信を持っているから発表できる、と反論する であろうが、こういう連中は、もともとそんなにプログラムを隠したりしない。 人の作ったプログラムを読んだり、自分のプログラムを人に渡したりというこ とに元々慣れている。失敗を隠さない癖がついているため、外部からの支援も 受けられ、ますます腕に磨きがかかることになる。差は、とめどもなく開く一 方である。


Copyright1996 Hirofumi Fujiwara. No reproduction or republication without written permission
目次次「井の中の蛙」 English