私はソフトウェア開発者として、クローズド ソース ソフトウェアを使用する大企業が支配するプロプライエタリな世界で生まれました。私のキャリアが成長するにつれて、インターネットはますます存在するようになり、私はますます多くのオープンソース ソフトウェアに触れました。
ほとんどのライブラリを振り返ってみると、アプリケーション レベルのコードや雇用主のために作成したユーティリティについて話しているわけではありません。直接的に競争上の優位性をもたらしたものはほとんどなく、知的財産と見なされるものを本質的に表していたものはさらに少なくなりました。これらのライブラリ、フレームワーク、およびユーティリティの多くは、オープン ソースの同等物を備えています。私自身や一緒に仕事をしている開発者にとって、そのようなコードの実装に着手する前に、まず既存のライブラリを探すのが一般的です。
それくらいすでに変わっています。それらのライブラリの多くは、メンテナンスの欠如のためにオープン ソースとして衰退した可能性があります。それらが繁栄するか、少なくとも提出物を引き付けた場合、それらの雇用主は恩恵を受けていたでしょう-それは私の現在の雇用主で起こっています.
今、私たちの前にあるものを見て、私たちが書くライブラリとフレームワークの大部分について、それらがオープンソースになるという前提でそれらを作成する必要があると考え始めています. ライブラリ、ユーティリティ、およびフレームワークの場合、これは、それらが閉じられ、その後、それらを開くために作業する必要があるという仮定ではなく、基本的なケースであるべきです - それはしばしば、事後にはるかに多くの作業が必要になることが判明しました. (承認を得て、レビューとクリーンアップを実行します)。
基本ケースがオープンソースであるため、次の利点があると思います。
- 開発者は、コードが同僚や将来の雇用主に見えるようになることを知っているため、文書化、テスト、および設計についてより規律を守り、コード自体をより良くするでしょう. 世界があなたのコードを見ることができるようになることを知っているだけで、あなたが喜んでカットするコーナーが変わる可能性があります. これは、開発を後援する組織に利益をもたらすはずです。
- 個々の開発者は、すべてのプロジェクトで活用するためのより大きなライブラリと再利用可能なコードを持つことになりますが、これはスポンサー組織よりも個々の開発者にとってメリットがあります。
- 組織は、開発コストをより効果的に分散するでしょう。これは、そもそもオープン ソースの主要な前提ですが、オープンが基本ケースである場合、それははるかに広範囲に及ぶでしょう。
- 現在、特定の種類の開発者を組織に引き付けています
- 保証するものではありませんが、将来の開発者が、会社が実際に使用しているツールやソース コードに精通している状態で面接プロセスに入ることができるようになります。
これは、少なくともライブラリとフレームワークのレベルではトレンドのように感じます。私の意見では、アプリケーション レベルではそうではありません。これは多様なコミュニティですが、あなたの意見は何ですか?