ソフトウェアエコシステムの興隆と衰退
ソフトウェアエコシステムがどうやって繁栄するかと、衰退する理由についての考察。
― 1 分で読む
目次
ソフトウェアエコシステムは、特にオープンソースソフトウェアの周りで、一緒に働くプロジェクトのグループだよ。多くの開発者や企業が集まってソフトウェアを改善しようとすると、異なるプロジェクトをつなぐシステムができるんだ。この記事では、これらのエコシステムがどのように存在し、成長し、時には消えていくのかを見ていくよ。
エコシステムが大事な理由
エコシステムは、人々がソフトウェアを作り、改善するために集まるから大事なんだ。エコシステムが生き残るためには、新しい開発者を引き寄せて、今いる人たちの関心を引き続き保たなきゃいけない。そうしないと、活動が鈍ってしまうリスクがあるんだ。
新しい開発者を引き寄せるのは超重要で、プロジェクトが進化したり、課題に対処したりするのに役立つ。誰かがプロジェクトに参加したいと思う理由は色々あるけど、これらの要素は人を動かすものと、環境に分類できるよ。
開発者を引き寄せる方法
開発者を引き寄せるには、マーケティングやアウトリーチが必要だよ。成功しているプロジェクトは、SNSやニュースチャンネルを使って自分たちを知ってもらうんだ。RedditやTwitterでの議論に参加することで、プロジェクトの存在感を高めることができるんだ。
面白いブランディングや最新のトレンドを使うのも、注目を集めるのに役立つよ。プロジェクトはGitHubやGitLabのようなコラボレーションプラットフォームで自分たちの健康状態を示すことで、開発者がどれだけ活発にメンテナンスされているかを見るのが容易になるんだ。
外部のモチベーションも重要な役割を果たすよ。バグ修正で報酬がもらえる賞金制度があったり、特定のプロジェクトを支援する企業からインセンティブを提供されたりすることで、開発者が参加したくなることもあるんだ。
引き寄せへの課題
でも、プロジェクトから開発者を遠ざける要因もあるよ。古くて手入れが行き届いていなかったり、法的なトラブルに直面しているプロジェクトは、貢献者が寄り付かなくなる可能性があるんだ。時には、チーム内での対立や他のプロジェクトとの競争も活動の減少につながることもある。
プロジェクトを生き残らせるためには、こういった課題に対処することが重要だよ。戦略としては、プロジェクトを個人アカウントから組織アカウントに移すことで安定させたり、元のメンテナーが活動していなければ新しいメンテナーを呼び入れたり、新しいアイデアを持ったコア開発者を歓迎することが考えられるね。
エコシステムレベルの力
個々のプロジェクトに焦点を当てた研究が多いけど、エコシステムレベルも重要だよ。イベントは複数のプロジェクトに影響を与えられるんだ。たとえば、広く使われているライブラリが古くなったり削除されたりすると、それに依存している多くのプロジェクトが影響を受けることがある。大きなセキュリティ脅威も、開発者を古いプロジェクトからより安全な代替品に移行させることがあるしね。
管理の変化も波及効果を持つよ。重要な貢献者が去ったり、替えられたりすると、エコシステム全体に大きな影響を与えることがあるんだ。
より良い理解のための研究質問
これらのエコシステムを活気づける方法をもっと知るために、いくつかの重要な質問があるよ:
- 新しい貢献者を引き寄せるためにどんな魅力が一番効果的?
- これらの魅力がさまざまなエコシステムでどれくらい実践されている?
- これらの魅力がエコシステム全体にどんな影響を与える?
ソフトウェアエコシステムの死
生きているシステムと同じように、ソフトウェアエコシステムも死ぬことがあるんだ。プロジェクトが長い間活動しなくなると「死んでいる」と見なされることがある。ユーザーや関心を完全に失った場合もプロジェクトが死んだと定義されることもあるよ。
この文脈での「死」の定義にはいくつかの異なる見方があることを忘れちゃいけない。開発が全く行われていない、または興味のある貢献者が大幅に減少した場合も死んだと見なす人もいるんだ。
死んだエコシステムの調査
現在の研究は、成功したソフトウェアシステムに集中してきたけど、死んだエコシステムを調べることで、活動が鈍る原因について貴重な教訓を学ぶことができるんだ。
研究は、かつて活動していたけど今はinactiveになったエコシステムを特定することから始まる。オンラインでエコシステムを検索して、この説明に当てはまるもののリストを作成するんだ。
次に、このエコシステムがなぜ死んだのかを探るよ。要因には、技術が古くなったり、財政的な問題があったり、法的な課題が含まれるんだ。情報を集めるには、インターネットで詳細を調べたり、さまざまな活動停止の原因を考慮することが必要だよ。
最後に、これらの死んだエコシステムからどんな教訓が得られるかを学びたいんだ。なぜ失敗したのかを分析することで、現在のエコシステムが同じ運命を避けられるような洞察を得ることができるんだ。
死んだエコシステムからの洞察
参加者と話をしたり、オンラインリサーチを行った結果、いくつかの死んだエコシステムが特定されたよ。
Control Versioning System (CVS) はその一例だ。ソースコードの変更を管理するために使われていた人気のバージョン管理システムだけど、最後の更新は2008年で、それ以降ほとんど活動がなかったんだ。
もう一つの例は、Mozillaが作ったモバイルオペレーティングシステムのFirefox OS。競争の激しいモバイル市場で traction を得られなかったため、2016年に開発が停止されたんだ。
Apache Geronimo は、IBMからのサポートを失い、2013年頃に衰退したプロジェクトだ。これはアプリケーションサーバーだったけど、他の技術との競争に直面したんだ。
Maemo はハンドヘルドデバイスのためのプラットフォームで、最終的にはMeeGoという別のプロジェクトに統合されたけど、そっちも消えていった。しかし、これらのシステムの一部は新しい形で続いているんだ。
古いエコシステムからの新しい命
これらのエコシステムが死んだにもかかわらず、多くの新しいプロジェクトが生まれているんだ。たとえば、CVSはinactiveだけど、新しいバージョンのCVSNTがその代わりになって活発に開発されているよ。
Firefox OSの開発が停止した後、そのコードを基にしたいくつかの新しいオペレーティングシステムが現れたんだ。パナソニックなどの企業は、Firefox OSのフレームワークを使って製品を開発し続けているよ。
Apache Geronimoも似たような運命だ。公式なサポートは終わったけれど、そのコンポーネントはさまざまな他のプロジェクトで利用され続けているんだ。
Maemoの場合、コミュニティ主導で新しいシステム、Sailfish OSやNemo Mobileに進化していることが分かる。オリジナルプロジェクトの精神は異なる形で続いているんだね。
将来のエコシステムへの教訓
死んだエコシステムを研究することで、技術は本当に死なないことが分かるよ。個々のプロジェクトやブランドが消えても、コードや知識は他の形で生き続けることができるんだ。これはコミュニティの重要性やオープンソースの世界でプロジェクトをフォークする権利を強調しているんだ。
献身的なコミュニティのサポートがあれば、プロジェクトが死んでいるように見えても、新しい命が吹き込まれることがよくあるんだ。プロジェクトがしっかりした基盤と熱心なユーザーのグループを持っていれば、誰かがそのバトンを引き継いで、ソフトウェアを生かし続ける可能性が高いよ。
さらに、持続可能な技術を促進したい企業は、自社製品の周りにエコシステムを育成することを考えるべきだね。そうすれば、重要なプレイヤーが去っても、少なくともコミュニティの一部がプロジェクトを支え続ける可能性があるから。
結論として、エコシステムは課題に直面したり活動が鈍ったりすることがあるけれど、根底にある技術は新しい形で生き残り、適応し、繁栄する方法を見つけることが多いんだ。生きているエコシステムと死んだエコシステムの両方から得られた教訓は、長続きする強靭な技術システムを構築しようとする開発者や企業、コミュニティにとって貴重な洞察を提供してくれるよ。
タイトル: The Life and Death of Software Ecosystems
概要: Software ecosystems have gained a lot of attention in recent times. Industry and developers gather around technologies and collaborate to their advancement; when the boundaries of such an effort go beyond certain amount of projects, we are witnessing the appearance of Free/Libre and Open Source Software (FLOSS) ecosystems. In this chapter, we explore two aspects that contribute to a healthy ecosystem, related to the attraction (and detraction) and the death of ecosystems. To function and survive, ecosystems need to attract people, get them on-boarded and retain them. In Section One we explore possibilities with provocative research questions for attracting and detracting contributors (and users): the lifeblood of FLOSS ecosystems. Then in the Section Two, we focus on the death of systems, exploring some presumed to be dead systems and their state in the afterlife.
著者: Raula Gaikovina Kula, Gregorio Robles
最終更新: 2023-05-28 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2306.10020
ソースPDF: https://arxiv.org/pdf/2306.10020
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://www.reddit.com
- https://news.ycombinator.com
- https://slashdot.org
- https://stackoverflow.com
- https://www.bountysource.com/
- https://coderseye.com/best-php-frameworks-for-web-developers/
- https://stackoverflow.blog/2018/01/11/brutal-lifecycle-javascript-frameworks/
- https://paypal.github.io/InnerSourceCommons/
- https://www.nongnu.org/cvs/
- https://savannah.nongnu.org/news/?group=cvs
- https://medium.com/@bfrancis/the-story-of-firefox-os-cb5bf796e8fb
- https://geronimo.apache.org/
- https://www-01.ibm.com/common/ssi/rep_ca/1/897/ENUS913-081/ENUS913-081.PDF
- https://maemo.org/intro/
- https://www.march-hare.com/cvspro/
- https://www.kaiostech.com/
- https://tomcat.apache.org/
- https://tomee.apache.org/tomcat-ejb.html
- https://db.apache.org/derby/
- https://arjan-tijms.omnifaces.org/2014/05/implementation-components-used-by.html
- https://www.tizen.org/
- https://www.merproject.org/