目次次「秘密主義」

尻拭い


まったくの新規開発の割合はどんどん減っている。一番多いのが、既に開発されている プログラムになんらかの手を加える仕事である。コンピュータがどんどん変化していくの で、その変化にプログラムの方を適合させる仕事は特に多い。

こういう時には、過去に自分または他の誰かが作ったプログラムを修正したり、付け加 える部分を既存部分と適合するように作る訳だ。既存プログラムが現状にそぐわなくなっ ていれば、そのプログラムも修正する。

こういう仕事は、元のプログラムの品質で作業効率が目茶苦茶違う。元が良い場合には、 非常に楽である。しかし、元が酷いと、とんでもない苦労をさせられる。元のプログラム を捨ててしまって、新規に作り直した方が、遥かに楽なことが良くある。

でも、捨てることは、まずない。捨てられない事情がある。今までに費やした工数、費 用がもったいないのである。なんとか今までの成果を利用しようと悪あがきをする。そう して泥沼状態になっていく。過去の費用は重要であるが、未来の浪費は構わないのだろう。 今までの失敗を授業料と考え、これからのことを考えるべきだと思うのだが、そういう判 断が下されることは希である。

したがって、既存プログラムに関連する仕事の場合、元のプログラムの品質を見てから でないと作業量は全く予想がつかない。しかし、一般に、受注金額が決まって、契約が行 なわれないと、プログラムはやってこない。だから、プログラマは、プログラムがやって きた時、こわごわと覗き見る。汚ない下手糞なプログラムだったら、その日から何ヵ月も 苦闘の日々が続くことになる。
「馬鹿!アホ!間抜け!とんま!」
とか呟きながらの作業が続く訳だ。

スーパー下手糞なプログラムの改造の仕事を受注したことがある。まあ、かなり下手だ ろうことは予想していたから、それは問題ではなかった。改造の範囲は決まっているので、 たとえどんなに下手糞な作りになっていても、もし改造の範囲外だったら、そのまま手を つけないことにしようと決心した。

腕の良いプログラマは、ついつい悪い個所を直してしまう。技術者魂に忠実で良いこと であるのだが、そんなことをするくらいなら全部最初から作った方が良い場合が多い。だ から、悪い個所は、悪いままにしておくことは、重要なことなのだ。

さて、プログラムを改造するとき、まず、作業範囲内か範囲外かがはっきり分かるよう に、プログラムを分離する。これは、ついうっかり範囲外のプログラムを見て、気分を悪 くしたりしないためである。万一間違って修正を加えだしたら泥沼になるからだ。

プログラムの改造が進んで、テストの段階になった。こちらが修正した部分は、新しい コンピュータの画面から色々な操作ができるようにすることであった。コンピュータ内部 のデータの加工、修正などはこちらの仕事ではない。しかし、困ったことが起きてしまっ た。データ加工の時間があまりにも長いのである。画面上のボタンを押しても、結果が表 示されるまでに何十分もかかる。これでは、テストなど全くできない。

テストできないのでは、こちらの作ったプログラムの仕事は、いつになっても終えるこ とができない。やむを得ず、どうして驚異的に遅いのかを調べた。理由は分かった。手を つけないことに決めていた部分に、無茶苦茶に下手糞な信じられないような部分があり、 猛烈に遅くなっているのが分かった。本来、この部分に手をつけるのはこちらの仕事では ないので、発注元に連絡して、非常に遅いことを訴えた。
「遅いですね」
という相づちを打ってくれたが、それ以上は駄目だった。

元のプログラムを作っていた人たちは、どうやってテストをしたのだろうと考えてしまっ た。まあ、こんなに時間がかかるのだから、テストを放棄したのは想像できた。

元のプログラムに問題があるのだから、元のプログラムを作った側の責任でプログラム を修正するのが道理である。しかし、相手には、とてもそんな実力がない。どうせ、何を 言っても、理屈にならない理屈で、のんべんだらりと逃げ回るだけに決まっている。こち らの作業は止まってしまい、どうしようもなくなっていく。

こういう場合、やむを得ず、仕事の範囲外であった部分にも手をつけてしまう。そうし ないと、仕事にならないからだ。越権行為であるが、やむを得ない。相手に修正依頼を出 すよりも、自分で修理してしまった方が早い。早いどころか、相手が直したならば、もっ と悲惨なことになりそうで怖いのだ。

一回こういうことを行なうと、もうとどまるところを知らない。そうやって、下手糞な プログラム、遅いプログラムも、自然に使い物になっていくことがある。

納品の時に言われた。
「元のプログラムより、だいぶ速くなりましたね」
それで、こちらの方は、
「元のプログラムは、あまりに下手糞でどうしようもなかったし、元のプログラムを作っ たプログラマは全然対応する気力および能力がなかったので、ビシバシ書き換えました。 元々はそういう予定じゃなかったのですが、おかげで、随分馬鹿げたことに時間を使って しまったぞ。我々の仕事は、尻拭いでしかなかったわい」
と答えたかったのだが、そうあからさまには言えないので、言葉を慎重に選んで、穏や かに言ってしまった。

どの世界でも、尻拭いという作業は存在する。下手な奴、失敗する奴がいるから、尻拭 いは絶対にある。問題は、尻拭いは優秀な人間にしかできないことである。下手なプログ ラマには、どうやっても責任は取れない。せいぜい、仕事を退くことによってしか責任を 取れない。直そうと思って修正を加えると、どんどん症状を悪化させるだけだから、退く ことが唯一の道である。作業から離れて、学習にでも精出してくれれば言うことなしだ。

優秀なプログラマに尻拭いをさせるのは、非常にもったいない。尻拭いをするくらいだっ たら、初めからその人が作っていれば良い物ができる。しかし、優秀なプログラマの多く は、尻拭いに忙しいのである。低レベルのプログラマを早く締め出すのが急務である。


我輩は猫である


Copyright1996,1999 Hirofumi Fujiwara. No reproduction or republication without written permission
目次次「秘密主義」