10
2

More than 1 year has passed since last update.

エンジニアはオープンネスを好むのか? - OSS理想論

Last updated at Posted at 2021-10-17

OPENNESS」オープンネス、とは開放性とか開示性のこと、で、結論から書くと「エンジニアだからオープンネスを選択するとは別に限らない」と思っている。単にそれは経営方針の違い。オープンかそうでないかと言えば例えばSlack論を以下参考。

Slack社のSlackガイドラインへのコメントとしては、じつは以下らしい。

「Slackの使い方は1000社あれば1000通り。プロジェクトをまわす、会議をする、といった基本的な使い方はもちろん、Twitter的な使い方もできる」。

オープンネス と 生産性 が単純に、完全に比例するかはまた別の議論かもしれない、とも書いた。
「混乱しないように」「話をまとめてから」みたいな善意が背景にあって何故かクローズドにする向きもあるみたい。

しかしオープンにすることのメリットをOSSから紐解いてみる

一方OSSに関する記事を読んだ。「オープンソースは未来か?」との話。以下その要点。(DeepL翻訳を利用しての整形です。)

「オープンソースは未来か?」

  • オープンソースの始まりは60年代後半から70年代前半にかけて。当時まだオープンソースという概念がなく、パッケージソフトが大流行していた。 専売ソフトウェアとフリーソフトウェアを規定する法律がなかった。ただたくさんのお金を稼ぐためのものと考えられていた。
  • 当時作られたソフトウェアは不安定なものが多かった。一方徐々に、愛好家たちはミーティングを開き、楽しみながらコードを書き始めた。愛好家は自分のコードを技術雑誌に掲載し、誰もがそのコードをコピーして自分のシステムで実行できるようにしていた。

オープンソースの始まり

  • より複雑なOSやソフトウェアが登場すると、誰もが自分のコードを企業や消費者に直接販売するようになった。
  • マイクロソフトは、当時よりIBMなどのハードウェア会社向けにOSなどのソフトウェアを作っていた。独占状態が続くことでマイクロソフト社は巨万の富を得た。
  • 一方消費者はソフトウェアを購入する際に何を得て、何を得ないかを選択することができなかったため、不満を抱いた。そんな中Linuxの創始者であるリーナス・トーバルズ氏や、Netscape社はNetscape Navigatorをオープンソース化するなどで支持を得た。後にGoogle Chromeが開発されているオープンソースのChromiumプラットフォーム上でMicrosoft edgeをリメイクしたのは画期的な話。

オープンソース・ムーブメントとは?

  • オープンソースとは何か。オープンソースとは、ソースコードや設計書、コンテンツなどの使用許諾を含む製品のこと。一般的には、オープンソースやその他の製品をオープンソースモデルで公開すること。
  • オープンソース・ムーブメントは、OSSの概念を広めるために始まった。OSSの理念を支持する開発者/プログラマーは、ソフトウェア開発のためのプログラミングコードを自発的に書き、交換することで、オープンソースコミュニティに貢献する。
  • オープンソースという言葉には、OSSのコードを入手したり編集したりする際に、いかなる団体や個人も差別してはならないという意味が込められていた。誰もがオープンソースのコードを入手し、修正することができる。修正されたコードは、そのソフトウェアを扱うオープンソース・コミュニティ内の開発者に配布される。コードの修正に参加したすべての人の身元が開示され、コードの変更が時間の経過とともに文書化される。
  • これは、高品質なプログラムを作成するとともに、志を同じくする人たちと協力してオープンソース技術を向上させることを目的としている。

なぜオープンソースは専売よりも優れるのか?

  • すべての主要なOSSは、専売ソフトウェアと同等かそれ以上に動作する。あるいはOSSが専売ソフトウェアを凌駕するケースもある。例えば、Google ChromeとInternet Explorer。ChromeはオープンソースのChromiumブラウザをベースに開発されており、あらゆる面でInternet Explorerを凌駕した。プログラマーや開発者のほとんどは、システムを初めて使うときにInternet Explorerを使ってChromeをダウンロードするわけだ。

OSSが専売ソフトウェアを凌駕する理由

  • OSSは、専売ソフトウェアでは提供できないレベルのカスタマイズ性をエンドユーザーに提供する。
  • カスタマイズは、ユーザー自身が行うこともできるし、コミュニティに属する他の人の技術を利用することもできる。OSSは、ソフトウェアが使用しているライセンスに記載されている条件を遵守する限り、自由に使用および変更することができる。
  • 専売ソフトウェアでは、そのソフトウェアの親会社が許可したカスタマイズに限られる。あるいはまずソフトウェアの購入に多額の費用がかかり、さらにソースコードが提供されない。
  • OSSが世界の発展に寄与することを目指しているのは、お金のためではなく、人助けの精神に基づくから。
  • OSSは圧倒的多数のコントリビューターに支えられ、機能性とスピードの両面で成長することができ、また世界の基準に沿ったセキュリティをユーザーに提供することができる。
  • 専売ソフトウェアの開発者は、指定されたチームでソフトウェアに取り組む。ある意味ではOSSよりも組織化されているが、作り手の自由という要素はない。規格に準拠するようにソフトウェアの作業をする。
  • OSSでは、初心者も経験者も区別なく、それぞれの知識レベルに応じてプロジェクトに貢献することができる。

OSSは世界にどのような影響を与えているのか、またその将来性は?

  • OSSは、ソフトウェア業界を良い方向に変えた。今では、ユーザーを搾取したり独占したりするようなソフトウェアはほとんどない。同等の機能を持ち、ユーザーに一切の負担をかけないオープンソースプログラムが存在するからである。今後、より多くのユーザーや開発者がさまざまなOSSを知るようになれば、より多くの開発者が何か大きなものを開発することで、未来に大きな影響を与えることができるかもしれない。

開発者が個人的にスキルアップするのにも最適

  • プロジェクトに参加している経験豊富な開発者から、新しい技術や問題解決のための効率的な方法を学ぶことができる。
  • 自分で開発したOSSを公開すれば、専門家の目に留まり、貢献に興味を持ってもらえるかもしれない。これにより、自分のソフトウェアの人気が高まり、様々な開発者の間で知名度が上がるかもしれない。
  • 少なくともコーディングの面では、自分と同じ目標や考え方を持ったコミュニティという大きなものの一部になれる。
  • OSSのユーザー数が増えれば増えるほど、OSSは他のソフトウェアよりも優位に立つ。
  • ユーザーや開発者の数が増えれば、機能やセキュリティ対策の数も増える。
  • たくさんの開発者がソフトウェアを開発すれば、頻繁にアップデートを行うことができる。
  • ソフトウェアのバグの数を大幅に減らすことができる。
  • ソフトウェアのセキュリティを常に強化することができる。
  • そして誰もが無料でこれを手に入れることができる。

市場に競争相手がいなければ、ソフトウェアは陳腐化し、同じ機能の同じものを何年も使い続けることになり、ソフトウェアを交換する選択肢がなくなる。だから「オープンソースは未来」であり、OSSには大きな可能性がある。そういうことだ。

まとめ

  • オープン = 正直である。
  • 正直であれば、能力のある自立した人が自然とたくさん集まる。有名になる。
  • 人が集まれば競い合える。
  • 切磋琢磨できる。
  • だけでなく助け合える。
  • 皆が等しく知恵を絞れる。

結果良いものになる。 ChromeとIEの例はわかりやすかった。
冒頭に書いた「混乱しないように」「話をまとめてから」みたいな一方通行な善意と戦うには、「とはいえ全部が全部オープンにされていたほうがむしろ整合性を気にする必要がなくなって混乱しないですよ!」なはずと私も思う。本来は。

また情報の透明性に関わる記事をもう2つ3つほど。

全社員がリモートワークで働くGitLabが今日、米NASDAQ市場に上場。時価総額は約1兆2000億円に - Publickey
「知識は書面にすること、知る必要があるときに教えるよりも情報公開をすることで、いつでも非同期なコミュニケーションで必要な知識を得られるようにする」
全社員フルリモートで1兆2000億円で上場したGitLabに学ぶリモートワークの心得え - Qiita
なぜ組織の透明性が大切なのか - 30歳からのプログラミング

  • モチベーションが上がる。
  • 判断の精度が上がる。
  • 主体性を発揮できる。
  • 当事者意識が養われ組織の有機的結合が進む。

と言う。情報をオープンにする会社は、根っこには「社会に全てを還元して切磋琢磨して成長したい、そういう人に集まって欲しい」という意識があるという理解。それはエンジニア、開発者にとっては尽きないモチベーションであり、だからオープンな会社が魅力的にうつると思いたい。

チームのメンバーが自立していればいるほど正直でいないとすぐ不信につながるし尊敬も信頼感も少なくなっていく。嘘をつかないで良い。矛盾を作らない。お互いを信頼できる。協力できる。つまり良いチームになれるところ。たくさんメリットがある。

もちろんその貢献には

目に見える感謝や報酬を送りたい。「エンジニアの優しさ」だけがそのオープンネスの良さを支えているなら、それを裏切らない仕組みが欲しい。

(引用) BoltDBの作者である私は、サードパーティのパッチを受け入れてメンテナンスすることが、私の燃え尽き症候群の原因になっていることに気づき、最終的にプロジェクトをアーカイブ化しました。...小さな貢献でも、適切にテストして検証するために何時間もの時間を必要としました。

私は、コミュニティへの参加、バグレポート、機能リクエストに感謝しています。しかし、私自身の精神的な健康とプロジェクトの長期的な存続のために、このプロジェクトをクローズドにして、コントリビューションを行うことにしました。

Log4j 2はオープンソースソフトウェアなんだから「問題を見つけたらあなたが直せ」?:こうしす! こちら京姫鉄道 広報部システム課 @IT支線(31) - @IT

OSSも発展の後に、いやいやそうは言っても感謝だけじゃお腹は膨れなくて...となる。どう感じるものでしょうか。参考になればさいわいです。

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2