![見出し画像](https://assets.st-note.com/production/uploads/images/11534717/rectangle_large_type_2_5c2c95d9a98c1c35444029175d84ba9a.jpeg?width=800)
目的と手段、取り違えてませんか?
以前、「JUnitを実装して品質を高めよう!」という試みがありました。取り組みとしては良いですよね。JUnitで未然にバグを防ぎ、後工程の品質を高める。結果、品質も生産性も上がる。
ところが、あるときプロジェクトメンバーの様子を見ているとJUnitでカバレッジ100%を満たそうと頑張っていました。そして「100%にするのが難しい」と悩んでいたのです。
これは目的と手段が入れ替わっている状態です。
■ 目的と手段を意識していますか?
上記の事例では、目的はあくまでも「品質を高めること」であり「カバレッジ100%」ではありません。「カバレッジ100%を満たすこと=品質が高くなる」であるなら良いのですが、そんなことは無いですよね。
単体試験でやるのか、結合して件でやるのか、サイクル検証でやるのかなど、検証ポイントの棲み分けだって考えられます。全てをJUnitで網羅する必要はありません。
そもそも、JUnitでカバレッジを100%満たす意味はないと言われています。到達不能コードもきっとありますよね。プロジェクト特性でも異なってくると思いますが、JUnitで目指すカバレッジは70%〜80%くらいでしょう。
■ 目的と手段を整理しよう
このように、目的と手段がごちゃごちゃになったら「目的と手段の整理」をしましょう。
・目的は何か
・そのための手段は何か
・その手段で障壁にぶつかったら、やることは2つしかない
その障壁を取り除くか、違う手段を用いるか
意外と「問題だ!」って騒いでいることが、目的と手段を取り違えていることが原因だったりします。目的と手段を取り違えて無駄な時間を過ごさないように注意しましょう。
最後まで読んで頂きありがとうございました! いただいたサポートは全て執筆活動の資金としてありがたく活用させていただきます。