自分が参加していない案件のお話ですが、
テストコードのガバレッジ測定を行って毎日上に報告…という内容で文句を言っている声が聞こえました。
自分もメトリクス測定は好きなのですが、
ガバレッジ測定という同じ測定ネタのこのお話には賛同できませんでした。
それはなぜなのかを答える前に、
なぜソースコードを測定する必要があるのかについて考えていこうと思います。
と言っても当たり前のことでしかありません。
ソースコードの品質を向上させるためです。
測定することで自分が知らないソースコードのまずい箇所を照らし出します。
まずい箇所の原因を調査し、
より良い書き方を学ぶことでソースコードの品質が向上するのです。
ではなぜ冒頭の例は賛同できないのか。
それは測定結果を騙すことが簡単だからです。
良い測定結果のまずいソースコードを作ることは可能で、
単純にハイスコアを出したければ騙す書き方をしてしまった方が楽なのです。
数字だけ見て満足してしまうと、
結局測定していないのと変わりがないのです。
むしろ測定する分や報告するコスト分悪化しています。
測定はソースコードの一面を映す鏡です。
自分で自分を映す分には、
寝癖や服装の乱れを正すのに役立つことでしょう。
しかし第三者が誰かをチェックする為に使うのであれば、
鏡の前に立派なポスターを用意し、
その後ろに隠れてしまうことができるのです。
管理者の方には酷な現実かもしれませんが、
管理者の方から測定を依頼する場合は失敗することでしょう。
管理者は開発者が自立的に測定したくなるように促すべきであり、
測定を強制しても何の意味もないのです。
そして測定結果はソースコードの一面しか見ていない点にも注意してください。
ソースコードの美しさは様々な要素が存在し、
それは多面的です。
(メトリクスやガバレッジ測定では、命名規則やクラス設計の美しさを測れない。)
測定を騙すことができるのもこういった理由からです。
まとめます。
測定は自分で自分を偽らずに測定する際にのみ有効です。
しかしそれは一面でしかないので、
そこからさらにソースコードの研磨に努めましょう。
…こんなかんじ?
0 件のコメント:
コメントを投稿