Linuxカーネルにおけるstable(安定)ブランチのメンテナーであるGreg Kroah-Hartman氏は最近、ミネソタ大学の一部の開発者らが悪意あるパッチを意図的に混入しようとしたという事件をきっかけに、ミネソタ大学の開発者らが提出するLinuxへのパッチすべてをブロックした。このようなパッチの提出はセキュリティの観点から見て極めて悪質であるものの、Kroah-Hartman氏の指摘したところによると、コードのメンテナーらは意図的に悪質なコードを混入しようとする試みを発見し、断罪するという無駄な時間がなかったとしても、「本来の作業を十分過ぎるほど抱えている」という。それは間違いのない事実だ。
というのも、オープンソースのメンテナーというのは大変な仕事であるためだ。開発者はバグを修正し、新たな機能を生み出し、レビュアーは彼らのコードを検証し、コードはメンテナーのところで止まることになる。メンテナーは以降のオープンソースプロジェクトにおける広範な部分での作業に対して責任を負うのだ。そしてご想像の通り、メンテナーの数よりもレビュアーの数の方が多く、レビュアーの数よりも開発者の数の方が多い。メンテナーはオープンソースプロジェクトというオーケストラの指揮者と言える。バグが開発者によって修正されていない場合、メンテナーが修正することになる。コードがレビューされていない場合、メンテナーがレビューすることになる。そして、Linuxのような巨大なプロジェクトでは、しばしば1週間で数百件にも及ぶコードのパッチをメンテナンスする必要がある。
こういった点を考えると、オープンソースのメンテナーはさぞかし高い報酬を得ていると思うかもしれない。しかし、それについては考え直す必要があるだろう。Kroah-Hartman氏のようなトップメンテナーやLinuxの父であるLinus Torvalds氏は高い報酬を得ているものの、Tideliftの新たな調査によるとオープンソースプロジェクトのメンテナーのうち46%はまったく報酬を得ていないという。そして報酬を得ているメンテナーのうち、オープンソース関連の作業で年間1000ドル(約11万円)を超える報酬を得ているメンテナーはわずかに26%しかいない。これは恐ろしいことだ。
オープンソースソフトウェアの管理を支援するためのツールを提供しているTideliftが400人弱を対象に実施した同調査によると、メンテナーの半数近くは無償のボランティアだという。ではなぜ無償で働くのだろうか。
この調査によると、メンテナーが自らの仕事を楽しめている理由のトップ3は以下の通りだ。
- 「世界にポジティブなインパクトを与える」(71%)
- 「創造的であり、そして/あるいは挑戦意欲がかき立てられ、楽しめる作業に対するニーズを満足させるため」(63%)
- 「自らにとって重要なプロジェクトの作業を実施する」(59%)
これ自体に驚きはない。
The Linux FoundationのOpen Source Security Foundation(OSSF)とLaboratory for Innovation Science at Harvard(LISH)が最近発表した「Report on the 2020 FOSS Contributor Survey」によると、プロジェクトで開発者が作業する理由として最も多かったのは、自らが既に使用しているプログラムに必要な機能を追加する、あるいは修正を加えるというものだった。その後に、学習の喜びと、創造的な作業や楽しめる作業への要求を満たすという喜びが続いている。最後の理由は何かって?報酬を得るというものだ。
ここで述べておきたい。開発者であるかレビュアーであるかメンテナーであるかにかかわらず、報酬を得るというのは依然として重要だ。ボランティアとしての喜びで生きていくことはできないのだ。