書類

2008/07/19

実のところをいうと俺は、今年の一月ぐらいに酷い目に遭わされたような、ある程度の規模がある「まともな」システムの開発に携わることは余りない。

俺がやっている仕事の大部分は、ExcelやVBScriptやバッチファイルなどでつくられる下らないツールの開発ばかりである。

別に、大規模プロジェクトの地獄が気持ちいいとか、昔はよかったと懐かしむ年寄りの感慨ではないのだが、しかし、こういった細かいものを作り続けていると気分が萎えてくる。まぁ、気分が萎えようがやる気がなかろうが、生きて行くためには仕事をしなければならないのだから、文句を言うつもりはないのだが。

しかし時には文句の一つも言ってやりたくなることがある。それは、無意味に仕様書や設計書の内容が細かく問われるということだ。

これは俺のいる所だけの事かも知れないのだが、不思議なことに、開発規模が大きくなるに従い設計書の品質が低下するという傾向がある。逆に、開発規模が小さくなるにつれて、設計書やマニュアル・手順書の類の品質、というか物量を求められるようになる。

つまり、高々数ステップで済むようなものの場合、ステップ当たりの書き物の量は信じられないほどの規模に達するということだ。前にあった例では、20行のバッチファイルに対して、70ページ以上のドキュメントを書かせられたことがある。

こうなってくると、完全にドキュメントを書く意味というものが無くなってくるはずである。ドキュメントは、将来自分以外の誰かがプログラムを使ったり、あるいは変更したりする場合に備えて、その誰かが目的を達することができるようにプログラムについて説明するためのもののはずである。だが、プログラムに対してドキュメントの量が多すぎると、逆にドキュメントの解読や維持保守に時間がかかるようになり、ドキュメントがドキュメントとしての役を果たさなくなる。

つまり、俺が書いたものは完全に意味がない、ただのゴミに過ぎないということだ。その上、あのお客は設計書をちゃんと取っておかないという悪い癖を持っている。後から必要になったから設計書を払い出してくれといっても、まともに出てきた試しはほとんど無い。細かいツール類のものに至っては、まず間違いなく消失している。すなわち、俺の仕事は、それこそ全く無意味だということになる。

何でこんな事になるのだろうか? どうして、一回動かされたきりで、その後二度と動くことのない書き捨てのツールに対して、膨大な量のゴミ資料をねつ造しなければならないのだろうか?

俺なりに少し、理由を考えてみた。

まず第一の理由は、設計書の使われ方に由来するものだ。実をいえば、設計書やマニュアル・取扱説明書などといった物が一番役に立つのは、将来プログラムを保守する時などではない。トラブルが発生したときに、開発元に責任をなすりつける時の口実として利用されるのだ。設計書とは、そもそもその為に作成されるものであると言っていい。

つまり、「設計書にこう書いてあるのに、その通りになっていないじゃないか。だからおまえが悪い。おまえの金で今すぐ直せ」と主張するために使われるのだ。

だから、お客の担当者の立場に立って考えると、設計書には思いつく限り何でもできますと書かせた方が、自己保身につながるのだ。どんなに汚いデータを投入しても行間を読んで正しく補正します、超能力でユーザの操作ミスを検知しトラブルを未然に防止します、大統領を暗殺することができます、死者蘇生ができます、魔王を降臨させることができます、等といったことを、とにかく手当たり次第に書かせるのである。そうすれば、トラブルが発生したときにも、「俺は悪くない。悪いのはあいつだ」と、言うことができるようになるのだ。

つまり、ドキュメントの量が増えるのは担当者の自己保身という圧力があるためであると言える。

また、開発規模が小さいほどドキュメントの量が増えるのは、関わる担当者の数が少なくなるからであると思われる。つまり、規模が大きいと担当者の数が増えるために、なにかトラブルが発生しても、「俺は悪くない」と主張しやすくなるためであると思われる。また、大規模な奴が障害を起こした場合は、設計書の中身が問われることなく、問答無用で開発元が全面的に悪いと言われる傾向がある。その意味からしても、開発規模が大きくなるにつれて、設計書にむやみやたらに何でもできますと書かせる圧力が少なくなるものと思われる。

次に第二の理由だが、これはお客の情報システム部門が、いわゆるコストセンターでありプロフィットセンターでは無いという事に由来すると思われる。

プロフィットセンター、つまり、実際に企業外部から利益を稼ぎ出している部門であれば、自分たちの成果というものを判りやすく外に示すことができる。つまり、「今期はいくら使っていくら稼ぎました。だから俺たちはとても頑張っているんです」ということを経営者に対して、容易に説明することができる。

それに対してコストセンター、つまり業務の内容が直接的には収益に結びついていない部門では、そういった成果を示すことができない。

通常では、システムの利用に対して課金する、などといった方法で情報システム部門の仕事を評価するということが行われる様だが、それだって完全ではない。情報システム部門以外の、システムを利用する側からしてみれば、システムは使わなければならないから使っているというだけであって、必ずしも使いたくて使っているわけではない。それに、システムを利用したからといって、それが結局いくらの利益をもたらしたのかということは、誰にも判らない。

経理や総務・人事といった部署の仕事は、情報システム部門と同様、直接的に利益をもたらすような仕事ではない。だが、それらの部門でやっていることの内容は明らかであり、その必要性についても今更とやかく言われることもない(まぁ、近年ではアウトソースされるという危険性があるようだが、それでも必要性が問われることはない)。それに、こういった部門が使用する経費は、毎年ほぼ一定しており、極端に大きく変動することはない。

それに対して、情報システム部門のやっている仕事は経営者からしてみれば胡散臭いことこの上ない。

毎年毎年莫大な額の金を喰らっているくせして、1円の利益ももたらさないし、そもそも、毎年の予算を一体何に使っているのかが全く判らない。どうしてこんなパソコンを1台買うのに、毎年何十億・何百億もの金を使わなければならないのか。近所の電気屋に行けば10万円も出せば良いのが買えるというのに。おそらく奴らは、仕事をしているふりをしながら、予算を使って遊んでいるに違いない。そうだ、そうに違いない。

まさか、今時まともな企業の経営者であれば、こんな事を本気で考えている奴もいないだろう。だが、それでも専門外の人間からしてみれば、情報システム部門の仕事は不透明なことこの上ない。よくワカランが必要そうだから、社員や株主からの要請があるから、最近の流行だから、とりあえず投資し続けてはいるものの、腹の中では常に必要性には疑いを抱いている。

そうすると情報システム部門の人間としては、自分たちの仕事を護るために、来期の予算を獲得するために、経営者に対して自分たちの頑張っている姿を示さなければならなくなる。

だが、建物のようにその成果が明らかに目に見えるものであればいいのだが、システムの場合はそうはいかない。ハードウェアはそれでもまだ判りやすいのだが、ソフトウェアの場合は、それを作るのにどれだけ苦労したのか、どれだけの人員を投入しなければならなかったのか、それを年寄りに判らせることは間違いなく不可能である。

だから、できることはただ一つ。何でも良いから、「大量に作りました!」と主張できるような何かを用意することである。そして、その何かとはプログラムとドキュメントの事である。

そして、この関係は経営者から情報システム部門のエラい人、ちょっとだけエラい人、あまりエラくない中間管理職、末端の担当者へと続いていく。つまり、来期の予算を獲得するために体育会系的努力の姿勢を上司に対してみせるという関係は、経営者から末端まで続くことになる。

そうすることで、お客の担当者にはドキュメントの量を増やすという圧力が生じることになる。

開発規模が大きければ、必然的に書き物の量も増えるし、それに頑張っているというのが素人にも判るようになる。だが、高々数ステップのツールみたいな奴だと、努力している風に見えない。それどころか、手を抜いているとさえ言われかねない。だから、規模が小さい奴では、何とかしてまとまった量の「何か」を作り出さなければならないのだ。だから、無駄なドキュメントを大量に作る羽目になる。

正直言って、俺はこんな仕事は嫌だ。

一度作られたきり二度と読まれることもなく、ただ印刷して枚数を稼ぐためだけの資料、よくてディスクの肥やし、悪ければ削除されるだけの、何の意味ももたないWordとExcelの資料を作り続けるだけの仕事。それがスケジュール的に余裕があるのならまだしも、大概は無意味に期間が短く、必要もないのに深夜や休日に出勤させられるこんな仕事が辛くてたまらない。

生きて行くためとはいえ、どうにかならないものだろうか。