政府機関の建物の柱

コード・ガバナンスとは

コード・ガバナンスの説明

コード・ガバナンスとは、ソフトウェア開発に関する組織の一連のルールと監視メカニズムです。これは、組織がコードの記述、レビュー、テスト、保護、承認、維持の方法を管理するために使用するポリシー、プロセス、およびツールで構成されます。

コード・ガバナンスは、手動プロセスの集合から、自動化されたポリシー主導の実践へと進化しました。これは主に、大規模で複雑なコードベースには、規模と洗練さを拡張できるガバナンス・フレームワークが必要であるためです。

2010年代のDevOps革命は、手動承認と中央集権的な管理に依存するガバナンスモデルに挑戦状を突きつけました。現在では自動化システムがプロセスを強制し、「シフト・レフト」の概念により、セキュリティーやコンプライアンス活動はソフトウェア開発ライフサイクル(SDLC)の早期段階に進められています。

生成AIの登場は、まったく新しいガバナンスの層を導入しました。開発者は大規模言語モデル(LLM)を活用した機械学習ツールを使って大量のコードを生成できるようになり、開発速度を劇的に向上させています。しかし、コード・ガバナンスは、AIが生成したアウトプットのコード品質、および関連するセキュリティー・リスク、IPに関する懸念、モデル使用ポリシーなどに対処するために進化する必要がありました。

組織は現在、AI生成のコードをいつ使用できるか、どのようにレビューが必要か、デプロイメント前にどのような検証手順が必要かを規定するガバナンス・ポリシーを実装しています。

コード・ガバナンスの構成要素

以下は、コード・ガバナンスの最も一般的なコンポーネントの一部です。

コーディング標準

質の低いコードは技術的負債に寄与し、それが技術スタックの拡張性を損ないます。コーディング基準は、これを防ぐために開発者がコードをどのように記述し、整理するべきかを定義します。これらの標準は、命名規則、フォーマット、ドキュメンテーション、ファイル構造、言語固有のベスト・プラクティスなどの領域をカバーしています。大規模なコードベースでは時間の経過とともに増大する小さな問題に直面しています

すべての開発者が同じ基準に従うことで、コードの作業が容易になります。エンジニアは、互いの作業に費やす時間を減らし、新しいものを生み出す時間をより多く確保できるようになります。

バージョン管理

バージョン管理システムは、チームがソースコードに対する変更を管理する方法を定義します。これらのポリシーは、ブランチの作成、コードのマージ、コミット・メッセージの作成のためのワークフローを定義します。バージョン管理システムは、偶発的な上書きを防ぐための監査証跡を生成し、変更の明確な履歴を確保するのに役立ちます。チームは、誰が特定の変更を行ったか、そしてその変更理由を把握できます。

コード・レビュー

コードレビュープロセスでは、ソフトウェアの変更が統合される前に他の開発者が検証する必要があります。レビューには、バグの特定、設計上の意思決定の検証、チーム全体での知識の共有など、さまざまな目的があります。適切に実行されたレビューは、より高品質のソフトウェアにつながります。

セキュリティー

セキュリティー・ガバナンスは、ソフトウェアが確立されたセキュリティー要件やコンプライアンスルールに従って開発・維持されることを保証し、その開発がより広範なリスク管理戦略に準拠していることを保証します。これには、セキュリティー脆弱性スキャン、アクセス制御、依存関係管理、秘密検出安全なコーディングガイドライン、定期的なレビューなどの実践が含まれます。セキュリティー・ガバナンスは、開発ライフサイクルの結論だけでなく、開発ライフサイクル全体にわたって保護対策を統合します。

テスト

ガバナンスをテストすることで、ソフトウェアがデプロイ前に確立されたすべての基準を満たしていることを確認できます。しかし、テストも「シフト・レフト」しています。テスト要件をCI/CDパイプラインに埋め込みすることで、チームは欠陥を早期に特定し、本番環境に回帰を導入するリスクを減らすことができます。

コンプライアンス

コンプライアンスと監査可能性は、ソフトウェアとその開発プロセスが規制要件に準拠していることを確認することに重点を置いています。文書化された承認、変更履歴、テスト記録は、コードに関連するより一般的なコンプライアンス対策の一部です。

導入

継続的統合/継続的デリバリー(CI/CD)制御は、ソフトウェアをデプロイに使用される自動化プロセスを管理します。これらのコントロールは、コードが環境間を移動する前に、どの自動チェックに合格しなければならないかを定義します。CI/CDガバナンスは、デプロイメント全体のリスク軽減を促進しながら、本番環境に到達するソフトウェアが事前に定義された標準を満たしていることを保証するのに役立ちます。

AI Academy

AIの専門家になる

ビジネスの成長を促進するAIへの投資を優先できるように知識を習得します。今すぐ無料のAI Academyを試して、貴社のAIの未来をリードしましょう。

ガバナンス、政策、そしてコード型インフラストラクチャー

ガバナンスとしてのコード(GaC)とポリシーとしてのコード(PaC)は、ポリシー、ルール、標準を機械可読コードに変換することで、ガバナンスとポリシーの適用をワークフローに直接組み込むアプローチです。目標は、すべてのデプロイメント、インフラストラクチャーの変更、またはデータ・アクセスの要求が、発生する前に事前定義された基準を満たすことです。この積極的な適用アプローチは、ポリシーエンジン、クラウド、そして現在ではAIエージェントといったテクノロジーに依存しています。

ポリシー適用は、組織がガバナンス・ポリシーをプログラムで定義し、適用できるようにするOpen Policy Agent(OPA)などのテクノロジーを通じてさらに高度化しました。ドキュメンテーションや手動の承認に頼るのではなく、ガバナンス要件はコードに組み込まれているため、SDLC全体に自動的に適用できます。

同様に、コード型インフラストラクチャー(IaC)やTerraformのようなツールは、宣言的言語アプローチを用いてITインフラのプロビジョニングと管理を自動化し、開発者がそれを達成するために必要なステップではなく望ましい最終状態を指定します。インフラストラクチャー定義は通常、YAMLやJSONなどの形式で表現されるため、自動化や検証が容易です。

AI搭載コーディング環境では、GaC、PaC、Iacを実行できます。例えばIBM Bobは、このようなプロセスをSDLCに組み込むために使えます。

執筆者

Cole Stryker

Staff Editor, AI Models

IBM Think

関連ソリューション
IBM Bob

安全で趣旨に添った開発を支援するAIパートナーのBobを活用して、ソフトウェア・デリバリーを加速させましょう。

IBM Bobはこちら
AIコーディング・ソリューション

信頼性の高いAI駆動型ツールを活用することで、コード作成、デバッグ、リファクタリング、コード補完に費やす時間を最小限に抑え、イノベーションに集中できる余地を広げます。

AIコーディング・ソリューションはこちら
AIコンサルティングとサービス

AIの導入によって重要なワークフローと業務を再構築し、エクスペリエンスとビジネス価値の最大化とリアルタイムの意思決定の最適化を達成します。

AIコンサルティング・サービスはこちら
次のステップ

生成AIと高度な自動化を活用して、企業向けのコードをより迅速に作成Bobモデルは開発者のスキルセットを強化し、開発とモダナイゼーションの取り組みを簡素化、自動化します。

  1. IBM Bobの詳細
  2. AIコーディング・ソリューションはこちら