テストなんか書かなくて良いという燃料が投下されてはてなブックマークでも賛否両論のコメントが書かれています。
まずは僕のスタンスから
件のブログは煽り成分が強めの燃料ですが、大筋では同意です。プロダクトフェイズに応じて、その時そのときに必要なエンジニアリングでいきましょうという話自体は賛同します。ただタイトルの時点で喧嘩売りすぎですし、得てしてこういうタイプの人は直接的・間接的に技術的負債を生みがちですね。
アンチパターン例
ここから先はフィクションです。ポエムです。
クソ設計とクソコードを生み出して偉くなっていったAさん
ブログの人と同じような事を言う人がいました。仮にAさんとしましょうか。Aさんは「テストなんて書かなくていいから、早くユーザーに価値を届けろ」と言います。見事にテストもなくクソ設計とクソコードを後任に押しつけてのし上がっていきました。クソを生み出すものの、スピード自体は早いから経営層からの信任も厚いのでしょうね。
もちろんそういう人ですから部下に対しても、納期優先でエンジニア達にデスマーチを強いるタイプですし、評価基準もスピード位しか見ません。彼と仲の良い人は昇進するし、少しでもトラブルをおこすと評価がダダさがりします。彼が首切り屋として大なたを振るったおかげでエンジニアの離職が深刻になりましたね。一度退職した時は「俺、絶対刺されるわーw」と言ってたとか。その後何故か出戻りして部長職についてらしいですよ。
ちなみに彼の生み出したクソは基幹システムとして、それなりに保守されてたものの、クソすぎて問題も多かったのと、拡張が出来ないという致命的な問題により、彼のシステムはめでたくリプレイスされましたとさ。
果たして、彼の生み出したシステムは本当に価値をユーザーに届ける事が出来たのでしょうか?少なくともリプレイスされる直前は彼のシステムが主原因となって、改修を困難にしていました。その間の機会損失の金額はいかほどだったのでしょうか。
クソ設計とクソコードととぐろ巻く糞システムを押しつけて退職していったBさん
BさんはAさん同様に手が早いエンジニアでした。ルールを一切守らない(経理課長から何度かガチで怒鳴れてました)、テスト何それおいしいの?って感じの、混沌めいた開発スタイルをとっていたため、手は早いものの、彼の生み出したシステムはハウルの城のごときシステムが後にできあがってしまってました。PHPの総コード量数万行規模、誰もシステムの全容を把握できず、影響があるかないかを調べるのすら手間になるような恐ろしいシステムです。他システムとも口約束で勝手に連携していたりして、メンテナンスをする時に、影響確認をするのがきわめて困難というものです。
テストもドキュメントもなく、挙動から読み取るしかないけど、そもそもどこで何に使われてるのかを把握している人もいないまま、彼は転職していってしまいました。後任者はいい迷惑ですね、何しろ彼のスピードが標準なのに、後任者はシステムを把握すらできない。恐ろしい限りです。
最後に
テストを書かなくて済む局面は確かにあるのでしょう。でも、テストなんか書かなくて良いというような事を宣う人にロクな人はいません。そして、彼らは後任エンジニアや部下から日々恨みを買いながら生きていくことになるのでしょう。くわばらくわばら。