ソースコード読解力は個人差が大きい
コードレビューなどで、他の人のソースコードを読んだり理解したりする速度が気になることはありませんか? また、読む速度や理解する速度がとても速い人がいると感じたり、自分が周りの人よりも速いと思ったりすることがあるのではないでしょうか。私たちの研究グループで実施した観察でもソースコードを読む速度は個人差が大きいことを確認しており、同じソースコードを理解するための時間に6倍の差がある事例を確認しています。
では、自分自身のソースコードを読む速度や理解する速度が、平均と比べて速いのか遅いのかを知るためにはどうしたらよいでしょうか? 最も簡単な方法は、社内などの身の周りの人とコードレビュー時間を比べてみることでしょう。他にも、参加者全員でソースコードを読むような社外勉強会に参加する方法もありそうです。
文献からは大まかな速度を知ることができる
書籍、標準、論文の情報も参考になるでしょう。表1は国際標準や文献に掲載されているコードレビュー速度の一覧です。文献によっては、プログラミング言語が明記されていないものもあります。他にも、どのようなプロジェクト、前提、手順で実施したものかも勘案する必要があるので、これらのコードレビュー速度は大まかな指標として捉えるのがよいでしょう。
文献名 | コードレビュー速度 (1時間あたり) |
公開年 |
IEEE: IEEE Standard for Software Reviews and Audits(1028-2008) | 100~200行(Technical reviews) | 2008 |
ワッツハンフリー: TSPi ガイドブック(Introduction to the Team Software Process)、秋山義博 監訳、JASPIC TSP研究会訳、翔泳社 | 200行以下(インスペクション) | 2008(1999: 原著) |
M. Fagan: "Design and code inspection to reduce errors in program development", IBM Systems Journal, vol. 15, No. 3, p 181-211 | 700~900行(問題発見)、500~700行(問題指摘)、(インスペクション、COBOL, コメント行含まず) | 1976 |
ハンズオンワークショップでの事例
私たちの国際研究グループが主催した「ソフトウェアインスペクションワークショップ2009」では、レビュー観点をセキュリティに限定し、1時間10分で4,500行のJava言語から欠陥の発見をするハンズオンを実施しました(図1)。ワークショップ参加者は、実務でソフトウェア開発に携わる様々な企業に所属する方です。事後アンケートから、参加者93名のうち32名が普段の業務でのコードレビューのほうが速い(時間当たりに読み進めるソースコード量が多い)と回答しました。表1の値とはずいぶん異なりますが、特定の観点に限定することで読むべき部分を限定し、みかけ上の読む速度が上がることもあると考えることができそうです。
オンラインでもハンズオンワークショップを
紹介したハンズオンのアンケートをはじめ「オンラインでもできるものを」という要望をたくさんいただいています。そこで、対象ソースコード、読みすすめ方など、条件をある程度そろえ、参加者の結果を共有できる題材(ハンズオン題材)を用意することを考えました。ハンズオンは、参加者にとっては腕試し、私たち研究グループにとっては研究題材になります。題材の準備や研究テーマは奈良先端科学技術大学院大学 博士前期課程の保田 裕一朗氏が中心となって進めています。