「見える化」でテストコードを書くモチベーションを上げる
モチベーションの源泉
人によってモチベーションの源泉は異なる。達成志向の人、「ふつう」であることを好む人、リスク回避型の人…。達成志向のリーダーが「明日までにこれをやれば今期目標達成だ!」と言われても、リスク回避型の人はいまいち燃えないかもしれない。ひとりひとり、やる気スイッチは異なるのだ。
プログラミングは好きか
エンジニアに聞いてみよう。「プログラミングは好きか」と。おそらく多くのエンジニアが「好きです」と答えるだろう。
では、次の問いかけに対してはどうか。
テストを書くのは好きか
「好きです」という人もいるだろう。私は大好きだ。カバレッジが上がっていくとニヤニヤする。こういう記事が大好きだ。
しかし、「好きじゃない」というエンジニアが少なからずいる。また、別に嫌いじゃないし大事だと思ってるけどなかなかテストコードを書かない、そんなエンジニアも多い。
私のチームで以前、ユニットテストの整備をしているときもそうだった。テストは大事だ、ということはわかっていてもなかなか進められないのだ。ユニットテストの整備をやります、と手を挙げたはずのメンバーが、なかなか手をつけない。正直、ほかの開発アイテムがあるからある程度仕方ないかなとは思っていた。
カバレッジ可視化が彼を変えてしまった
バックログに潜んでいた「lcovでカバレッジ可視化」。せめてそれはやってみたら?と勧めたところ、とても素直なそのメンバーはすぐにやってくれた。(lcovによる可視化はこちらの記事などを参照されたい)
するとどうだろう、それまで遅々として進まなかったテスト整備が急に進み始めた。
いったい何があったというのか?
彼に尋ねてみると「いやぁ、カバレッジ見えるようになったら、カバレッジ上がるのが楽しくなっちゃって。テストって楽しいですね!」
無事に洗脳できたようで私としてもニッコリである。
正直、可視化するだけでそこまで変わるとは思わなかった。正直、マネージャーである自分が状況を把握しやすくなるからという動機がメインだったのだ。
自分の行動がどう世界を変えたのか知ろう
この一件で私は学んだ。人は、自分がとった行動がどのような結果につながったのか見えづらいものにはモチベーションが湧きづらいこと。逆に、そこが見える化されていれば、モチベーションの源泉となること。
個人的には、テストカバレッジやサイクロマティック複雑度など、なかなか優先度が上がりづらかったりモチベーションにならなかったりするような指標に対しては見える化することを強く勧める。
おまけ
テストカバレッジについては各言語で可視化ツールが存在しているし、複雑度はSonarなどで計測可能だ。ぜひ試してみてほしい。
この記事が気に入ったらサポートをしてみませんか?