# OSS-RISK-8 未成熟なソフトウェア (Immature Software)

**説明:**

オープンソースプロジェクトは開発のベストプラクティスを適用していない可能性があります。たとえば、標準的なバージョニングスキームを使用していない、回帰テストスイート、開発やレビューのガイドライン、ドキュメントがないなどです。その結果、コンポーネントは信頼性や安全性が (悪用可能な脆弱性をもたらすセキュリティ上の弱点があるという意味で) 機能しない可能性があります。

未成熟なコンポーネントやプロジェクトへの依存には運用上のリスクが伴います。依存するソフトウェアが期待通りに動作せず、実行時の信頼性に問題が生じたり、依存するソフトウェア開発組織にとってその使用が過度に複雑で高価になるかもしれません。

たとえば、コンポーネントやプロジェクトにドキュメントがなかったり、確立されたバージョニングスキームを使用していなかったり遵守していなかったり (コンポーネントアップデート中に重大な変更が生じる可能性があります)、プルリクエストやマージリクエストを通じて導入されたリグレッションを発見するためのテストスイートがないかもしれません。そのような場合、そのようなコンポーネントに依存している開発者の労力が増大する可能性があります。

**事例:**

* なし

**対応:**

1.  品質指標および、プロジェクトがベストプラクティスに従っているかどうかをチェックします。

    指標の例:

    * プロジェクトにはテストコードが含まれています。
    * コードカバレッジバッジの表示は、リポジトリが開発プロセスでコードカバレッジツールを使用していることを意味します。
    * リポジトリには理解しやすく使いやすいドキュメントが含まれています。
    * リポジトリは CI を使用しており、コミットの大部分が CI チェックに合格しています。これはコード品質が良いことを示しています。
    * リポジトリにバイナリファイルが含まれていると、その機能やリスクを分析して評価することが難しくなります。
2. プロジェクトの成熟度をチェックするための代用として、ダウンストリームの依存の数とすることもできます。

**参照:**

1. [OpenSSF Best Practices Badge Program](https://www.bestpractices.dev/en)
