! This post is also available in the following languages. 英語, 繁体中国語

Prettier への支援開始のお知らせと企業が OSS に対して支援するということ

フロントエンド開発センター(通称: UIT) Front-End Dev.9 チームの花谷(@potato4d)です。

『UIT 新春 Tech Blog』 1/27 の今回は、UIT が主体となって行っているフロントエンド領域の OSS のスポンサー活動についてご紹介します。

LINE のフロントエンド領域関連の OSS スポンサリング状況

LINE では、2022年1月現在以下のフロントエンドに関する OSS の支援実績があります。

Vue.js

  • 2021年4月より支援開始し、継続中
  • 毎月500ドルを Evan You 個人の Patreon アカウント経由で支払い

Husky

  • 2021年3月より支援開始し、継続中
  • 毎月100ドルを Open Collective 経由で開発チームのアカウントへと支払い

Bootstrap

  • 2021年6月より支援開始し、継続中
  • 毎月100ドルを Open Collective 経由で開発チームのアカウントへと支払い

組織としても OSS のスポンサリングへの意識が高まり、 2021 年より活発に支援している状態です。そして今月、新たに Prettier への支援を行うこととなりました。

余談ですが、LINEにてOSSのスポンサリングが活発に行われるようになったきっかけにサイボウズ株式会社のスポンサリングの先行事例があります。

自社だけであれば広く支援するには至らなかったため、先駆者の存在によって LINE が支援できている今があることをこの場をお借りして感謝します。

なぜ OSS へのスポンサリングを行うのか

営利企業が OSS へとスポンサリングすることに対して懐疑的なかたもいるのではないでしょうか?OSS の多くは無償で非営利で提供されており、必要であればクローンして手を加えられるもの。営利企業である我々が、あえてコストをかけてまで非営利の OSS に対して支援をすることに合理性が見つからないかもしれません。しかしその裏で、この状態がリスクとなり得ていることはご存知でしょうか。

Node.js のエコシステムに存在する OSS の多くは個人あるいは有志によって成り立っており、私達にフロントエンドエンジニアには欠かせないものであることは間違いありません。にも関わらず、それらの OSS が十分に持続可能な状態になっているかというと、そうとは限りません。近頃は Next.js や Hasura のような、企業がマネタイズを見据えて開発・運用している OSS も少なくありませんが、直接的な収益につながっていない OSS のほうが圧倒的多数というのが現状です。

そんな状況の中、近頃 Node.js のエコシステムには不安がつきまとうことも多くあります。昨年発生したUAParser.js のハイジャックの一件以来、パッケージを狙った問題も多く発生していますし、そうでなくともメンテナがメンテナンスを打ち止めるケースも増えています。

そのような状況下において、もし開発者自身を除くと修正が難しいバグや脆弱性が発生した場合、大きなリスクとなり得ます。責任も重く受け止める営利事業者である私達にとって、そのリスクは看過できないものとなりつつあります。これまで OSS の収益性に乏しさは個人の奉仕に支えられてきましたが、見て見ぬ振りをせず、十分な支援が必要です。

これまでの歪さが顕在化した今、OSS 文化への共感や支援などを考慮せず、リスクヘッジの観点のみで判断しても、企業がOSSを支援することに十分な理由がある時代になりつつあります。

Prettier への支援の意図と社内での使用状況

今回、支援のきっかけとなったのは以下のブログ記事です。

この記事は Prettier の主要なメンテナのひとりである sosukesuzuki 氏によって書かれたもので、本記事ならびに参照先の原文にて、現在の Prettier がたった二人のメンテナによって支えられており、その功績を鑑みて月あたり $1,500 を主要メンテナに支払うことが語られています。

LINEのUIT関連の活動においても、過去にも UIT INSIDE ep.37 『コントリビュートして学ぶ Prettier のしくみ』や UIT INSIDE ep.100 の『OSSフリートーク』にて sosukesuzuki 氏に Prettier の現状にて語っていただく機会があり、そのメンテナンスが持続可能な状態とは言えないことを理解していました。

Prettier はいまやモダンなフロントエンドのプロジェクトでは使わないことは考えられないツールであり、社内・社外問わずにフロントエンドの生産性を高い状態で維持するために欠かせない立ち位置に存在します。OSS の持続可能性についての議論は昨今のトレンドのひとつですが、 Prettier が継続してメンテナンスされることは、フロントエンド開発者にとって非常に重要と判断し、支援を決断するに至りました。

LINE 社内での Prettier の利用状況

もちろん業界全体を俯瞰してだけでなく、社内でも Prettier は広く利用されています。LINE では React/Vue のシェアが拮抗していたり、歴史ある JavaScript のプロジェクトからモダンな TypeScript のプロジェクトまで大小様々なプロジェクトが存在します。もちろんそれぞれのプロジェクトによって利用しているライブラリや基盤は変わるものですが、変わらないものがあるとすれば、それは Linter とフォーマッターでしょう。

LINE 社内では、言語やフレームワークを問わず ESLint/Prettier は導入されており、社内のフロントエンド開発ガイドラインにも、 Prettier の利用が強く推奨されています。

総じて Prettier は、LINEのあらゆるプロジェクトにおいて欠かせないツールという立ち位置にあると言えるでしょう。そのため、今回 Prettier がより持続的なものとなることは、私達にとっても大きな利益となると判断し、支援に踏み切りました。

支援の詳細について

今回は $3,000 の寄付を行うこととしました。これは現在アクティブなメンテナ2名への、一度への支払い金額に相当します。UIT ではこれまで $100 ドルの継続的な支援を中心に行ってきましたが、OSS の状況として、まとまった金額の一度の支援が重要と考えたためです。

Vue.js や Bootstrap と違い、Prettier は依然として数少ないメンテナのモチベーションに大きく左右される状況であり、安定して持続可能な状況とは言えないと認識しています。その状態においては、我々のような大規模の事業者が適切なタイミングで支援できるという事実が存在することが、メンテナのモチベーション、並びに将来他の事業者が同様のアクションを取るための事例づくりに大きな影響を与えるはずです。

そのため、継続的な支援を検討しつつ、先んじて $3,000 の支援をするにいたりました。

自社での OSS をスポンサリングをすすめるためのポイント

ここまでで OSS へのスポンサリングの意図、ならびに LINE 社内での Prettier への支援の事例を紹介しました。最後に企業での OSS 支援へのモチベーションをもつかたへのポイントもあわせてご紹介します。

OSS へと支援するモチベーションを明確化する

開発者として OSS コミュニティに支援したいという意志を前提としつつも、組織として支援する場合には、十分な理由が必要となります。そのため、何を主眼とおいて支援するかの組織としての方針を事前に検討することをおすすめします。OSS を支援する合理的な理由は、概ね以下のいずれかとなるはずであるため、組織において支援の理由がどれにあたるかを考えておきましょう。

  • OSS が破綻するリスクを最小限に抑える
    • 該当するライブラリやフレームワークが、自社にとって代替不可能なものである場合
    • セキュリティアップデートが行われないなども大きなリスクになる
  • 採用観点での PR を兼ねる
    • 特定の技術に対して自社を印象づけするような方針が固まっている場合
    • 自分たちで技術イベントを計画する・エンジニアブログでナレッジを発信するなどはあるが、より積極的なその技術への投資を印象づけできる
  • 組織内での開発文化・風土の醸造
    • OSSに積極的な企業および開発者の姿勢を目指す場合
    • 自然と OSS に対しての関心が高まるほか、関心の高い開発者が集まりやすい組織作りに貢献する

OSS の支援プランと、そのリターンを事前調査する

OSS への支援を検討する際、事前にプランの一覧と、そのプランごとのリターンは調査しておくと円滑です。

例えば Vue.js の支援を Evan の Patreon 経由で行う場合、以下のような豊富なプランが提供されています。

金額によってはバナーが掲載されることや、その PV などが明確に記されているため、特にブランディング・採用などに重きを置く場合、そのリターンはスポンサー可否を決める重要なファクター。寄付に対して十分な理由付けをするためにも、事前にリサーチしておくことをおすすめします。

メトリクスは定性的に取ることとする

最後に、メトリクスは必ず定性的なものを取ることを推奨します。

先程リターンの面で PV などの定量的な指標を取り上げておいて、真逆の主張となりますが、現実にはブランディングという抽象的な要素が含まれるため、完全に定量的に計測することはできません。そのため組織内の開発者の声や、外部の開発者からの声など、定性的な情報を中心に、その効果が十分であるかを判断することが望ましいでしょう。

定量的な評価だけでは、隠れた効果を見逃したまま、支援が打ち止めになることすらありえます。OSS のスポンサリングの特性を十分に説明した上で、あくまでも定性的な情報を中心にその効果を判断することを前提に置きます。

それほど大きな金額ではないことを理解する

最後に、 $100 程度の寄付であれば、組織としてはそれほど大きな金額ではないと理解して進めることも重要です。

もちろん、個人で毎月 $100 を複数の OSS に支援する。となると尻込みするかもしれませんが、個人と法人ではその予算には大きな差が存在します。

十分な理由付けさえあれば、うまくことも多いはずと考え、重く考えずに提案してみることが重要かもしれません。

おわりに

今回はエンジニアブログではあまり語られない、OSS への支援について紹介しました。

私自身、個人では 2017 年より継続して Nuxt.js への寄付を続けている一方、組織としての寄付を行ったのは昨年 3 月が初めて。初回はある程度コストを感じたものの、一度実績が生まれさえすれば、以降はそれほどコストをかけず支援に踏み切れるという実感を得ています。

この記事を参考に、新たに OSS への支援に踏み切る組織が増えれば幸いです。

UIT 新春 Tech blog記事一覧

  1. Web フォントを使って contenteditable から脱出する
  2. 業務で見つけた! Conditional Types
  3. 業務で役に立つVS Code機能拡張を作ってみた話
  4. フロントエンド開発の業務を支えるちょっと珍しいチームのご紹介
  5. 社内のデザイナーの業務をサポートする LDSG Figma Plugin の工夫したところ、ハマりどころ
  6. 2022年におけるフロントエンド開発のベースライン
  7. Prettier への支援開始のお知らせと企業が OSS に対して支援するということ
  8. 続 LINE 社内用 NPMパッケージの管理戦略