しつけと単体テスト

嫁が子供に「ちゃんと出したから片付けなさい!」と怒っていた。
子供は2歳になったばかりで日本語で意思の疎通は怪しい状態。
この叱り方にものすごく違和感があったので、理由を考えていた。
結果、単体テストなしでシステム運用してバグだーって怒るのと一緒なんだと一人で納得。
プログラマ的発想では、順番に検査を積み上げるんじゃないかな。

  1. 「おもちゃを袋にしまうことができるか確認」(単体テスト
  2. 「一人で片付けができるか確認」(システムテスト
  3. 「片付ける」(運用)

「片付け」というのは抽象メソッドなので実装は「おもちゃを袋にしまう」だったり、「積み木を箱にしまう」だったり、「爪楊枝をケースに入れる」だったりする訳だ。
だからまず最初にすべきは「おもちゃを袋にしまう」事ができるか、単体テストして、できたら次の検査フェーズに進むべきなんだろうなぁ。
次に「おもちゃを袋にしまう」を「片付ける」という抽象メソッドを通して呼べるかを確認。
嫁の叱り方はかなり工程をスキップしてるんじゃないだろうか。