システムを建設に例えると

 異動になったのときの挨拶から。自分で言うのも何だが、こんなことがいえる人ってすごいな、と思う。

 最後ですので、システムを何かにたとえるときの古典的な例、つまり建築の話をしようと思います。ただし、ビルではなくて道路です。
 道路が一車線か二車線かということを、道路建設を決める人はあまり気にしません。地図に線を引いて終わりにします。中央線がまっすぐなのは偉い人が定規を持ってきて地図にザッと線を引いたからだという噂があります。
 実際に工事やその手配をする人は、もう少し大変でしょう。一車線か二車線かということで買収する用地は変わりますし、用意するアスファルトの量も変わる。もちろん手間も変わってきます。
 しかしもっとも大変なのは実際に運転するドライバーです。運転技術に「車線変更」という要素が必須になります。そしてこれが社会的にはもっとも大きなコストとなります。
 サイドミラーで後ろを確認し、車間距離と速度を推定し、車線変更禁止箇所を注意し、エトセトラ、エトセトラ。これはドライバーに膨大な思考力と注意力を要求します。たとえ「ゆっくりいこう、車線変更はしない」とはいっても、右折の可能性がある限りドライバーがこの呪縛から解き放たれるわけはありません。それも毎日毎日毎日です。一台一台一台です。
 このドライバーに要求される思考力と注意力。これがソフトウェア開発というものにあたります。車線が増えると、それ以上にプログラム仕様が大きくなるのです。問題は、建設の時には全く考えられないコストが、システム開発においては中心的なコストになることです。つまり、プログラム開発というものは、意識しないコストをしっかりと計上するという側面を持っているわけです。
 何か案件を見積もるたびに「なんでこんなに、時間がかかるの?お金がかかるの?」と言われるのは、プログラムのこういった性質によるものです。

コンピュータネタ、目次
ホーム