- 2010-09-25 (土) 0:35
- 技術
- 私がソフトウェア技術者をやめた理由(Rails で行こう!)
http://d.hatena.ne.jp/elm200/20100924/1285330288
ソフトウェア業界(特に受託開発業界)は、基本的に正直者が馬鹿を見る世界である。顧客(あるいは経営者)が、保守性というソフトウェアの最も重要な品質を正しく評価できないという、情報の非対称性が存在するからだ。ソフトウェアの品質が、本当にいいか悪いかではなく、いかにまともであるかのように見せかけて、手を抜くかが経営者の腕の見せ所になった(売り手と買い手の間の情報の非対称性を是正する手段を持たない産業では、どこでも同様であろう)。
リンク先に例として示されているコード、似たような話を学生時代に聞いたことがある。そこそこ有名な市販双六ゲームの中身が、switch-case文の山だったそうだ。曰く、「動けばそれで問題無い」と。
僕らWeb屋も、似たような状況に直面する事がある。「昔に作って貰ったんやけど、何か表示がズレるからちょっと見てくれる?」と渡されたソースは、大体中身が滅茶苦茶で、手の付け様の無いものがほとんどだ。それでも納品時には、ちゃんと家として建っている(ように見える)から通ってしまう。タチの悪い話だ。で、「何で直すのが難しいの?」と聞かれたりする。
こういう場合、僕は大抵、土台が腐ってるから上に何を立てても崩れるんです、と説明する。良い作りの家は、百年経ってもメンテし続ければ綺麗に住めるが、作りが悪ければすぐに雨漏りしたりするし、修繕しようにも人が登れるほどの耐久性が屋根に無い、みたいな事になっていたりする訳だ。
こういう話は、一度痛い目に遭った人ならば比較的すんなり理解して貰えるのだが、初めてWebサイトというものに触れ合う人に説明するのは凄く難しい。可読性が高く、汎用性も高いソースを組み上げたとしても、喜ぶのはメンテナンスや保守をする側の人間で、クライアントではない(間接的には喜ぶだろうが)。事故さえ起きなければ住んでいる人間には違いが判らないし、メリットを感じる事も無い。こういう理由から、メンテナンス性を重要視しない(理解出来ない)人は結構多かったりする。曰く、「住めれば問題無い」と。