GitHub SponsorsによってOSSへの変化はあるのかどうか

2020 / 12 / 16

Edit
💁‍♀️ This post was copied from Hatena Blog

数日前に GitHub Sponsors の機能で企業が支援できるようになることが発表されました。

これにより、今後どのように OSS に変化があるのかないのかを注目します。

特別視するのが良いアイディアか否か

そこで以下のような面白い議論が発生しました。

これはこの機能が入ったときに、もし支援している企業やユーザーだけが issue を作れて、他の人はコメントだけできるようにする機能が入ったらどうなるかという議論です。

なぜこのようなツイートをこの人がしたかというと以下の理由です。

The goal is to reduce the maintainer’s burden. Today the options are: turn off issues completely or make the repo private and give access to sponsors. It would be nice to have a less extreme option.

主な目的はやはりメンテナの負荷を減らすことで、そのためにどう差別化を行うか否かです。

差別化の難しさ

上記の例はかなり極端だと思っています。GitHub 側が共通で上記のような設定を加えるとは思っていませんが、各リポジトリで何かしらの差別化を行うかもしれないとは思っています。ただ、OSS でそこまで多くの選択肢はなく、そうなるとコンサルとかそういう部分かなと思います。また、issue の制限を行う等は悪手かなと思います。

他だとぱっと思いつくのは、やはり次のバージョンに向けて機能追加を投票制にするとかでしょうか。

例えば、自分の所属する組織では、機能の追加の優先度を投票制にしています。スポンサーをする場合、一般ユーザーと異なる投票するためのポイントを配分します。もちろん支援してないユーザーでも GitHub を使っている長さに応じ投票するポイントを持っています。

https://webpack.js.org/vote/

他の例だと rome はお金を支払うことにより、会社名(?)をツイート、readme への掲載のほか、xx 時間の間はマイグレーションのサポートをメンテナが行う等があります。

https://rome.tools/funding/

あまり多くの選択肢が無い中、考えつくのはこれぐらいでしょうか。

我々だと一つの企業だけで最大年間$70,000USD(7210000 円)支援してもらっていますが、これをどう捉えるかはその組織によるでしょう。自分は多くの会社は見返りを求めて寄付していると思っていませんが、何かしらは提示する必要がある以上、コミットする以外でどうインセンティブを出すべきなのかという答えを見つけていません。

現状

さて、今の世界観は以下の様になっていると自分は思っています。

Developer (少ない)
---
Evangelist (まだ少ない)
---
User (大半)

どこのポジションももちろん大切です。developer が物を作らないと、ユーザーというのは獲得出来ませんし、逆にユーザーが使ってくれないとメンテナのモチベーションなどに直結する可能性がありますし、お互い依存されています。また、エバンジェリストはその OSS を記事を書いたり、登壇したりしてユーザーにわかりやすく伝えます。つまりブリッジのような役割です。

しかしメンテナはどこの組織も常に少ないです。会社の OSS でない場合、どのように新規のメンテナを獲得するかは一つの大切なポイントとなります。どう他の人を巻き込み長期的にメンテナンスできるかを考えなければなりません。というのも当たり前ですが、メンテナは燃え尽きることはもちろんありますし、プライベートの変化等でいなくなる可能性が高いからです。また、仕事でやってない以上それを決めるのは自由だからです。 また義務だと思ってしまうところまで来てしまうと、OSS の楽しさでやっていたはずがそれを失ってしまう可能性がありそれは避けるべきだと思います。

この問題を解決するために、自分が知っているだけでも以下のような仕組みを作っているチームもあります。

OSSの現状と今後 - 技術探し Gatsbyのコミュニティの仕組みとOSSの現状・今後についての考察

GitHub Sponsors により現状を変えることができるか?

お金が出ることによりメンテナが増えるのでは?というアイディアはあると思います。ただこれにも難しいポイントがあります。

ある有名プロダクトでは過去にコミットした人に対する扱いに対して答えがまだ出てないという話があります。今の人だけに対してお金を配分した場合、過去の人に足して払わないのは問題ではないか?という点です。

また、自分は 2019 年に同じ組織に復帰して以来、お金をもらって OSS をしてきました。 そこで以下の 2 点に気付いていました。

お金の計算式が複雑で完璧にはできない

それは、当たり前でコードに対して正当に評価できないからです。いろいろな指標があると思います。コード量、コミット数、PR の数、issue での対応、など。しかし一貫して言えるのは正確な価値計算ができない点です。

お金が出ても人は辞める

お金はあくまでも一つのインセンティブであり、それをモチベーションにして OSS をやっている人は多くないというのが肌感です。興味のほうが強いのです。また、やはり仕事やプライベートで時間が取れなくなる例も多く見てきました。あくまでも小さなモチベーションと考え多くを期待することではないと経験上思っています。

しかし、この OSS によって得たお金で大学の学費に当てることができてる方もいます。

なので、これに関しては一概には言えないとも思います。


ただ、逆に組織はお金を得ることによりフルタイムコミッターを作るという方法は大いにあります。自分は GitHub Sponsors によりこれが全員のメンテナに行える世界が来るのを楽しみにしています。 多くの会社が支援してくれることによりこれは実現可能であり、不可能ではないはずです。

eslint では、過去に専属メンテナを採用し失敗しました。しかしながら、これは OSS 界隈にとっていい経験であり今後につながることでしょう。

We didn’t have the budget to pay him a proper full-time salary for his work, so we agreed on 20 hours per week for $5,000/month, with Kai spending the other 20 hours of his week working on other projects or freelancing. We tried this for a few months before it became apparent that this arrangement wasn’t sustainable for Kai. While the payments from ESLint were steady, he had to spend a lot of his other 20 hours each week finding ways to make enough money. So, we updated the arrangement to be for 10 hours each week at $2,500, to give Kai more time to find other work while still providing a baseline amount of dedicated ESLint time. Unfortunately, that arrangement also did not work.

https://eslint.org/blog/2020/10/year-paying-contributors-review#dedicated-maintainer

お金をもらったらそれは OSS なのか?

OSS の定義の話はここではしません。 ところで、Vue の作者の Evan はこのように述べています。

多くの人が最初のツイートを見て、「それはもう OSS ではない」というのも目にしますが、それに対する彼の反応は「だからなに?」です。ユーザーは OSS は無料で無制限に使える権利だと思っているが、これらのソフトウェアに割かれる時間やエネルギーは生計を立てる必要がある人から来ている。また、OSS は無償事業だと認識されるが、大勢に使われているソフトウェアは様々な要求や無料の技術サポートの要求に対処しなければならないことがよくある。これが燃え尽き症候群や放棄されたプロジェクトとなる。これが「本物の OSS」かどうかは気にしなく、中間モデルがすべての開発者にプラスの利益をもたらせれる可能性があるかどうかです。これは機能するかどうかわからないが、検討する価値はあります。

https://twitter.com/youyuxi/status/1337444366240133120

自分も開発者からすると、あまり OSS かどうかという点はどっちでもよく、開発しててもプラスになる世界が望む世界かなと思います。eslint の件を見てても、生活資金が OSS だけでは足りなくて打ち切りというのは悲しいです。

しかし企業が参加できるようになった GitHub Sponsors は、敷居も下がり今後の可能性だと感じています。

さいごに

いずれにせよ、今後企業の参戦による OSS への変化を楽しみに見つつ、それに適応できるように最適な解を見つけていくのだろうと思います。これにより、多くのメンテナが少しでも良くなるような世界になれば良いと思っています。