ソフトウェア工学研究の日々

ソフトウェア工学の学術研究を紹介しています。ソフトウェア開発に関する調査と実験が大好きです。

コードレビューは活発に活動している人ほど引き受けてくれる

今月末に開催されるソフトウェア工学の国際会議 ICSE にて、Journal-First Track という「論文誌に採択されたが国際会議では未発表」という原稿について、私たちの研究室から1件発表があります。

arxiv.org

 この論文は、オープンソースソフトウェアプロジェクトで行われているコードレビュー活動を調査し、「誰に依頼すると、引き受けてもらえるのか」を機械学習で予測する方法を考えた論文です。データセットには、Android, LibreOffice, OpenStack, Qt プロジェクトに投稿されたパッチ 230,090 個を使っています。

 この論文では、コードレビューは誰でも引き受けてくれるわけではなく、16%から66%のパッチで、レビューのお願いに反応してくれないレビュアーが 1人以上いることを報告しています。引き受けてくれないことがあるからと多数の人に依頼を出すのは迷惑ですから、レビューを引き受けてくれそうな人に依頼を出すというのが課題になります。

 この「レビューに参加してくれそうな人」を予測するとき、レビュアーの "Human Factor" を含めると精度が向上する、というのが論文の報告です。Human Factor といっても色々ありますが、強く効くのは「レビューを引き受けてきた割合」と「これまでに書いたパッチの数」です。そのほか、これまでに書いてきたレビューの数や、レビューとして記述するコメントの量、現在実施中のレビューの数などが予測に寄与する要素となっています。

 この結果は、いつもコードレビューを引き受けてくれる、まじめにレビューを書いてくれる人ほど、これからも引き受けてくれる可能性が高いということを示しています。これだけ聞くと当たり前のようにも思える話ですが、従来研究ではパッチの内容に関係した知識を持っていそうなレビュアーを推薦することだけが考えられていたので、その人たちの過去の行動まで加味したほうがよいことを示した、というのがこの論文の貢献になります。

 この結果をレビュアーの自動推薦に単純に組み込むと、「引き受けてくれる可能性が高い人」を推薦しやすくなるという点では有益ですが、やりすぎると、現在頑張っている人たちにさらに依頼が集中しすぎて、破綻する可能性があります。作業負荷を能力や態度に合わせて公平に分配できるようになるには、まだまだ先は長そうです。