オープンソースプロジェクトを商用ソフトウェア、または他のオープンソースプロジェクトと比較する場合、どのような状況で危険信号が発生し、イジェクトボタンを押して他の場所を探すようになりますか?
オープンソース
プロジェクトのウェブサイトを見てください
その際、以下の点をご確認ください...
また、ソフトウェアが配布されているライセンスに注意してください。一部はあなたのニーズに適していないかもしれません。
エンタープライズソフトウェア
ここで言うことはあまりありません...
root
として実行されないであることを確認してください(営業担当者に尋ねないでください-彼はただ嘘をつきます)。 特にTCP/IPポートでリッスンする場合。 *ベンダーの評判を見るroot
アクセスが許可されないため、製品Sudoをサポートする必要があります)をベンダーが認識していることを確認してください。Sudo
がサポートされていないと主張する人は、一般的に老人ですが、彼らはベンダーであり、あなたをサポートしなければならないものになるでしょう-あなたは製品を購入したくなくて、後で彼らに「いいえ、Sudoを使うことはできません、あなたは根を下ろさなければなりません」と言わせます。アクティビティの欠如。プロジェクトが新しいコードをリリースしていない場合は、クローズされていないバグ(または非常に古いバグで新しいバグがない)を多数表示するか、スパムが非常に多いユーザーフォーラムを作成します-投稿比率、それは衰退するコードベースの確かな匂いです。アクティブなプロジェクトには定期的なリリースがあり、開いた新しいプロジェクトが閉じた古いプロジェクトを上回っていないことを示すバグチャーン、および毎日のアクティビティを伴うユーザーフォーラムがあります。これらの3つはすべて、コードを存続させるために不可欠です。リリース、フィードバック、デバッグ/リファクタリング、完全なループの形成です。
アクティビティはコードベースのサイズ、複雑さ、成熟度に比例します。プログラム/プロジェクトが大きいほど、ポイントリリースの頻度は低くなりますが、ポイントリリースの一貫したストリームが必要です。大規模で複雑なコードベースを持つSambaのようなプロジェクトの場合、1か月ほど後にポイントリリースが期待されます。より保守的な設計目標を持つ成熟したコードベースであるgccのようなプロジェクトの場合、ポイントリリースは中間に長くなりますが、大きくなります。非常に少量のコードで動きの速いターゲットも潜在的な問題を示しています-開発者がまだバグと戦っている、またはすべての目標/機能がまだコード化されていない可能性があります。
ソースコードはすぐにアクセスできる必要があります。trueオープンソースの場合は空白にしてください。ソースコードを表示するために必要な魔法のハンドシェイク、ブードゥーの提供、またはキャンドルライトの呪文であってはなりません。 CVS、SVN、Git、Mercurial、さらには伝書鳩からアクセスできるかどうかは関係ありませんクリックラップライセンス契約なしでアクセスできる場合に限ります。あなたは免除、NDAに署名するか、または前代未聞のライセンススキームに同意します。あなたはオープンソースを扱っていません。あなたは彼らのソースをあなたに公開することに同意した商用ベンダーを扱っています-価格で。
本当にたくさんあります。
欺瞞的なライセンス-あまりにも多くの解決策が私を死に至らしめようとしています。パッケージの価格はXですが、アドバタイズされたオプション1、2、および3が必要な場合は、オプションごとに500〜1500ドル多くなります。いいえ、結構です。
誰もそれを使用しません-または少なくとも、Googleはそれについて話している人を見つけることができません。それは真新しい(この場合、あなたはモルモットです)か、誰もがよく知っているほど悪いです
これはいくつかのフォークのルートです-何かが何度もフォークされた場合、おそらくそれには正当な理由があり、フォークの1つがソースよりも問題を解決した可能性があります。代わりにそれらを調査してください。
一貫して悪いインターフェースデザイン-私は単にGUIを意味するのではありません。クレイジー、未確認、または誤ったラベルのCLIフラグまたはオプションは、私を狂気に駆り立てます
機能しません-または、解決する必要のある状況が存在すべきではない(または存在しない)ふりをしているため、対処していません
私は主に成熟度と活動に注目します。それが適度に成熟しているように見え、かなりの量のアクティビティ(たとえば、フォーラムまたはwikiアクティビティ)があるように見える場合、私はかなり快適に感じることができます。そうすれば、バグが解決される可能性が高く、発生した問題について支援を得ることができることを私は知っています。完全に一致しているように見えるが、どの曜日でも死んでいるように見えるプロジェクトよりも、自分のニーズに完全には一致しないアクティブなプロジェクトを選択します。
成熟度に関しては、使用目的によって大きく異なります。それが私がすぐに展開する必要があり、失敗したりトラブルを引き起こしたりすることが許されないものである場合、成熟度は明らかにかなり重要な要素になります。いくつかの癖を抱えて生きることができ、ダウンタイムが発生しても問題がない場合は、将来の見通しを検討したいと思います。
また、コードの解約率は一貫しており、少数ではなく多くの人々によって行われていることも付け加えておきます。ある人が自分のプロジェクトに興奮して飽きて、コミュニティが引き続きサポートできるようにコードをパートタイムで作成することは望ましくありません。 DrupalとJoomlaは2つの良い例です。
あなたがあなたの会社のためのソフトウェアを見ているならば、それを売る、それを変えるなど。最も重要な側面はライセンスです。 WLANルーターにbusyboxが含まれていることを確認し、法的措置に従うと、企業は「オープンソース=好きなことをする」と考えています。
他のいくつかのこと:私はまた、最終更新日とアクティブなコミュニティを探しています。フォーラム、おそらくソフトウェアをトピックとして持つ他のページです。
Linuxでは、ディストリビューションによってどのソフトウェアがパックされているかを確認します。パッケージ化されたソフトウェアは、オープンソース/ GPLだけに限定されません。Ubuntu、Gentoo、SLESは、少なくともパッケージリストに独自のソフトウェアを含めています。これらのパッケージがディストリビューションのコアソフトウェアと同じくらい効果的に機能するという保証はありませんが、誰かがパッケージを準備するために時間と労力を費やしました。