Blogアジャイル計画アジャイルソフトウェア開発におけるGitLabの活用法

Updated on March 19, 2024

1 min read

アジャイルソフトウェア開発におけるGitLabの活用法

GitLab機能がアジャイルのアーティファクトにどのように対応しているか、またGitLabでアジャイルのイテレーションをどのように進められるかについてご紹介します。

これまでにGitLabがアジャイル開発手法に対応しているかどうか考えたことはありますか?GitLabの使用をご検討中の方にとって、DevSecOpsプラットフォームの機能がアジャイルのアーティファクトとどのように対応しているのかがはわかりにくい可能性があります。そこで詳しくご説明します。

アジャイルは、ここ数十年でソフトウェアエンジニアリング分野に導入された、もっとも重要で変革的な開発手法の1つです。アジャイルの概念に関する細かい用語は統一されていないものの、それにもかかわらず、アジャイルのソフトウェア開発とデリバリープロセスを通じて効率的に顧客中心の製品を開発できるなど、ソフトウェア開発チームに非常によい影響を与えてきました。

GitLabは、アジャイルもしくはその影響を受けているソフトウェア開発手法に、柔軟に適応できるように設計されています。この記事では、GitLab機能がアジャイルのアーティファクトにどのように対応しているかを簡単にご紹介し、GitLabを使用してお客様がアジャイルソフトウェアデリバリーチームの運営を成功させてきた方法についてご説明します。

GitLab機能とアジャイルのアーティファクトの対応表

アジャイルのアーティファクト → GitLab機能 feature

GitLabで行うアジャイルのイテレーション

ユーザー事例 → GitLabイシュー

アジャイルソフトウェア開発手法では、多くの場合、ユーザーにビジネス価値を提供する単一の機能をユーザー事例で捉えることから始めます。GitLabでは、イシューを使用することで、簡単にこの目的を果たせます。アジャイルチームにとって、効果的なタスクやプロジェクトの管理方法をもたらすGitLabイシューは不可欠です。ソフトウェアデベロッパーは、イシューの作成、割り当て、追跡を行えるため、責任の明確化と進捗状況の可視化を実現できます。イシューには、担当者、イテレーション、ウェイト、ラベルなどの強力なメタデータが含まれており、ソフトウェア開発プロセス全体をとおしてタスクの優先順位付けとワークフロー管理を強化します。さらに、ディスカッションスレッド、添付ファイル、リアルタイムでの通知によって、チームは効率的にみなでイシューに取り組むことができるため、効果的にコミュニケーションとチームワークが発揮されます。

GitLabイシューのスクリーンショット

GitLabイシューには、タイトルに加え、中央に説明エリアがあります。説明エリアには、ビジネス価値やユーザー事例に関連するペルソナなど、詳細を記載できます。右側のサイドバーには、イシューが属する親エピック、イシューに取り組むイテレーション、イシューのウェイトなど、アジャイルに対応する機能が統合されており、推定工数が反映されます。

タスク → タスク

ユーザー事例は多くの場合、個々のタスクに細分化されます。GitLabタスクを使用すると、アジャイルチームはユーザー事例を個々の作業に細分化できるため、効率的にプロジェクト管理を進められます。この機能では、ソフトウェアデベロッパーがプロジェクト内のタスクを作成、割り当て、追跡できるようにすることで、アジャイルフレームワークをサポートしています。タスク管理をGitLabに直接統合することで、チームは一貫したワークフローを保持し、ソフトウェア開発プロジェクトにおけるあらゆるアクティビティを簡単に追跡・管理できるようになります。

GitLabを使用して正確なタスク管理とプロジェクト追跡を行っている様子を示すスクリーンショット

GitLabを使用して正確なタスク管理とプロジェクト追跡を行うことで、ユーザーに提供する価値を高められます。タスクには、担当者、イテレーション、ウェイト、ラベル、タイムトラッキング、コラボレーション機能など、イシューと同じメタデータが用意されています。この包括的な機能セットにより、アジャイルチームとプロジェクトマネージャーはワークロードの効果的な管理、タスクの優先順位付け、そしてソフトウェアデベロッパー間のシームレスなコラボレーションを実現できます。

エピック → GitLabエピック

一方、アジャイルの専門家の中には、複数の機能で構成されるより大きなユーザーフローを示す、エピックとも呼ばれる抽象化したものを、ユーザー事例の上に指定する人もいます。GitLabのエピックには、イシューと同様にタイトルと説明が含まれていますが、階層構造を示すために複数の子イシューを関連付けることもできます。

ネストされたGitLabエピックのスクリーンショット

GitLabエピックを使用すると、最大9階層のエピックをネストできるため、アジャイルチームは大規模なプロジェクトを効果的に整理して管理できます。この階層構造により、プロジェクトのロードマップが明確に示され、ソフトウェアデベロッパーやプロジェクトマネージャーが複雑なイニシアチブを管理しやすいコンポーネントに細分化しやすくなります。チームは子エピックとリンクされたエピックを活用することで、進捗、依存、プロジェクトマイルストーンをより効果的に追跡して、コラボレーションを強化し、一貫したアジャイルデリバリーを実現できます。

プロダクトバックログ → GitLabイシューボード

プロダクトオーナーやビジネスオーナーは通常、ビジネスおよび顧客のニーズを反映させるために、ユーザー事例を作成します。緊急度と望まれる開発順序を把握するために、ユーザー事例ははプロダクトバックログで優先順位付けされます。プロダクトオーナーはこうした優先順位の決定においてステークホルダーとコミュニケーションをとり、バックログを継続的に更新します。GitLabでは、イシューボードを使用してイテレーションをリストとして整理できるほか、ドラッグアンドドロップで作業を進められるため、簡単にバックログの優先順位付けをしたり、次のスプリントにユーザー事例を割り当てたりできます。

GitLabイシューボードのGIF画像

スプリント → GitLabのイテレーション

スプリントとは、作業を完了させるまでの期限を設けた期間を指します。1週間、数週間、または1か月以上と、その期間はさまざまです。プロダクトオーナーと開発チームはミーティングを行い、次のスプリントのスコープとなる作業を決定します。GitLabのイテレーション機能では、イテレーションに開始日と期限を割り当てることで、イテレーションの期間を把握できます。次に、チームはイシューを特定のイテレーションに割り当てることで、スプリントにイシューを組み込むことが可能です。

イテレーションを使用することで、GitLabの優れたアジャイルプロジェクト管理機能を活用でき、アジャイル計画とデリバリーの可視性が向上され、より細かく制御できるようになります。

ポイントと推定 → GitLabイシューのウェイト

また、このミーティングでは、ユーザー事例が共有され、スコープ内のユーザー事例ごとに、技術的工数のレベルの推定が行われます。GitLabのイシューにはウェイト属性があるため、それを用いて推定された工数を表示できます。

このミーティング(あるいはその後のミーティング)で、ユーザー事例は技術的な成果物に細分化されます。また、技術的な計画やアーキテクチャを記録することもあります。GitLabでは、こうした情報はイシューやマージリクエストの説明に記載されます。これは、マージリクエストでは技術的なコラボレーションが発生することが多いためです。

スプリント(GitLabにおけるイテレーション)の期間中に、ソフトウェア開発チームのメンバーは各自取り組むユーザー事例を選びます。GitLabでは、イシューに担当者を指定できます。そのため、イシューに自分を割り当てることで、現在そのイシューに取り組んでいることを示せます。技術的なコラボレーションプロセスを開始できるように、まだコードを1行も作成しなくても、すぐにイシューにリンクされた空のマージリクエストを作成することをおすすめします。

アジャイルボード → GitLabイシューボード

スプリントを通じて、イシューは各組織のワークフローに応じて、さまざまなステージ(Ready for devIn devIn QAIn reviewDone)を経て進行していきます。通常は、これらがアジャイルボードの列となります。GitLabでは、イシューボードでステージを定義し、ステージ間でイシューを移動させることができます。チームは、イテレーションやその他の関連属性に関するボードを設定できます。毎日行うスタンドアップの際に、チームは一緒にボードを見て、ワークフローの観点からスプリントの状態を確認します。

GitLabイシューボードのスクリーンショット

GitLabイシューボードには、GitLabイシューリストと同様に、イシューが動的に取り込まれます。これにより、より柔軟なワークフローを実現できます。アジャイルボードのステージを反映するために、イシューボードに個別のリストを作成できます。これにより、チームは、たとえばReady for devからReleased to productionまでユーザー事例が進んでいく中で管理・追跡できます。

チームワークロード → GitLabイシューボード

アジャイルチームは、GitLabで担当者に絞り込んだリストを含むイシューボードを作成することで、ワークフローを最適化できます。この機能によって、チームメンバー間のタスクの分布を可視化し、アジャイルデリバリーを強化できます。設定するには、プロジェクトまたはグループに移動し、「ボード」セクションで新規ボードを作成し、各担当者のリストを追加します。チームメンバーにイシューを割り当てると、対応するリストに自動的に表示されます。この動的なビューにより、ワークロードのバランスを取ることができ、効果的にタスク管理を行えます。

整理されたGitLabイシューボードのスクリーンショット

[範囲指定したラベル]を使用すると、担当者別またはスクワッド別にイシューボードを整理できます。GitLabのイシューボードは非常に幅広く、ソフトウェア開発ライフサイクル全体のワークフローをサポートします。

バーンダウンチャート → GitLabバーンダウンチャート

開発チームは、順調に進行しているかどうかをリアルタイムで追跡し、発生したリスクを軽減したいと考えています。GitLabのバーンダウンチャートを使用すれば、チームは現在のスプリントのスコープとなっている作業が完了する(バーンダウン:燃え尽きる)様子を可視化できます。

スプリントの終わり頃に、開発チームは完成した機能のデモを、さまざまなステークホルダーに向けて実施します。GitLabでは、Review Appsを使用することでこのプロセスを容易に進められます。コードがさまざまなテスト環境、ステージング環境、UAT環境にあり、まだ本番環境はリリースされていない状態であっても、デモを行えます。Review AppsとCI/CD機能は、マージリクエスト自体に統合されています。

デベロッパーやQA担当者はこうした同一ツールを活用して、CI/CDによる自動テストやReview Apps環境での手動テストを行うことで、ソフトウェアの品質を維持しやすくなります。

GitLabバーンダウンチャートのスクリーンショット

GitLabのバーンダウンチャートを使用すると、チームはスプリントのスコープとなっている作業が完了する様子を追跡できます。これにより、リスクにいち早く対応し、それに応じて調整を行えます。たとえば、ある機能が今後のスプリントに遅れ混む見込みであることをビジネス上のステークホルダーに通知できます。

スプリントの最後に行うチームレトロスペクティブの内容は、GitLabのWikiに文書化できるため、学んだ教訓とアクションアイテムを長期にわたって追跡できます。チームで実際にレトロスペクティブを行う際に、バーンダウンチャートや完了したスプリントに関するその他の統計情報が表示されるイテレーションレポートを閲覧することが可能です。

GitLabを活用してアジャイル開発を始める

アジャイルプロジェクト管理をレベルアップする準備はできましたか?GitLabは、アジャイルチーム、ソフトウェアデベロッパー、プロジェクトマネージャー向けの包括的な一連の機能を提供することで、シームレスなコラボレーションとワークフローの効率化を実現します。ぜひGitLabの価格オプションをご覧ください。また無料トライアルを開始し、GitLabを使用してアジャイルデリバリープロセスをどのように変革できるか実際にご確認ください。

GitLabアジャイル計画の詳細を確認し、今すぐ利用を開始しましょう!

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum.Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform

Get free trial

Find out which plan works best for your team

Learn about pricing

Learn about what GitLab can do for your team

Talk to an expert