Skip to main content
QUICK REVIEW

[論文レビュー] Code Review For and By Scientists

Marian Petre, Greg Wilson|arXiv (Cornell University)|Jul 21, 2014
Software Engineering Research参考文献 9被引用数 15
ひとこと要約

本論文は、科学者におけるコードレビュー実践を2つのパイロット研究を通じて調査し、プロジェクト終了後のレビューよりも、タイムリーで小規模なコードレビューがより効果的であることが判明した。科学者たちは、メンターとの段階的で協働的なコードレビューから利益を享受し、コード品質、再現性、再利用可能性が向上する。特に定期的な対話と明確な目標がある場合に顕著である。

ABSTRACT

We describe two pilot studies of code review by and for scientists. Our principal findings are that scientists are enthusiastic, but need to be shown code review in action, and that just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews.

研究の動機と目的

  • 科学者において、通常はソフトウェア工学的実践が整っていないにもかかわらず、コードレビューの実施可能性と利点を調査すること。
  • ドキュメント作成、ツールの使用、コミュニケーションのギャップといった要因を含め、科学的ソフトウェア開発におけるコードレビューの導入を阻害する要因を特定すること。
  • メンターシップと段階的実践を通じて、科学的ワークフローに実用的でスケーラブルなコードレビュー戦略を開発すること。
  • 開発者と科学者がコードレビューをどのように異なる視点で捉えているかを理解し、それらの違いを埋めるための協働手法を確立すること。
  • 科学的研究チームにおける持続可能で負荷の低いコードレビュープロセスを実装するためのガイドラインを策定すること。

提案手法

  • 科学的分野に不慣れなプロフェッショナルな開発者を用いて、PLOS Computational Biologyに掲載された科学的ソフトウェアの事後コードレビューを実施した。
  • レビューの質、使いやすさ、評価価値を評価する目的で、11名の開発者および4名のコード作成者に対して半構造化インタビューを実施した。
  • 経験豊富な科学的プログラマーと経験が浅い科学者をペairリングし、メンターシップを通じてコードレビューのスキルを移転する第二のパイロット研究を実施した。
  • 共通の目標、スケジュール、相互フィードバックを明確にし、絆を築くために、定期的で同期的なレビュー会議(3〜4週間に1回)を重視した。
  • 大規模なリファクタリングではなく、各変更ごとにドキュメント文字列やテストを追加するなど、段階的な改善を促進した。
  • 初期段階のレビューに適した、活動中の研究プロジェクトから得た実際のコードベースを用い、開発中で自己完結性を持つ3〜4ページのモジュールに焦点を当てた。

実験結果

リサーチクエスチョン

  • RQ1分野に不慣れな非科学者開発者が、分野専門知識が欠如している状態でも、科学的ソフトウェアを効果的にレビューできるか?
  • RQ2科学者と開発者が、コード品質やドキュメンテーションに関して、期待値、基準、実践方法でどのように異なるか?
  • RQ3科学的ソフトウェア開発におけるコードレビューの導入を阻害する主な障壁は何であり、それらをどのように克服できるか?
  • RQ4タイムリーで小規模なコードレビューは、大規模でプロジェクト終了後のレビューに比べて、どの程度効果的で、導入されやすいか?
  • RQ5人間関係の対話とメンターシップは、科学者におけるコードレビューの成功した導入において、果たす役割は何か?

主な発見

  • 科学者たちはコードレビューに熱心であるが、バージョン管理、テスト、ドキュメンテーションといったソフトウェア工学的実践の経験が不足していることが多い。
  • 非科学者開発者による事後的で非同期的なコードレビューは、文脈不足、コードへのアクセス制限、対話の不在により「ドライブバイ」的と感じられ、評価された。
  • 動作例やビルド手順がなければコードの検証が困難であり、多くのレビューが、ドキュメンテーションの質の低さにより仮定を強いられた。
  • 科学者たちはしばしば、再利用を想定してコードをパッケージ化したりドキュメント化したりしない。これは、科学的成果よりもコード品質が軽視される文化的な慣習の反映である。
  • 開発者と科学者の両方が、コードレビュー中により多くの対話を望んでおり、対話が理解を深め、フィードバックの質を向上させ、信頼関係を構築するのに役立つ。
  • 最も効果的なコードレビュープロセスは、定期的で同期的な会話、明確な目標、および各変更ごとにドキュメント文字列やテストを追加する段階的改善を含んでおり、大規模な見直しよりも優れている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。