アジャイル計画
統合されたアジャイルサポートを用いた、プロジェクト、プログラム、および製品の計画と管理
統合されたアジャイルサポートを用いた、プロジェクト、プログラム、および製品の計画と管理
開発チームは、スクラム、かんばん、エクストリームプログラミング(XP)のような反復型、インクリメンタル型、リーン型のプロジェクト手法を用いて、価値の提供を加速し続けています。大企業は、大規模アジャイルフレームワーク(SAFe)、Spotify、大規模スクラム(LeSS)など、さまざまなフレームワークを通じて、企業規模に即したアジャイルを採用してきました。GitLabを使用すれば、チームが選択した方法論に関係なく、アジャイル手法と原則を適用して作業を整理したり管理したりできます。
最も包括的なDevSecOpsプラットフォームであるGitLabは、次のような特徴を備えています。
可視性を維持し、ビジネスのイニシアチブに応じてメンバーとプロジェクトを管理できます。ポリシーと権限の定義および実施、複数のプロジェクトおよびグループ間の進捗状況と進行速度の追跡、イニシアチブの優先度設定による提供価値の最大化が可能です。
組織が大規模アジャイルフレームワーク(SAFe)を用いてフレームワークをビルドする際の、GitLabの活用法をご覧ください。チーム、プログラム、ポートフォリオの3つの柱をベースとした、開発チーム向けのアジャイルフレームワークの構築について詳しくご説明します。
アジャイル手法では、多くの場合、ユーザーにビジネス価値を提供する1つの機能を示したユーザーストーリーから始めます。GitLabでは、プロジェクト内の1つのイシューがこの役割を果たします。
ユーザーストーリーの多くは、個々のタスクに細分化できます。GitLabのイシューの説明内にタスクリストを作成することで、そうした個々のタスクを細かく区別できます。
一方、アジャイルの専門家の中には、複数の機能で構成されるより大きなユーザーフローを示す、しばしばエピックと呼ばれる抽象化したものを、ユーザーストーリーの上に指定する人もいます。GitLabのエピックには、イシューと同様にタイトルと説明が含まれていますが、その階層を示すために複数の子イシューを関連付けることができます。
多くの場合、プロダクトオーナーやビジネスオーナーは、ビジネスや顧客のニーズを反映するためにこれらのユーザーストーリーを作成します。緊急度と望まれる開発順序を把握するために、ユーザーストーリーはプロダクトバックログで優先順位付けされています。プロダクトオーナーはこうした優先順位の決定においてステークホルダーとコミュニケーションをとり、バックログの改善に継続的に取り組みます。GitLabでは、バックログを追跡することを目的にユーザーが表示できるイシューリストが、動的に生成されます。ラベルを作成して個々のイシューに割り当てることができます。これにより、単一または複数のラベルでイシューリストをフィルターできるため、柔軟性がさらに高まります。優先ラベルを使用して、リスト内のイシューを並べ替えることもできます。
スプリントとは、作業を完了させるまでの期限を設けた期間を指します。1週間、数週間、または1か月以上と、その期間はさまざまです。プロダクトオーナーと開発チームはミーティングを行い、次のスプリントのスコープとなる作業を決定します。ここで、GitLabのマイルストーン機能が役立ちます。マイルストーンに開始日と期限を割り当てて、スプリントの期間を把握できます。次に、チームはそのマイルストーンにイシューを割り当てることで、そのスプリントにイシューを組み込むことができます。
また、このミーティングではユーザーストーリーが共有され、スコープ内のユーザーストーリーごとに、技術的工数のレベルが推測されます。GitLabのイシューにはウェイト属性があり、それを使用して推測された工数を表示できます。このミーティング(あるいはその後のミーティング)で、ユーザーストーリーは技術的な成果物に細分化され、技術的な計画やアーキテクチャを記録することもあります。GitLabでは、こうした情報はイシューやマージリクエストの説明に記載されます。これは、マージリクエストでは技術的なコラボレーションが発生することが多いためです。スプリント(GitLabにおけるマイルストーン)の期間に、開発チームのメンバーは取り組むユーザーストーリーを1つずつピックアップします。GitLabのイシューには担当者が存在します。そのため、イシューに自分を割り当てることで、現在そのイシューに取り組んでいることを示すことができます。技術的なコラボレーションプロセスを開始するにあたっては、まだコードを一行も作成してなくても、すぐにイシューに紐づけられた空のマージリクエストを作成することをおすすめします。
スプリントを通して、イシューは各組織のワークフローによって異なるさまざまなステージ(開発準備完了、開発中、QA中、レビュー中、完了など)を経て進行していきます。一般的に、これらはアジャイルボードの列になります。GitLabでは、イシューボードでステージを定義し、そのステージを経由してイシューを移動させることができます。チームはマイルストーンやその他の関連属性に関するボードを設定できます。毎日のスタンドアップの間、チームは一緒にボードを見て、ワークフローの観点からスプリントの状態を確認します。
開発チームは、順調に進行しているかどうかをリアルタイムで把握し、リスクが発生した場合に、そのリスクを軽減したいと考えています。GitLabのバーンダウンチャートは、チームは現在のスプリントのスコープとなっている作業を、その完了の度に「燃え尽きていく」様子を用いて視覚化できます。スプリントの終わりには、開発チームは完成した機能のデモを、さまざまなステークホルダーに向けて実施します。GitLabでは、Review Appを活用することでこのプロセスが容易になり、さまざまなテスト環境、ステージ環境、UAT環境にあるコードが本番環境にはまだリリースされていなくても、デモを行うことができます。Review AppとCI/CD機能はマージリクエスト自体に統合されています。こうした同一ツールは、CI/CDによる自動テストであれ、Review Apps環境でのマニュアルテストであれ、ソフトウェアの品質を維持するためにデベロッパーやQAの役割において役立ちます。