「コミュニケーションコストを下げる」という視点でのソフトウェア開発の進化
前々から思っていることをメモ書きとして。
ソフトウェア開発において、様々なトピックはあるものの「コミュニケーションコストを下げる」という点が重要なポイントだったのだろうなぁ、などと考えています。
インターネット
このプラットフォームは物理的に同一の場所に居ない開発者間でのコミュニケーションコストをグッと下げました。地理的な問題やタイムゾーンやらもある程度緩和してくれます。これがなかったら次のOSSなんてものは隆盛を誇ることはなかったわけです。
OSS
特に企業でソースコードを取り扱う際のリーガル関連コミュニケーションコストを大幅に下げました。OSSはOSDという制約(もともとDebianフリーソフトウェアガイドラインが元ネタ)を定めて、そこをクリアするライセンスを洗い出すことで、個々のライセンスの「落とし穴」的なものがあぶり出されて、たやすく扱えるようになった、と思います。
端的に言うと、「このソースコードを利用していいかどうか、法務部門に諮って確認を行う」のようなクッソ面倒臭い作業を、適切なリスクの範囲内で大幅にすっ飛ばせるようになったわけですな。
もう一つは著作権法の専門家でもないソフトウェア開発者が「こいつのライセンス、何にしよう?」となった時にパッと典型的な適用ライセンスを思いついて適用することや、他のソフトウェアと混ぜる時にOSSライセンス名で会話できるようになったりというのもあります。
<宣伝>(この辺りは2014年に「角川インターネット講座2 ネットを支えるオープンソース」という書籍に「ライセンスというプロトコル」という章を寄稿しているので図書館とかでも見てやって下さい。中古本だと安いっぽいので、そっちでもどうぞ)</宣伝>
GitHub
OSS の開発スタイルの標準化によって、コミュニケーションコストを大幅に下げました。
それまでSourceForgeのような開発用ホスティングサイトはあったものの、「変更をコミットする、あるいはリリースするまでのお作法」が個々のプロジェクトごとに存在し、それを理解する必要があったのに対し、Pull Requestという形で「とりあえず変更点と意図を気軽にぶっこむ」ことができるようになったのが大きい(なお、単純なGitホスティングであればrepo.or.czのようなものがあったので「Gitだからー」というだけの話ではない。無論、Gitの存在あってのGitHubではあります)。
機械学習 ←イマココ
今現在進行中の出来事として、バグ出しやセキュリティ問題の洗い出しとその修正提案で機械学習が活用され始めているように思う。これがGitHubのような巨大なプラットフォームに乗っかる形で皆が利用できるようになってきていて、「人手を介さない」うえに「統一されたスタイルで作業が進められる」ことでコミュニケーションコストを考えなくて良い形になっている。
じゃぁ、次は?
…それが分かってたら一旗揚げてますがな(どっとはらい)。
Discussion