はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

愚直という名の思考停止

「愚直にやっていくしかない」

「愚直にがんばります」

なぜか開発現場でよく聞く言葉です。手を抜かず真面目に品質を積み重ねる行為に対する謙遜した表現が発端だと思います。

しかし、最近は効率化や自動化を考えず手動で行うことで無駄な時間を使うことの言い訳に使われているような気がします。

そして、手動テストを行ったり机上レビューを行うことが実はとっても属人的な行為であり、その属人的な行為で確保した品質の方が、各種ツールを使って属人性を排除した成果よりも評価するという本末転倒なことも起こっています。

これは、たとえばユニットテストで最初にオールレッドにしたり、静的コード評価なので厳しい指摘を受けてしまうことを受け入れるという発想の転換ができない点が影響しているとみています。

つまり、自動テストをコーディングの初期の段階から導入することで「単体テストの障害検出率の上限オーバー」という過去の亡霊による品質判定基準を満たさなくなり、品質が悪いプログラムであるという思考停止した判定になってしまうからです。このような場合、せめて自動テストによる単体テストは従来の単体テストではなくコーディング時の自己机上レビューに相当するものとみなせばいいとは思うのですが、そうすると今度は「単体テストの障害検出率の下限未達」となりテストケースの正当性が疑われるというこれまた思考停止した判定になってしまいます。

元凶は、新しい方法論(というほど新しくはないのですが)を採用することにより生じる基準の変更ということを面倒だと思うからだと思うのです。それこそ、愚直に新しい基準を探るのが本来の愚直さであるはずが、古い基準のまま愚直にやることで新しいことにチャレンジする面倒さをみんなで見て見ぬふりをしているといえるでしょう。

そういった状況下で新しい人材をいれたり新しい会社が入るとどうなるかといえば、愚直に属人的にこなしている品質担保方法では品質が確保できないため、「やっぱり今までの会社や要員はすばらしい」的な評価になるわけです。ここにも積極的に新しいものをとりいれない利点が存在します。

しかし、仕様変更や機能追加をしたときも同様に愚直に手動でやるというスピード感で母屋であるお客様の事業自体が揺らぐことになるんじゃないかと非常に心配でなりません。