過去のバージョンをサポートするのはやめよう

Yuki Tanaka
5 min readNov 27, 2017

この記事はMikealさんの素晴らしい記事の翻訳版です。

Thanks Mikeal for sharing amazing article, and allow me to translate and share with friends in Japan!

ライブラリの保守担当者がさらに前進するための必要性。

LinuxやNode.js等大きく注目されているプロジェクトでは、エンタープライズ、本番運用レベルのユーザが基盤刷新することなく継続して利用できるよう長年にわたってサポートを提供している。

これに影響された多くのプロジェクトで同じような長期間サポートを行うエコシステムができてしまっている。これらのプロジェクトではCI環境にて古いバージョンも維持し続け、万が一古いリリースで動かないようなPRが上がった場合にはBlockしてしまうのである。

私はここで声を大にして言いたい。小さなプロジェクトにとってこれは死活問題だと。

1. これは大規模プロジェクトにおいてのLTS(Long-term support)のやり方ではない

現状古いリリースバージョンに対してテストを書かなくてもNode.jsへのプルリクを送ることができます。実際、あなたが作成したそのプルリクは現行リリースバージョンに対してどうか、という観点でのみレビューされます。

LTSワーキンググループは定期的に直近の変更を古いバージョンに適用しています。この”LTSワーキンググループ”とは誰のことでしょうか?それはベンダーです。

さらにいうと、それは長期サポートをケアする貢献者たちです。彼らはエンタープライズなNode.jsユーザー(Google, IBM, NodeSource, Nearform)に戦略的興味を持ちながら会社勤めしている人たちです。

LTSはそういったベンダーたちをFoundationのプロセスに取り込まない限りなし得ないものなのです。

あなたのGitHub上のプロジェクトにおいてはそういったベンダー支援が受けられていないかと思います。

また、あなたのGitHub上のプロジェクトにおいては過去のリリースもメンテナンスするリソースなんてないでしょう。

そしてなお、あなたは多くの貢献者と投資を得ている大規模プロジェクトよりさらに貢献に対してのバリアを張っていないでしょうか?やめましょう

2. あなたが無料開放しない限り、LTSに対する貢献は得られないでしょう

貢献者の多くは新しいバージョンのユーザーでもあるのです。それはモジュールの詳細な内部に切り込んでいくのは、最先端の部分を彼らが利用したいと考えているからです。

一方で、古いバージョンに対する貢献が得られないのは明示的にそれをコミュニティにお願いしていないから、ということもあります。彼らが新しいものを使えないのに、何が彼らにとって貢献に対するインセンティブとなるでしょうか?

もし、古いバージョンに対するサポートを終了するといって多くのユーザが文句を言ってきたのなら、果たしてそのユーザの中の何人が当事者意識で貢献してくれるでしょうか?何人が必要かどうか検討してきたでしょうか?

我々はプロジェクトに依存するしながらも疎遠になっていたOpen Source利用者に対してこれまで啓発を行ってきました。もし我々が彼らに対する貢献を継続するのであれば、彼らもこの貢献活動に乗り出してもらいましょう。

3. 燃え尽き保守担当者

私はこれまでの多くのオープンソース開発者に燃え尽きについて話してきました。共通の話題として、彼らは過度の期待を感じている、ということです。

実際、彼らは個人的に関与、もしくは繋がりもないのにも関わらず第三者からの使命感のようなものを感じています。

もし長期サポートが必要だと言っている人があなたの貢献者であるならば、あなたはPeerとしてその必要性を強調できるでしょう。しかしながら、古いリリースを使っているほとんどのユーザー達はその開発プロセスに入っておらず、長期サポートの保守担当は彼らがわがままを言っているようにしか感じません。

端的にこの問題を解決するには、貢献する意思のない人のリクエストに対してはもはや長期サポートを終了することです。彼ら(古いリリースをサポートしろ、という人たち)が積極的に貢献する意思を示さない限りは、燃え尽き症候群から脱却するためにも重要です。

4. エンタープライズはタダ乗りするに値しない

オープンソースにはエンタープライズから大量のお金が注ぎ込まれている。多くの企業がこうしたリソースを必要な時につぎ込みたがっている。

彼らが小さなプロジェクトに対して同様にリソース提供しないのは、そもそも必要がないからだ、それらのプロジェクトはすでに無償提供スリことに前向きだからだ。

それらの企業は他に選択肢がなければ、介入することに問題はない。もしエンタープライズ企業があなたのソフトウェアに依存しているのであれば、そこにはベンダーが存在し、ユーザが幸せになるように売り込んでいる。

あなたが古いバージョンをサポートしない、と言い切るのは、”あなたはユーザであろうと関係ない”と言っている訳ではないのである。その代わりに、それが意味するところは2種類であり

  • アップグレード
  • アップグレードしたくないと言っている人たちをサポートするために助けてくれ

ということなのである。

ソフトウェアを使うのであれば金を払うなり、貢献するなりしろ、ということである

--

--

Yuki Tanaka

CEO@Study Valley Inc. Ex-Vice President at Recruit Strategic Partners. Past app engineer(Java/Ruby/Python/Go/C++/C#/Swift/Perl)