「以下のWeb記事をたまたま見て思った」
「なんだい?」
「ずさんなエンジニアリングという指摘は正しい」
「なら話はオシマイだね」
「いや、ここから始まる」
「えっ?」
「ずさんなエンジニアリングとは何か?」
「この記事では以下の2つだね」
- 確認不十分 (テスト不十分)
- ドキュメントが読めない
「そうだ。テストとドキュメントだ。実はこの2つが弱いソフトは今時珍しくも無い」
「えっ?」
「iPod touch用にリッジレーサーを買ったら立ち上がりもしなかった (あとでアップデートしてやっと立ち上がった)という経験もあるしね」
「同じような環境で1回でも試していればすぐ分かる現象だね」
「では、そもそもこのようなテストとドキュメントに弱い開発はどこから来たのか」
「どこ?」
「オープンソースだろう」
「なぜ?」
「オープンソースというのは、テストとドキュメントに昔から弱い」
「えー。どうして?」
「ボランティアベースの必然だ。面白くない仕事には人が集まらない」
「テストはつまらないの? ドキュメント書きはつまらないの?」
「想像を絶するほどつまらないし、継続しようとするとそれに輪を掛けて面白くないぞ」
「どうして?」
「テストというのはソースを1行でも書き直したら最初から全部やり直しだ。毎回同じ事をやってつまらないが、見落としがあってはならない。ドキュメントもやはり実行結果と違ってはならないが、似たようなことを毎回書かねばならない。独自性を発揮できる余地が少ない単純作業だ。自発的にやりますという人はまずほとんどいない」
「えー」
「……という話は昔から考えていた」
「なるほど。iOS6の話ではないわけだね」
「そうだ。なんら新しい話ではない」
「でもiOS6はオープンソースじゃないよ」
「オープンソースが当たり前の文化で育った技術者は、どうしてもテスト軽視、ドキュメント軽視の傾向が出てくるようだ」
「オープンソース以外のソフトでも同じ弊害が出やすくなるわけだね」
「特にオープンソースで技術力をアピールして大企業に入ったような若者はね」
「なるほど。前から考えていた通りのパターンにiOS6の地図は入っていたと。それがオチ?」
「いいや。オチは他にある」
「どこ?」
「最初に書いたリンク先の記事のプロフィールをみてみろ」
「ええと。仕事はオープンソースによる……、えっ?」