まさかのやらない理由3選!

最近更新が止まっていてすみません。。。
(と言っても誰が見てるんだって話ですが…)
諸々とあって忙しく、技術的なネタも収集できていなかったので、ポエム的なものを書こうと思います<(_ _)>

※ これは実際に言われた内容であり、思いついたネタではありません。。

ごくごくフツーのエンジニアさんであれば「?」となる内容だと思います(^ω^;)
直近のネタではありませんが、いい気づきになる可能性もあるので紹介いたします!

テストコードをテストするコードも必要??

ずっとUnitテストも導入されていなかったプロジェクトの改修にアサインされた時(2015年)の話です。

1度直したらしばらく直さないようなものであれば、既に動いているシステムなので、手作業でテストでもまぁいいかとも思ったのですが、頻繁に項目の変更があり、その都度デグレードテスト含めかなり網羅的に手作業でテストをし、Excelにキャプチャを貼ってエビデンスを残していました。
テスト方法もさることながら、同じことを繰り返し手で行うのはあまり効率的な開発ではないように思えました。
なので一部に対しUnitテストの導入を提案してみたのですが、そこで言われた導入しない理由がビックリで、反論できませんでした。。。

 テストコード書くのはいいけど、そのコードの妥当性を検証するコードも必要になるよね!

そのテストコードの妥当性を検証するテストコード、の妥当性を検証するテストコード、の妥当性を検証する…(ry
無限ループの発生です( `・ω・´)
確かにテストコードの妥当性のチェックは必要です。
なのでUnitテストは細かく分け、1つ1つはコードを見ればある程度妥当性があるか判断できるようにし、コードとテスト結果をレビューするのが定石だと思っていました。
ですが、ここではリーダーマネージャー、それぞれに「そこまで書くのは大変だし、やり方のノウハウもないから導入やめよ!」と言われたのです。。。
まさかこんな反論されるなんて、夢にも思いませんでした。

例えば

  • テストコードを知らない人の学習コスト
  • テストコードの導入範囲
  • 手作業との住み分け
  • 導入に向けての取り組み方

というような反論はあるあるですし、想定もしていたので回答を用意して挑んだのですが、斜め上の回答に何も言えず導入はされないことになりました(´・ω・`)
何度かに分けて導入に向けて話し合いに挑戦してみましたが、最後の方では「自動テスト嫌いなんですよ!」と怒られてしまったので、その後は何も言わないことにしました。

手作業のテストは間違いない??

またまたテストの話ですみません。。。

その際に、手作業でのテストの素晴らしさを得得と説明されました。
その中でも衝撃的な一言を紹介できればと思います!

手作業なら、テスト仕様書外の動き(作業ミス)でバグが見つかることもあるんだよ!
テストコードじゃできないだろう??

テスト仕様書の不備を肯定しました(`・ω・´)
テスト仕様書の不備はもちろん0にはならないと思ってますし、人が書く以上バグ0も不可能だと思います。
特に古い密結合なソースでは、テストコード作成の難易度も上がります。
だからと言って、テストコードよりも手作業テストが正しい結果を生む…という趣旨の発言には驚かされました(^ω^;)
当時は呆れかえってましたが、今はエンジニアと飲む時のネタとして、大変重宝しております(・∀・)

手作業の運用は間違いない??

定期的な運用って、ドコにでもあると思います。
そのような運用を、皆さんだったらどうするでしょうか?

cron?バッチ?マクロ?
色々とあるとは思いますが、手作業でやれ…と言われたことがあります。
その理由が凄いのです!

コードだとバグる可能性があるし、毎週30分かからないじゃん!

  • 自分で書いたコードすら信用ならない
  • 手作業で間違えない絶対的自信
  • 費用対効果なんて知らんがな

という3つを同時に言い放ったのです( `・ω・´)
一定数ではありますが、手作業信者がいるのは残念ながら事実です。
自動化により「人の作業を奪った」として、世の中には可哀想なことに減給された方までいらっしゃるようです(>_<)
さすがに私はそこまでには至りませんでしたが、やらない理由に驚きを隠せませんでした。。。

全ての技術がどの現場にも適応できるものではないと思っていますし、検証した結果やらない…というのは大賛成です。
ですがそこでの言い方は、私には「やりたくない」と言ってるようにしか感じられませんでした。。。

各メディアでも言われているよう、やらない理由を探すのは簡単です。
ですが新しく導入する側は大変であることを、身をもって実感しました。
この経験を、今後も活かせていけたらと思います!