oss活動の活発さと評価の関係について
TRANSCRIPT
OSS活動の活発さと評価の関係
について和田 卓人 (@t_wada)
Feb 16, 2016 @ 日本OSS推進フォーラム
和田 卓人 id: t-wada @t_wada github: twada
Do you write tests?
2016年初頭のOSS風景
http://t-wada.hatenablog.jp/entry/active-oss-development-vs-simplicityいわゆる Social Coding
• 身分制度の変革 • Social Coding 以前の OSS • プロダクトに人が群がる • “コミッター様 vs. 下々のものども”
Social Coding が OSS にもたらしたもの
@a_matsuda
https://speakerdeck.com/a_matsuda/social-coding
• コミッタ階級による アンシャンレジームの崩壊
• 市民革命。人民の直接参加。主権在民。 • コミューン、すなわちコミュニティ • 人民がソースコードを保持する権利を手にするところからコミュニティが始まる
Social Coding 革命
@a_matsuda
https://speakerdeck.com/a_matsuda/social-coding
• More users • More use-cases • More contributions • OSS は公開しただけでは使われない • 継続的な開発とメンテナンスが重要
OSS プロダクトに必要なもの
@tagomoris
http://tagomoris.hatenablog.com/entry/2015/08/23/160337
• オープンな開発チーム • 密室で決まっているような印象を与えないこと
• オープンなコントリビューション手順 • 企業のサポート
OSSコミュニティを作るために
@tagomoris
http://tagomoris.hatenablog.com/entry/2015/08/23/160337
• 常に英語を使う。これが絶対的に大事。
• ロシア語わからん問題 • 英語を使うことは、広くコントリビューションを受け入れますという意思表示
• “日本語で来た issue は即閉じるくらいの勢いで良い”
English! English!
@tagomoris
http://tagomoris.hatenablog.com/entry/2015/08/23/160337
どのあたりを見ますか?
https://github.com/power-assert-js/power-assert
• 我々が見るもの • 最終コミット日付 • バージョン番号 • open な issue や PR の数 • star 数……などなど • ゆえに、積極的に issue や PR を受け入れて活発さを維持する取り組みが必要
継続的な開発とメンテナンス
@tagomoris
http://tagomoris.hatenablog.com/entry/2015/08/23/160337
http://semver.org/lang/ja/
1.4.3semantic versioning
1.4.3major minor patch
semantic versioning
1.4.3major minor patch
semantic versioning
下位互換性のあるバグ修正は patch を上げる
1.4.3major minor patch
semantic versioning
下位互換性のある機能追加は minor を上げる
1.4.3major minor patch
semantic versioning
バグ修正だろうが、機能追加だろうが、 下位互換性が無ければ major を上げる
1.4.3major minor patch
semantic versioning
個人的にはデフォルトの挙動を変えるときに major を上げることが多い
^1.4.3semver は作者と利用者の約束と信頼関係
~1.4.3下位互換性のある機能追加もどんどんダウンロードする
下位互換性のあるバグ修正だけダウンロードする
• 我々が見るもの • 最終コミット日付 • バージョン番号 • open な issue や PR の数 • star 数……などなど • ゆえに、積極的に issue や PR を受け入れて活発さを維持する取り組みが必要
継続的な開発とメンテナンス
@tagomoris
http://tagomoris.hatenablog.com/entry/2015/08/23/160337
http://t-wada.hatenablog.jp/entry/active-oss-development-vs-simplicity
良いソフトウェア設計と両立できるのだろうか?
“それは結果的にソフトウェアの構造をゆがめることにつながらないだろうか。活発さを志向するあまり、機能やコードベースの肥大化を招いてしまい、統一感のある小さく単機能なソフトウェアの姿を保てなくならないだろうか。もし活発さを志向する OSS 開発にそのようなバイアスがかかるのであれば、そこには構造的な問題、不幸な構図があるように見えてしまう”
http://t-wada.hatenablog.jp/entry/active-oss-development-vs-simplicity
“例えば上手く設計できたソフトウェアがあるとして、「これ以上減らすところがなく、実質的に完成していて、手を入れるところもほとんどない」ことによって「開発が活発ではなく、メンテナンスされていない」というイメージを与えてしまい、それが悪い評価につながりかねないのは、不幸なことではないだろうか”
http://t-wada.hatenablog.jp/entry/active-oss-development-vs-simplicity
http://tagomoris.hatenablog.com/entry/2015/08/31/101025
戦略1: 地道な更新
https://twitter.com/tmtms/status/635743856714055680
http://rebuild.fm/106/
https://github.com/power-assert-js/power-assert/commit/7d6552c5
戦略2: 最終コミット以外も
見てもらう
https://twitter.com/kurehajime/status/635041257400569856
https://twitter.com/nazoking/status/635216180886679552
コミット以外にダウンロード数等を見せる試み
戦略3: プラグイン機構
https://twitter.com/kazuho/status/635009225026961408
https://twitter.com/sonots/status/634978258878988288
https://www.gitbook.com/book/azu/javascript-plugin-architecture/details
http://aosabook.org/en/index.html
http://aosabook.org/en/index.html
戦略4: 適者生存の法則
https://twitter.com/Dryad/status/635841558932099072
http://d.hatena.ne.jp/essa/20140330/p1
“しかし、今の業界は、「エコシステム」の時代だ。熱帯雨林のように、食いあいつつ共生しあうさまざなタイプのプレイヤーが、自分の為だけの個別の意思決定をして、その相互作用で技術が発展していく。「エコシステム」は矛盾だらけで、ある技術が発展するのと同時に、そのアンチテーゼとなる技術も伸びる”
“「ロードマップ」が指し示す未来の方向と違う方向に進むことは致命的な間違いだが、「エコシステム」はむしろ中心部がレッドオーシャンで、周辺部に生き残りが容易なブルーオーシャンがある”
http://d.hatena.ne.jp/essa/20140330/p1
“普通の人は「ロードマップ」の中では真ん中を進むべきで、「エコシステム」の中では真ん中を避けるべきだ”
http://d.hatena.ne.jp/essa/20140330/p1
https://www.flickr.com/photos/erh1103/8219419962
https://www.flickr.com/photos/danfromindiana/18259396623/
github はバザールか熱帯雨林か
「社会問題」たち
https://twitter.com/kizmarh/status/553141889541877760
https://github.com/dear-github/dear-github/pull/115
https://twitter.com/kizmarh/status/553141889541877760https://github.com/eslint/eslint/issues/5205
https://github.com/dear-github/dear-github
Code of Conduct
https://bugs.ruby-lang.org/issues/12004
http://contributor-covenant.org/
http://postgresql.nabble.com/WIP-CoC-td5881640.html
https://github.com/domgetter/NCoC
https://www.flickr.com/photos/erh1103/8219419962
https://www.flickr.com/photos/cost3l/12494650935/
『伽藍とバザール』は今日を説明できるか
https://medium.com/@nayafia/what-success-really-looks-like-in-open-source-2dd1facaf91c
• A popular project is a project that is being used by a lot of people, and ideally growing.
• A healthy project is a project where maintainers have an active, reciprocal relationship with their community.
• A supported project is one where maintainers have the resources to manage the popularity of a project and grow a healthy community.
OSSプロジェクト成功の三要素
by @nayafiahttps://medium.com/@nayafia/what-success-really-looks-like-in-open-source-2dd1facaf91c
• github, Social Coding は良くも悪くも本当に「社会」になりつつある
• コードを通じてこの「社会」に関わりましょう
まとめ
https://speakerdeck.com/a_matsuda/social-coding
ご清聴ありがとうございました