公開:3月 5, 2018
1分で読めます
本ブログでは、アジャイルアーティファクトが GitLab 機能にどのようにマッピングされるのか、また、GitLab 内でアジャイルのイテレーションがどのように表示されるのかについてご説明します。
GitLab でアジャイル開発手法がサポートされているかどうか考えたことはありますか。GitLab の使用を検討中の場合、DevSecOps プラットフォームの機能がどのようにアジャイルのアーティファクトと対応しているのかが分かりにくいかもしれません。そこで、本記事で詳しくご説明します。
アジャイルとは、ここ数十年でソフトウェアエンジニアリング分野に導入された、最も重要で革新的な手法のひとつです。アジャイルの概念に関する細かい用語は統一されていないものの、アジャイル自体は、アジャイルソフトウェア開発プロセスとアジャイルデリバリープロセスを通じて顧客中心の製品を効率的に開発できるなど、ソフトウェア開発チームに大きなプラスの影響を与えてきました。
GitLab は、アジャイルであっても、アジャイルの影響を受けた手法であっても、ソフトウェア開発の手法に柔軟に適応できるよう設計されています。この記事では、アジャイルアーティファクトを簡単に GitLab 機能にマッピングさせる方法をご紹介し、お客様が GitLab を使用することで、パフォーマンスの良いアジャイルソフトウェアデリバリーチームをどのように運営しているのかを解説します。
アジャイルソフトウェア開発手法では、通常、ユーザーストーリーの作成から始めます。ユーザーストーリーでは、1つの機能に対する理解を深め、ユーザーにビジネス価値を提供するために必要な要素を明確にします。GitLab では、イシュー (英語版) を作成します。GitLab のイシューはタスクやプロジェクトを管理する効果的な手法であり、アジャイルチームにとって不可欠です。ソフトウェアデベロッパーはイシューの作成、割り当て、追跡を行い、責任の明確化と進捗の可視化を実現できます。イシューには、担当者、イテレーション、ウェイト、ラベルといった重要なメタデータが含まれており、ソフトウェア開発プロセス全体を通じてタスクの優先順位付けやワークフローの管理が強化されます。さらに、ディスカッションスレッド、添付ファイル、リアルタイムでの通知により、チームが効率的にイシューに取り組むことができるため、スムーズなコミュニケーションが促進され、優れたチームワークが発揮されます。
GitLab のイシューは、冒頭にタイトルがあり、その下にビジネス価値やユーザーストーリーに関連するペルソナといった詳細を記載できます。右側のサイドバーには、イシューが紐付けられている親エピックや、イシューのイテレーション、イシューのウェイトなど、他のアジャイル対応機能と統合されており、推定工数を反映しています。
ユーザーストーリーは多くの場合、個々のタスクに細分化されます。GitLab のタスク(英語版) を使用すると、アジャイルチームはユーザーストーリーを個々の作業に細分化できるため、効率的にプロジェクト管理を進められます。この機能は、ソフトウェアデベロッパーがプロジェクト内でタスクを作成、割り当て、追跡できるようにすることで、アジャイルフレームワークをサポートします。タスク管理を GitLab に直接統合することによって、チームは一貫したワークフローを維持し、ソフトウェア開発プロジェクトのあらゆるアクテビティを簡単に追跡、管理できます。
GitLabを使用して正確なタスク管理とプロジェクト追跡を行うことで、ユーザーに提供する価値を高められます。タスクも、担当者、イテレーション、ウェイト、ラベル、タイムトラッキング、コラボレーション機能など、イシューと同じメタデータを備えています。この包括的な各種機能により、アジャイルチームやプロジェクトマネージャーはワークロードの効果的な管理、タスクの優先順位付け、ソフトウェアデベロッパー間のシームレスなコラボレーションを実現できます。
一方、アジャイルを使用する人の中には、エピックと呼ばれる抽象化したものをユーザーストーリーの上に指定する人もいます。エピックとは、複数の機能から構成されている大きなユーザーフローを指します。GitLab のエピック (英語) には、イシューと同様にタイトルと説明が記載されます。また、複数の子イシューも表示させることができ、階層構造が一見して分かります。
GitLab では、 最大9 階層までのエピックをネストできるため、アジャイルチームは大規模なプロジェクトも効果的に構築、管理することができます。この階層構造により、プロジェクトのロードマップが明確に示され、ソフトウェアデベロッパーやプロジェクトマネージャーが複雑なイニシアティブを管理しやすいサイズに細分化しやすくなります。子エピックや紐付けされたエピック (英語) を活用すると、チームは進捗状況、依存関係、プロジェクトのマイルストーンを的確に追跡できるため、コラボレーションの向上と、一環したアジャイルデリバリーを実現できます。
プロダクトやビジネスのオーナーは通常、ビジネスや顧客のニーズを反映させるためにユーザーストーリーを作成します。ユーザーストーリーは緊急性や開発希望順に基づいてプロダクトバックログ内で優先順位が付けられます。プロダクトオーナーは関係者とコミュニケーションをとり、優先順位を決定したり継続してバックログを調整します。GitLab にはイシューボード (英語版) があり、イテレーションをリストとして整理できるほか、ドラッグアンドドロップで作業を進められるため、アジャイルでのバックログが簡単に優先順位付けできたり、ストーリーを次のスプリントに割り当てたりできます。
アジャイルにおけるスプリントとは、作業が完了するまでの期限を指します。 1 週間、数週間、または 1 ヶ月以上になることもあります。プロダクトオーナーと開発チーム間で検討を重ね、次のスプリントのスコープとなる作業を決定します。GitLab のイテレーション (英語版) 機能ではイテレーションに開始日と終了日を設定し、イテレーションの期間を把握できます。次に、チームは特定のイテレーションにイシューを割り当て、スプリントに取り込みます。
イテレーションを使用することで、GitLab の強化されたアジャイルプロジェクト管理機能を活用して、アジャイルのプランニングならびにデリバリーにおける可視性とコントロールを向上できます。
この章にあるリンクはすべて英語版です。
また、この段階でユーザーストーリーが共有され、スコープ内の各ユーザーストーリーごとに技術的工数の推定が行われます。GitLab では、イシューにはウェイト属性があり、工数の推定に使用されます。
この時点(またはこの後の段階)で、ユーザーストーリーがさらに技術的な成果物に細分化されたり、技術計画やアーキテクチャがドキュメント化されたりすることもあります。GitLab では、この情報をイシューかマージリクエストの説明に記載します。技術的なコラボレーションはマージリクエストで行われることが多いためです。
スプリント (GitLabのイテレーション) 中、ソフトウェア開発チームのメンバーは取り組むユーザーストーリーをひとつずつ選びます。GitLab では、イシューに担当者を指定できます。イシューに自分を割り当てることで、現在その作業に取り組んでいることを明示します。コードの最初の一行を書く前にイシューに紐付けた空のマージリクエストを作成することをお勧めします。そうすることで技術的なコラボレーションプロセスをすぐに開始できます。
この章にあるリンクはすべて英語版です。
アジャイルでは、スプリントの間、イシューは特定の組織のワークフローに応じて「Ready for dev
(開発準備完了)」「In dev
(開発中)」「In QA
(QA 中)」「In review
(レビュー中)」「Done
(完了)」など、さまざまなステージを経て進行していきます。
通常、これらのステージがアジャイルボードの列として表示されます。GitLab では、イシューボードでステージを定義し、イシューをステージ間で移動させることができます。チームは、イテレーションやその他の関連属性に応じてボードを設定できます。毎日のスタンドアップミーティングでは、チームメンバーが一緒にボードを見て、ワークフローの観点からスプリントの進捗状況を確認します。
GitLab イシューボードは、GitLab イシューリストと同様、イシューを動的にプルしますが、より柔軟なワークフローも可能です。ボードに個別のリストを設定すれば、アジャイルボードのステージを反映できます。このようにして、チームはユーザーストーリーが「
Ready for dev
(開発準備完了)」から「Released to production
(本番環境にリリース)」まで推移していくのを管理、追跡できます。
アジャイルチームは、GitLab 内で担当者別でフィルタリングされたリストを持つイシューボードを作成して、ワークフローを最適化できます。この機能により、チームメンバー間のタスクの分配が可視化され、アジャイルデリバリーが強化されます。担当者ごとのリストを作成するには、プロジェクトまたはグループに移動し、「ボード」セクションで新規ボードを作成し、各担当者用のリストを追加 (英語) します。イシューをチームメンバーに割り当てると、対応するリストに割り当てが自動的に表示されます。この動的なビューにより、作業負荷のバランスを取りながら効果的なタスク管理を行うことができます。
[スコープラベル]を使用すると、担当者別またはスクワッド別にイシューボードを整理できます。GitLabのイシューボードは非常に幅広く、ソフトウェア開発ライフサイクル全体のワークフローをサポートします。
この章にあるリンクはすべて英語版です。
開発チームは、リアルタイムでプロジェクトが順調に進んでいるかどうかを把握し、リスクが発生した場合にはそれを軽減したいと考えます。GitLab のバーンダウンチャートを使用すれば、チームは現在のスプリントのスコープとなっている作業が完了するにつれて「バーンダウンする(作業量が減少していく)」様子を視覚化できます。
スプリントの終わりに近づくと、開発チームは完成した機能のデモをさまざまな関係者に向けて実施します。GitLab では、レビューアプリを使うことでこのプロセスが簡素化され、まだ本番環境にリリースされていないコードでも、さまざまなテスト、ステージング、または UAT 環境でデモを行うことができます。レビューアプリと CI/CD 機能は、マージリクエスト自体に統合されています。
デベロッパーやQA担当者は、こうしたツールを活用してCI/CDによる自動テストやレビューアプリ環境での手動テストを行い、ソフトウェアの品質を維持しています。
GitLabのバーンダウンチャートを使用すると、チームはスプリントのスコープとなっている作業が完了する様子を追跡できます。そのため、リスクに早期に対処し、それに応じて調整を行えます。たとえば、ある機能が次のスプリントに遅れることが見込まれている場合、それを関係者に知らせることができます。
アジャイルスプリントの最後に行われるチームレトロスペクティブ(振り返り)は、GitLab の wiki に記録できるため、学んだ教訓や対処項目などを長期にわたって追跡できます。実際のレトロスペクティブでは、チームはイテレーションレポートを見ながら、バーンダウンチャートや完了したスプリントに関するその他の統計などを確認することができます。
アジャイルにおけるプロジェクトマネジメントをレベルアップさせませんか?GitLab は、アジャイルチーム、ソフトウェアデベロッパー、プロジェクトマネージャー向けに特化した包括的な機能を提供し、円滑なコラボレーションと効率的なワークフローを実現します。GitLab の価格オプションをご覧いただき、無料トライアルを始めましょう。GitLab がどのようにアジャイルデリバリープロセスを変革できるかをぜひご体感ください。
GitLab アジャイルプランニングについてさらに詳しく知り、今すぐGitLabでアジャイルを始めましょう。
監修:ソリス ジェレズ / Jerez Solis @jerezs
(GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト)