予防と事後処理

 少し前、いよいよ民間刑務所が出現する、というニュースが流れました。「小さな政府」路線の一環ですが、同じ機能を果たすのに民間経営に任せた方が低コストに実現できるなら、確かに一考すべき案です。

 この動きの前提には「犯罪者はこれから増加の一途を辿る」という予測があります。実際、近年の統計もその傾向をはっきり裏付けており、今後、刑務所不足は免れないでしょう。

 ただ、一つ忘れるべきでないことは、そういう事後処理の態勢を整えることも重要だけど、犯罪を予防するための措置にもリソースを割かないといつまでも刑務所不足に歯止めはかからない、ということです。私が見ていたニュース番組でも、そのことをはっきり指摘している女性評論家(残念ながら名前がわからなかった)がいて、強く頷きました。

 火事が起きれば大惨事は避けられません。だから、起きたあとでそれをいかに最小限に食い止めるか、ということを考えるのは重要です。消防署のない社会にはちょっと住めない。でもそれ以上に、予防策を講じる方がはるかに重要です。なぜなら、事後処理よりも予防の方がずっと安上がりだからです。予防には消防署も消防車もいらない。

 同じことが、ソフトウェア開発にも言えます。バグのないシステムは、残念ながらあまり(ほとんど、常に)存在しない。だから、バグが発生した後の対応体制を整備することは重要です。いかに素早く、正確に修正し、被害を最小に食い止めるか。

 でもそれよりずっと重要なのは予防、徹底したテストでバグを減らしておくことです。でもテストは、その重要性に比して不当に軽視されることがあまりに多い工程です(この背景には、ソフトウェア文化が「予防が苦手」と「人は嫌いなことはやるべきでない」というアメリカ文化の悪いところをモロに継承したからではないのか、と個人的に疑っているのですが、それは余談)。

 テストというのは、楽しい作業ではありませんが、でも何によらず、物を作るという作業の実に半分は、テストです。大げさじゃなく。だから、自分が製作者としての責任を負う製作物に対してテストしない、ということはありえません(バグの責任は全て自分に跳ね返ってくるので)。テストを手抜きしたくなるのは、それを自分が作っているという自覚が持てない場合です。だから「テスター」という分業形式は、かなりの問題があるのです。

 おや、図らずも話が以前書いた「分業」の話とつながりましたね。続きはまた今度。