一部のソフトウェア開発者が他の開発者よりもコーディング プロジェクトにとって重要であるという考えは、貢献者が公平に扱われなければコミュニティの結束と参加が損なわれる可能性があるオープン ソース プロジェクトでは特に物議を醸しています。
マイクロソフトのパートナープログラムマネージャー、スコット・ハンセルマン氏は2013年当時、多くの人々と同様に「ロックスタープログラマー」という概念に反対していました。しかし、誰もが賛同しているわけではなく、何を測定すべきか、ましてや測定方法に関してコンセンサスが得られていないため、議論の決着は困難です。
さらに、プロジェクトのニーズは時期によって異なる可能性があります。主要な貢献者はプロジェクトの実現には貢献するかもしれませんが、プロジェクトが成熟すると負担になることもあります。
この長年にわたる議論への最新の参入は、昨年 [PDF] 公開され、最近 16 ページを追加して改訂された研究論文「ソフトウェア プロジェクトにヒーローが必要な理由 (1000 件を超えるプロジェクトから学んだ教訓)」[PDF] です。
米国ノースカロライナ州立大学のコンピュータサイエンスの研究者4人組が執筆したこの論文は、GitHub上の1,000以上のオープンソース プロジェクトに関するデータを示し、「プロジェクトの大多数はヒーロー プロジェクトである」こと、「(コードに最も貢献する)『ヒーロー開発者』からのコミットは、他の開発者よりもはるかに少ないバグをもたらす」ことを明らかにしている。
信念を持つ人は、ソフトウェアヒーローという概念そのものが抽象的な平等の概念と相反するものと捉えられる可能性があるため、これを完全に拒否するかもしれません。しかし、公民権としての平等(誰もが法の下で平等な扱いを受ける権利がある)と、誰もが同じであるという主張としての平等を区別することが重要です。
論文の著者であるスヴォディープ・マジュムダー氏、ジョイマリーヤ・チャクラボルティ氏、アムリタンシュ・アグラワル氏、ティム・メンジーズ氏は、「英雄」という言葉の使用は性別を限定するものではないと指摘し、こうした議論につきものの政治的な爆発性を認識していることを示している。
それでも、「ヒーロー」という言葉には様々な意味合いが込められており、「ロックスター」「チャンピオン」「リーダー」「雑兵」「狂人」「女王様」「殉教者」といった言葉が代わりに使われていた可能性もあり、それらは異なる意味合いを持っていたかもしれないことは指摘しておく価値がある。しかし、簡潔にするために「ヒーロー」という言葉に留めておくことにしよう。
特定の言語(C、PHP、JSなど)が他の言語よりもバグの多いコードを生み出すという研究結果を、科学者が論破
続きを読む
研究者たちは、「ヒーロー」プロジェクトを、貢献の80%以上が開発者の20%からもたらされるプロジェクトと定義している。
この定義の重要な点は、コードとコミュニケーションの両方を貢献として捉えている点です。これを踏まえ、研究者たちは、CMUのコンピュータサイエンス教授ジェームズ・ハースレブ氏の仮説、つまりコードを書くことは社会的プロセスであり、社会的交流によってより良いコードが生み出されるという仮説を検証することを目指しています。
「『コードインタラクショングラフ』では、80%以上の貢献をしている開発者がヒーロー貢献者であり、『ソーシャルインタラクショングラフ』では、80%のコミュニケーションを行っている開発者がヒーローコミュニケーターです」と論文は説明している。「どちらも私たちにとって『ヒーロー開発者』です。」
研究者たちは、GitHubデータセットの分析に基づき、ほとんどのプロジェクトはヒーローによって推進されており、ヒーローはより良いコードの作成に貢献していると結論付けています。彼らは、コードの品質を向上させるために、ヒーローと他の開発者間のコミュニケーションを効率化する方法について、さらなる研究を行う必要があると主張しています。
「オープンソース プロジェクトには『ヒーロー』開発者が存在するという重要な証拠が得られたため、この発見は興味深い」と、現在テクノロジー業界で働いているコンピューター サイエンスの博士号を持つギアス ウディン氏はThe Registerに語り、参加や貢献が報酬欲ではなく学びたい、認められたいという欲求から生まれるオープンソース環境において、コミュニケーションがいかに重要であるかを示していると指摘した。
「ソフトウェア開発は要求の厳しい仕事であることを考えると、『ヒーロー』開発者たちがプロジェクトの進捗だけでなく、私生活や仕事の面でも、参加中にストレスを感じるのかどうか、またどのように感じるのかを知ることは興味深いだろう」とウディン氏は述べた。
ウディン氏は、この研究は、開発者とオープンソースプロジェクトをより良くサポートする方法に関して、業界と学界が探求すべきさらなる道を示唆していると述べた。
研究者らも同様の結論を出している。
「開発者が自分の仕事に非常に熟練し、プロジェクトの中心的役割を担うようになった時に、ヒーローが誕生する」と研究者らは述べている。「組織はこうしたヒーローへの依存を認識し、人事方針を見直し、彼らを引き留めることでより効率的に管理する必要があると我々は考えている。」®