GitLabサブスクリプションのメリットをフル活用するには、効果的な組織設定が欠かせません。このガイドでは、グループ、サブグループ、プロジェクト構造を設定することで、GitLabの使いやすさを向上させる方法をわかりやすく説明します。
グループ、サブグループ、プロジェクトの構造を理解する
グループとプロジェクトは、組織階層をモデル化し、高度な権限管理と「チームの集合体」を活用した計画を可能にします。グループとサブグループは、戦略的な計画立案に利用され、その設定が下位階層のサブグループやプロジェクトに引き継がれるよう構成管理を行えます。
この他にも、バリューストリームをモデル化して、組織全体のプロジェクト管理やコラボレーションを強化することも可能です。
-
プロジェクトレベル(チームレベル)
- プロジェクトは、グループやサブグループに属しており、実際の作業はここで行われます。ここにはリポジトリがあり、プロジェクト固有の設定が管理できます。このレベルでは、日々の作業や詳しいプロジェクトの進捗を確認できます。
- 効果的にプロジェクトを設定することで、データを明確に整理し、報告や分析を正確に行うことができます。
-
サブグループレベル(チームの集合体)
- サブグループでは、より細かい権限管理が可能です。特定のチームやプロジェクトのニーズに合わせてカスタマイズできるため、組織全体で一貫したワークフローを実現できます。
- サブグループは、アジャイルにおける「チームの集合体」と同じように、関連するプロジェクトの集合体として機能します。
- このレベルは、共通の製品やサービスに取り組む複数のチームを管理する際に効果的です。これにより、複数のプロジェクト間で可視化と連携が容易になり、チーム間の同期が取れるようになるため、相互依存関係や目標の共有が可能になります。
-
グループレベル(「チームの集合体」の集合体)
- グループはGitLab内の組織の柱のようなもので、そこでは幅広い権限とアクセスを管理することができます。
- 最上位のレベルであるグループは、複数のサブグループが含まれます。アジャイルにおける『「チームの集合体」の集合体』のような、プロジェクト管理の戦略的な階層を表します。
- このレベルでは、包括的な目標と戦略を設定し、プロジェクトやサブグループにリソースを割り当てることで、組織の全体的なビジネス目標との整合性を確保します。
GitLabを使って組織を構造化することで、選択したアジャイル手法を並行して実行でき、プロジェクト全体に自然にアジャイルの原則を適用できます。この構造により、明確なコミュニケーションライン、効率的なリソース管理、戦略的な連携が促進され、アジャイル手法特有の柔軟性や対応力が維持されます。
GitLabアジャイルプランニングに関するニュースやインサイトはこちらから。
GitLabの継承モデルを活用する
GitLabの強力な機能のひとつに継承モデルがあります。これは、上位階層で設定した権限、構成が自動的に下位階層にも適用されるようにするものです。また逆に、下位階層のデータを直感的に上位階層で利用することも可能です。継承モデルを使用すると、ポートフォリオ全体を上位のグループから可視化できます。さらに、個々のチームが作業を管理できるように、階層構造の下位に専用のスペースを確保します。
例:
- 上位グループでマイルストーンやラベルを作成し、下位のすべてのサブグループやプロジェクトに自動的に適用することで、一貫性と組織の標準への準拠を促進します。
- 下位レベルのプロジェクトやサブグループのイシューやエピックは、バリューストリーム階層の構造に沿って集約されるため、プログラム管理者やエグゼクティブ層が参照しやすくなります。
- グループレベルまたはトップレベルのサブグループでユーザー権限を管理することで、権限やアクセス制限を効率化できます。これにより、アクセス制御の管理が簡素化され、設定を繰り返すことなく、複数のプロジェクトにわたって適切な人が適切なアクセス権を持てるようになります。
こうしたヒントを活用することで、管理上のオーバーヘッドを減らすことができるだけでなく、上位レベルでの変更が一貫して下位レベルに反映されるようになり、その結果、セキュリティとコンプライアンスの強化が実現できます。
GitLabセットアップのベストプラクティス
GitLabの組織階層を設定する際には、組織のニーズに応じて以下のオプションをおすすめします。Self-managedユーザーの場合、「会社名」などのルートグループ階層を省略できます。Self-Managedはシングルテナントデプロイメントのためこのような追加の組織階層は必要ないからです。こういった柔軟性により、特定の組織構造や導入形態に合わせたGitLabのセットアップが実現できます。
オプション1:組織のサブグループレベルで権限とアクセスを付与する
このオプションは、複雑な権限構造や、多数のユーザー間で効率的にプロジェクトを共有する必要がある大規模な組織に最適です。
構造の例
-
組織グループ
-
開発グループ
- 最上位の開発グループレベルにおいて、エグゼクティブレベルとプログラムマネジメントレベルに対して、すべての開発プロジェクトにまたがる可視性を提供します。
- 製品機能レベルの開発は、複数のリポジトリにアクセスが必要なため、サブグループレベルで作成されます。
- プロジェクトは開発用のリポジトリを管理するために作成されます。これは各開発チームのアクセスに利用します。
オプション2:任意のレベルで権限とアクセスを付与する。
このオプションは、アクセス要件がそれほど複雑でない小規模な組織に最適です。ユーザーは、アクセスが必要な際に、部門グループ、サブグループ、またはプロジェクトに個別に追加されます。これにより、プロジェクト管理と運用の可視性を直接管理できます。
概要
- 必要なアクセス権限に応じて、ユーザーを階層の最上位にあるグループまたは下位のサブグループやプロジェクトに追加できます。同じグループに属するメンバーを一度に追加するのではなく、各メンバーを個別に追加する必要があります。
- 最上位の開発グループレベルにおいて、エグゼクティブレベルとプログラムマネジメントレベルに対して、すべての開発プロジェクトにまたがる可視性を提供します。
- 製品機能レベルの開発は、複数のリポジトリにアクセスが必要なため、サブグループレベルで作成します。
- プロジェクトは開発用のリポジトリを管理するために作成します。これは各開発チームのアクセスに利用します。
その他の構成に関する考慮事項
-
マイルストーンとイテレーション
- 幅広い可視性を確保するため、またはグループ間でマイルストーンを共有する必要がある場合は、グループレベルのマイルストーンを作成します。
- マイルストーンが1つのプロジェクトに固有の場合は、プロジェクトレベルでマイルストーンを作成します。
- 複数のグループにまたがって作業しているチームの場合、親グループレベルでイテレーションを設定すると、追跡が統一され、効率よく作業を進めることができます。
-
データ管理
- GitLabのロードマップ、ボード、リストページを活用して、組織の設定を反映したデータを取り込みましょう。これにより、進捗状況を可視化し、組織のさまざまなレベルにわたって効果的に計画を立てることができます。
- GitLabでは、下位レベルで作成されたデータであっても、上位レベルのグループで利用できます。
- 複数のグループやプロジェクトにまたがるデータを確認する場合には上位レベルのビューを作成し、特定のグループやプロジェクトのデータに集中する場合には下位レベルのビューを作成します。
-
テンプレートの作成
- 上位レベルのテンプレートを作成して、後続のすべてのサブグループやプロジェクトに確実に適用できるようにします。これには、一般的なガイドラインやプロジェクト固有の要件を盛り込みます。
- テンプレートは、該当するグループ(関連するドキュメント)内の独自のリポジトリ内に作成します。
-
ラベル
- 上位レベルのラベルを作成し、後続のすべてのサブグループやプロジェクトに確実に適用できるようにします。これには、組織ラベルとプロジェクト固有のラベルが含まれます。
- スコープ付きラベルを使用して、チームやワークフローのステータスなどの組織構造を定義します。
GitLabの機能を活用して成果を上げる
GitLabで適切な構造を実装することは、ソフトウェアプロジェクトの管理を合理化するだけでなく、組織のさまざまなレベルでの可視性を高め、トップマネジメントから一般社員まで、情報に基づいた意思決定を行うために必要な情報を確実に得ることができます。
GitLab Ultimateの30日間無料トライアルで、組織の階層構造のモデリングを始めませんか?
監修:川瀬 洋平 @ykawase (GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー)