予行演習ていうんですかね。テスト環境とかいいますよね。で,テスト環境ではうまくいくのに,実環境でコケたりするわけです。
可能な限り実環境に近い環境でのテストを充分重ねる。
とか見積書に書いてあります。書いてて恥ずかしくないんですかね。
機械とか装置をまじめに作ってる人なら知ってると思いますけど,そんなに甘かぁないですよ。環境再現というのは。
環境の再現というのは突き詰めるとキリがないんです。同じ気温,湿度,電源品質,同じPH,電磁波・・・
電源品質なんて,電圧変動まで再現できる環境って,そうそうないですよ。私自身,書籍などで見たことがあるだけで実物見たこと無いです。
ですが,そういう細かい話である砂粒をコツコツ積み上げられた楼閣が,産業力なわけです。
いやいや,ま〜た話が逸れてますな。リハーサルの話でした。
とにかくまぁ,いろんな機材を借りたり,持ち込み検査などしてこなしてですね,カンペキなリハーサルをおこなうわけですよ。それでも実環境ではコケる。
簡単なサーバを立ち上げることを例に考えてみてください。
「申し送り事項について」
据付担当 ハットリハンゾウ殿:
以下の設定項目は実環境において適宜再設定および確認をお願い致します。設定A:実環境では,AAAですが,テスト環境ではYYYです。
設定B:実環境では,25ですが,テスト環境では10です。
・・・・(こんなのが30項目くらい続く)・・・以上,宜しくお願い致します。
開発部 ケムマキケムゾウ
これ,実環境で動く保証なんてこれっぽっちもないですよね。据付の人が設定変更ミスったらドボンですし。さらに,「最大同時接続数」みたいな性能を決める設定に関して過去の実績などから,決める慣例などがあります。バカげていますね。だったらテストなんかいらねぇって。それなのにテスト期間が実装/デバッグ期間よりも長かったりして。
ここに微妙な事情があることにお気づきでしょうか。
それはねぇ「テスト」と称してデバッグしているんですよ。by ホームズ
いわゆる「デバッグとテストってどう違うの?」議論ですな。そもそもテスト部隊が独立してりゃいいですがね。デバッグとテストが同義になっちゃってる所も多いんじゃないですか?
テストファーストなんてその典型ですよね。
いやいや,そうでなくて,テストの細かい分類をしなきゃだめですな。
いやいやいや,デバッグの語源を考えれば,実装作業の問題を修正することはデバッグと呼ぶべきではないような気もしますね。
この手の話はそこらじゅうで繰り返されているのでツマランでしたな。書きたかったのはリハーサルの話でした。
とにかく,リハーサルについては
- 環境を切り替える作業の危険性。(動いているものに手を入れるな,の原則。)
- 実環境とテスト環境の些細な差異のアセスメント。(テストがうまくいったのは,大安吉日だったからかも。)
に意識を向けるだけで工数削減,安定稼動実現に近づくのではないでしょうか。