マインドの差異:自動計測と自己リポートでの生産性の違い(Mind the Gap: On the Relationship Between Automatically Measured and Self-Reported Productivity)

開発者の生産性は、ソフトウェア産業について一番重要な要素である。なんせ世界で何兆円というお金がソフトウェア開発に投資されている。アーキテクチャーとかデータベースのパフォーマンスとかは山程論文が出てくるが、なぜか生産性と品質の定量化の論文はそれらに比べ著しく少ない。

以下アブストである

Two separate schools of thought to measure software engineers’ productivity have coexisted: for a long time: on the one hand, using automated product or process measures and, on the other hand, using self-reported or perceived productivity. In this article, we start to bridge the gap between them with an empirical study of 81 software developers at Microsoft.

81人の古巣Microsoftの開発者のデータである、この論文の筆頭著者がfacebookというのがおもしろい、アメリカらしい。

  • Automatic measuresは往々にしてうまくいかないれしい、1970年代のIBMの論文にからも(”Measuring application development productivity”)。
  • Self reported productivityもまたうまくいかないらしい、”What predicts software developers”, これは新しく2019年の論文)

じゃあー、どうすればいいの?もうちょっとnarrow downするらしい。How self-reported productivity relates to measured productivity.。Microsoftの1066名のWindowsチームの開発者で調査を行ったらしい、かなり大規模な調査。対象者は平均8年の開発経験なので、かなり優れた人のグループである。もちろんWindowsバリバリ作って人なので。

この調査に参加した人は$50のamazonギフト券3枚をプレゼントすると言ったらしい。全員が年収1000万を軽く超える開発者だけど、まあ1.5万円のamazonギフト券はうれしくなっちゃうんだろうなー

やり方としては、amazonの星の数と同様に今日は星いくつ?みたいな問い合わせメールが毎日来るらしい。そしたら開発者は今日は「★★★」だなみたいに返信する(amazonギフト券のゲットのため)。オプションの回答で、いくつかチェックボックスがあり、例えば”I slept well”, “I woked from home”がある。このオプションのし掛けはプロの研究者だ。よく眠れるか否かは、生産性に大きく影響することはすでにわかっている。またコロナ渦での家での生産性の影響はソフトウェア企業にとってとても重要である。

ここで但し書きとして、We did not store developers’ personalized reports. と書いてあるように、個人に関わる情報はとらないようにしている。研究を継続的な状況で行うのにこういう考え方は必要である。

結果としては「よく寝ること」「interruptが少ないこと」が一番生産性に効いてくる。De Marcoが言っていた、ガンガン電話がなるようなオフィスでは生産性が下がるというのは正しく証明された。

生産性に関しての定量的な質のよい論文はすくない、IEEE Software, IEEE Software of Transactionというトップの学会誌でこういう論文が載ることは私たち生産性を非常に気にする企業の研究者にとっては根幹になる論文な気がする。