プログラミングのQ&Aサイトにアクセスした人々はどれほどコードや本文を「コピー&ペースト」しているのか?

プログラミング中に不明点や解決方法がわからない問題に出くわした際、オンラインコミュニティに質問して回答を募ったり、すでに自分と同じ問題に直面した人の質問をのぞいたりすることは多いもの。ユーザーがプログラミング関連の質問をしたり回答したりできるオンラインサイト「Stack Overflow」が、一体どれほどの人々がコミュニティ上のコードやテキストを「コピー&ペースト」で再利用しているのかを調べた結果を公開しています。
How often do people actually copy and paste from Stack Overflow? Now we know. - Stack Overflow Blog
https://stackoverflow.blog/2021/04/19/how-often-do-people-actually-copy-and-paste-from-stack-overflow-now-we-know/

今や多くのソフトウェア開発者にとって重要なコミュニティとなっているStack Overflowは、「コーディングの質問に対する回答が課金しないと読めないペイウォールに隠されている」ことへの不満から創設されたとのこと。「もし、Stack Overflowからコードをコピーするのが有料化されたら世界はどうなるのか?」というジョークが生まれるほど、Stack Overflowで紹介されているコードをコピー&ペーストで再利用することは一般化しています。
そこでStack Overflowは、実際にどれほどの人々がコードやテキストをコピー&ペーストしているのかを調査することにしたとのこと。ジョーク的な発案からスタートしたこのプロジェクトに取り組んだのは、Stack Overflowの製品マーケティングチームでデータアナリストを務めるデイヴィッド・ギブソン氏。自分自身も長年にわたりStack Overflowに記載されているコードをコピーしてきたというギブソン氏らのチームは、自社開発のウェブトラッキングツールを使用して調査を行ったそうです。
Stack Overflowに埋め込んだウェブトラッキングツールは、コピーした内容そのものは記録していないものの、「コピーしたものが質問だったのか回答だったのか、それともコメントだったのか」「コピーした部分がコードブロックなのかプレーンテキストなのか」「コピーした投稿の評価スコアはどれほどなのか」「コピーしたユーザーが住む地域はどこなのか」など、さまざまなメタデータを収集しました。
2021年3月26日~4月9日の2週間にわたり実施された調査の結果、「Stack Overflowにアクセスしたユーザーのうち4人に1人は、ページにアクセスしてから5分以内に何かしらをコピーした」ことが判明。期間中にStack Overflowへ投稿された質問や回答、コメントは730万5042件であった一方、コピーが行われた総数は4062万3987回だったそうで、質問や回答の5倍以上もコピーが行われていたとのこと。また、テキストよりもコードブロックをコピーする頻度が10倍も多いそうで、かなりの人々がStack Overflowのコードを手元にコピーして参照または流用していることがわかりました。

Stack Overflow全体でコピーが行われる頻度はサイトのトラフィックと連動しており、ほとんどのコピーはユーザーが住む地域における平日の勤務時間中に発生しました。実際にコピーしたユーザーの居住地を見ると、アジアが33%、ヨーロッパが30%、北米が26%だったとのこと。
以下のグラフは、コピーを行ったユーザーの「評価スコア」を表したものです。ユーザー登録を行ったアカウントは自動的に評価スコアが「1」になるため、最も多くのコピーを行っている評価スコアが「0」のユーザー群は、アカウントを持っていない匿名ユーザーということになります。ギブソン氏によると、実に86%のコピーが匿名ユーザーによって行われているそうです。

また、評価スコア「0」のユーザーを除き、特定の評価スコアを持つユーザー群が1人当たりの平均でどれほどコピーしたのかを示したグラフが以下。縦軸にコピー回数、横軸に評価スコアをとったプロット図を見ると、評価スコアが高くなるほど平均コピー回数は減少する傾向がうかがえます。この理由についてギブソン氏は、学習を始めたばかりのユーザーはコピーを用いて学習を加速しており、評価が高いユーザーほどStack Overflowのコピーでは対処できない難しい課題に取り組んでいる可能性があると示唆しました。

Stack Overflowに質問を投稿したユーザーは、寄せられた回答の中から最も優れたものを「承認」することで、質問が解決済みであると示すことができます。今回の調査で、「承認された回答」と「承認されていない回答」でどれほどコピーされる頻度が違うのか調査したところ、「承認された回答」は47.56%、「承認されていない回答」は52.44%の割合だったとのこと。1つの投稿当たりの平均コピー回数を割り出すと、「承認された回答」は1投稿当たり7回、「承認されていない回答」は1投稿当たり5回コピーされていたそうです。
この結果についてギブソン氏は、そもそも質問に対する「承認された回答」が定められていないケースもあると指摘。Stack Overflowでは、ある回答について多くのユーザーが賛成票を投じて高い評価スコアを獲得したとしても、質問者自身がその回答を承認しなければ「承認されていない回答」のままになります。
さらにギブソン氏らの調査チームは、投稿に対するユーザーの評価スコアに基づいてコピーの回数を測定しました。以下のグラフの左の「Answer(回答)」を見ると、評価スコア「1~5」「6~25」「26~100」「101~1000」の投稿がコピーされた回数はそれほど変わりません。一方、右の「Question(質問)」を見ると、評価スコア「1~5」の質問からコピーされる回数が高くなっています。これは回答者が質問文の内容をコピーして手元の環境で再現し、それから回答しているためではないかと推測されています。

評価スコア「1~5」の回答と「101~1000」の回答でそれほどコピーされた回数が変わらないのは、Stack Overflowに投稿された回答の多くが評価スコア「1~5」である点が理由かもしれません。「特定の評価スコアを獲得した回答が平均してどれほどコピーされたのか」を示した以下のグラフを見ると、評価スコアが高い投稿ほどコピーされる回数が多い傾向が見てとれます。

Stack Overflowのコンテンツディレクターを務めるベン・ポッパー氏は、他の誰かがすでに思いついたアイデアを再利用することは決して悪いことではないと主張。「これは、学習を助け、コードをより速く実行し、フラストレーションを減らすのに役立ちます。私たちのウェブサイト全体は知識の再利用で運営されており、Stack Overflowを強力なコミュニティにしているのは、利他的なメンターシップです」とコメントしています。
その一方で、コピー時にバグや安全性の問題が入り込むのを防ぐためにも、いくつかの基本的な点については学習する必要があるほか、一部のコードを再利用するには特定のライセンスが必要な場合もあると指摘。これらの点を踏まえた上で、Stack Overflowのコミュニティが作成したものの利点を共有することを全てのユーザーに奨励すると述べました。

・関連記事
【訃報】「コピー&ペースト」を生み出したコンピューター科学者のラリー・テスラー氏死去 - GIGAZINE
「最悪のソフトウェアはマネージメントの問題」、よいソフトウェアを作る方法を政府のソフト開発を行う技術者が語る - GIGAZINE
コードを全面的に書き直すよりもリファクタリングを少しずつ積み重ねるべき理由 - GIGAZINE
マインクラフトの心臓部「ソースコード」の一部がオープンソースとして順次リリースされ誰でも自由に再利用できる状態に - GIGAZINE
無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう - GIGAZINE
・関連コンテンツ
in ソフトウェア, ネットサービス, Posted by log1h_ik
You can read the machine translated English article How often do people who visit programmin….