このサイト上でサポートされる主要なオープンソースの「ベストプラクティス」

ソフトウェアエンジニアリングのプラクティスは、すべての大きな開発プロジェクトの鍵となります。このサイトは、ホストされる開発ツールと統合されたオープンソースまたはコラボレーションソフトウェアプロジェクトを管理するための場を提供して、オープンソースコミュニティにおいて検証された「ベストプラクティス」を採用するプロジェクトチームの促進を図るサイトです。

技術的なコミュニケーション

ソフトウェア開発者は、大部分の時間を相互のコミュニケーションに費やしています。チームの同期を維持し、また、鍵となる知識を有する個々の開発者が、その知識を必要とされている所で利用できるようにするためには、明確で有効的な技術的なコミュニケーションが必要とされます。

技術的なコミュニケーションは公開フォーラムで行われるべきであるというのが、オープンソースコミュニティの1つの主義です。メーリングリストはオープンソースのコミュニケーションの土台となります。それ以上に、オープンソースプロジェクトは、技術的な詳細の正確なコミュニケーションおよびグループの意思決定を行なうためのサポートを必要としています。

バージョン管理、ドキュメント管理、および配布

すべてのソフトウェア開発プロジェクトは、バージョン管理を必要としています。オープンソースプロジェクトは、多くの同時並行的な開発者が作業する、部分的に重複する場合もあるファイルセットに対して、強力かつ柔軟なサポートを必要としています。

入念に組織化されたプロジェクトは、これらのドキュメントの配布を容易にしています。しかし、オープンソースプロジェクトの性質上、これらのファイルが地球規模でアクセス可能でありながら、運用管理の諸経費は最小化し、また責任は、開発コミュニティのメンバーに分散されることが要求されます。

品質保証

オープンソースのソフトウェア製品は驚くほど高品質なものとなっています。これは、ソースが非公開であるソフトウェア開発の世界において最も困難で費用のかかる1面であると認められててきたことです。

オープンソースソフトウェアは以下の 3 つの主な理由により高品質なものとなります。

  1. 開発者が、アプリケーション領域の開発者の関心および知識によって自主的に選択される。
  2. 要件が、ソフトウェアのユーザ自身でもある開発者によって暗黙のうちに理解される。
  3. 技術的なコミュニケーション(バグ報告を含む)が公開で行なわれる。オープンソースの公開性により、開発者は自分の成功にプライドをもち、不完全なコードをリリースする前に熟慮するようになる。

さらに、デバッグ作業は、多様な知識を有する多くの人々に分配された場合に非常に有効になります。

組込みおよびテスト管理

オープンソースプロジェクトにおける開発作業は、多くの開発者間で同時並行的に絶えず続けられます。時々、1人の開発者によってなされた変更が、別の開発者によってなされた変更とコンフリクトを起こしてしまいます。

通常、オープンソースコミュニティで用いられるバージョン管理の手法により、これらのコンフリクト問題は解決しますが、時には解決できないこともあります。開発中のソフトウェアを頻繁に自動でビルドし、テストを行うことにより、論理的なコンフリクトを初期に把握するのに役立ちます。

プロジェクト管理

すべてのプロジェクトは、明確な目標、リソース、スケジュールを必要とします。オープンソースコミュニティは、すばらしい柔軟な方法でこれらの課題に取り組んできました。共有の「Todo」リストは、実施する必要のあるタスクの追跡を行います。個人の「Todo」リストは開発者を追跡します。マイルストーンリストは、ユーザおよび開発者からのフィードバックに基づいて個々の主要ポイントの期日を柔軟に設定します。

知識管理

経験豊富な開発者には、初心者にはない貴重な知識というリソースがあります。知識の有効な共有は、オープンソースコミュニティの成功の鍵です。明確に知識を管理することにより、経験の少ない開発者の学習曲線が縮小され、これによって、潜在的な戦力に加わるための障壁が低くなると同時に、自動的に、他の開発者に施すトレーニングが最小となり、経験豊富な開発者にかかる負荷が小さくなります。