はじめまして。スクラムマスターの岡田です。
スクラムフレームワークに則り日々サービス開発を行っています。
■本記事の対象者
■本記事の内容
上記のような疑問、課題に対しての 1つの案として、Azure DevOps をご紹介します。
当社ブランドの clouXion
を開発しているチームで実際にどのように活用しているかについて記載します。
Azure DevOps についての詳細は、 Microsoft の公開情報をご参照ください。
Azure DevOps の利用方法をご紹介する前にスクラムについて軽く触れておきます。
スクラムは実際のマーケットからのフィードバックをすぐにプロダクトへ反映させることを可能としたフレームワークです。
フレームワークの特徴は以下です。
※ クロスファンクショナルチーム
部門あるいは会社を横断的に様々な経験・知識を持ったメンバーで構成されたチーム。
スクラムのフレームワークで提供されている役割とイベントの説明と、clouXion 開発チームの実際のスケジュールをご紹介します。
プロダクトオーナー:
開発が必要な機能を決定し、開発チームにプロダクトのゴールを示す役割を担います。機能の範囲や内容をまとめた「プロダクトバックログ」を管理します。スクラムチームから⽣み出されるプロダクトの価値を最⼤化することに責任を持ちます。
スクラムマスター:
開発を円滑に進めるための業務が主な役割です。スクラムがうまく回っているか、業務の障害がないかチェックし、スムーズに進められるよう調整を行います。スクラムガイドで定義されたスクラムを確⽴させることに責任を持ちます。
開発者チーム:
プログラムを実際に開発する役割を担い、数名のメンバーで構成されます。 各メンバーは専門分野を持つことが多いものの、開発で行われるどの役割も担える「多能工」であることが特徴です。
専門家として、開発手法や成果物に責任を持ちます。
clouXion 開発チームは 2週間を 1スプリントとしています。
スプリントプランニング:
スプリント初めにプロダクトオーナーと開発チームがスプリントプランニングを一緒に実施し、次のスプリントでどのプロダクトバックログアイテムを実装するかを検討します。
デイリースクラム:
毎日、同じ時間に同じ場所で開発チームは 15分~30分、スプリントのゴールに向けての 進捗状況を確認し、その日の計画を行います。
バックログリファイメント:
プロダクトバックログアイテムに対して、詳細な説明の追加、見積り、並び替えをします。これはプロダクトオーナーと開発チームが協力して行う継続的なプロセスです。clouXion 開発チームでは1スプリントに 2度(毎週)行っています。
スプリントレビュー:
スプリントの終わりに実施する、検査と適応の場です。ステークホルダーはチームがスプリントの中で何を作ったのかレビューします。開発者チーム、プロダクトオーナー、ステークホルダーが一体となってプロダクトの方向性を決めます。
レトロスペクティブ:
全てのスプリントはレトロスペクティブで終わります。 このイベントではチームは自分たちのふるまいやプロセスを見直し、次スプリントでの改善アクションを決めます。
役割、イベントは以下の記事が1枚に纏められていて分かりやすいです。
【参考】
スクラムの概要を 1分で理解できるイラスト【2018版】 | Ryuzee.com
本題のスクラムにおいて実際どのように Azure DevOps を利用しているか、イベント毎に紹介していきます。
Azure DevOps の "Boards > Sprints > Taskboard" でタスク管理をしています。 9/15 〜 9/28 のスプリントを表示しています。
上図の は Product Backlog Item (以降 PBI)と呼ばれるものです。
上図では PBI を閉じて表示しています。
上から下にいくにつれて優先度が低いものになります。 開発チームは優先度の高い、上側の PBI から着手することになります。
実際には PBI を開いて上図のようにタスクが見える状態でデイリースクラムをスタートします。
Taskboard を見ながらそれぞれのタスクの進捗を確認します。このタイミングで困っていること (進捗を妨げている障害) を発見し、解決に向けてお互いがフォローしていくように進めます。
議論が必要な話題が出た場合は、デイリースクラム後に関係者で話し合います。 clouXion 開発チームではすべての仕事を Taskboard で表現していますので、Taskboard さえ見ていればチームの状況が把握できるようになっています。他の進捗管理ツールを使用していません。
デイリースクラム時には Analytics タブを開いてバーンダウンチャートも確認します。バーンダウンチャートではチームの残作業量が可視化されていますので、スプリントが順調に進んでいるかの目安として確認します。Remailing Capacity ラインは Capacity タブで設定した個人の稼働出来る時間の合計になっています。Capacity タブについての説明は割愛します。
Azure DevOps の "Boards > Backlogs> Backlog" で PBI を管理しています。 上図のリストをプロダクトバックログ※と言います。Taskboard 同様にこちらも上から下にいくにつれて優先度が低いものになります。プロダクトオーナー (以降 PO) によって優先度が並び替えられた PBI を上から順に開発チームが「どうやって (How)」作るか?を議論して着手可能な状態にします。その後、相対見積もりを行います。
Estimate を使用して相対見積もりを行っています。 こちらは Azure DevOps の拡張機能であり、無料で入手することが可能です。Estimate はプランニングポーカー※を行うのに適したツールです。見積もり対象の PBI を選択し、Estimate work item(s) をクリックすることで見積りの画面に遷移します。
見積もりはフィボナッチ数列を使っています。微妙な見積りの違いを避けます。 これは見積もりが大きくなるほど細かい差に意味がなくなるからです。
そのスプリントで実施していた PBI について、受け入れ条件が満たしているか、あるいは完成の定義を満たしているか、関係者に対してデモンストレーションします。レビューの中で出てきた指摘について、軽微なものであれば同じスプリント内で修正します。大きな修正が必要な場合は新たな PBI を作成し、他 PBI も含めて改めて優先度を決定します。
開発チームは PBI 着手前に PO と受け入れ条件 (Acceptance Criteria) を固めて合意する必要があります。開発中に PO とコミュニケーションし、更新する場合もあります。
Azure DevOps の "Boards > Retrospectives" を使用して、レトロスペクティブ (振り返り) を行っています。 Retrospectivesは KPT 法※を実施するのに適したツールです 。こちらは Azure DevOps の拡張機能であり、無料で入手することが可能です。
スプリントプランニング時にも Azure DevOps の "Boards > Backlogs> Backlog" を使用します。バックログリファイメントを経て優先度順に並び替えられた PBI を開発チームのスプリントバックログ※に移動してチームにアサインします。スプリントプランニングを経て、開発チームは新たなスプリントをスタートします。
clouXion 開発チームで使用しているいくつかの機能を Tips としてご紹介します。
clouXion
開発チームでは以下のフィールドを使用しています。
「Original Estimate」:タスクの計画時間
「Remaining Work」:タスクの残作業時間
「Completed Work」:タスクにかけた時間(実績時間)
"Organization Settings > Bords > Process > 自身のプロセス(上図では Dragon Scrum) > Work Item(上図では Task) > Rules" にルールを設定することで、自動的に値を設定したり変更したりすることが出来ます。先ほど 3つのフィールドを使用しているとご紹介しましたが、Task を新規作成する際は「Original Estimate」「Remaining Work」が等しくなります。ですから、「Original Estimate」を入力したら「Remaining Work」に値をコピーするというルールを設定しています。作業者は 2つのフィールドに値を入力せずに済みます。このように Azure DevOps のフィールドであればルールを設定することで自動的に値を設定することが可能です。細かく設定をすることで作業者の負荷を下げることが可能です。
Taskboard でタスクの進捗状況を見る際に、上図のように進捗に遅れが出ているタスクに色が付いていたら分かりやすくなります。タスクの更新が 1日滞っていた場合、色を付けるルールにしています。実際の設定は以下です。
Taskboard の右上にある歯車アイコンをクリックすると設定画面が開きます。Styles の新しいルールとして上図のように追加しています。ルール自体は複数追加できます。自分のチームにあったルールを設定してみてください。
Azure DevOps を利用すれば全てのスクラムイベントに対応することが可能です。1つのツール、サービスに絞ることで標準化の観点でもメリットがあります。 Tips
としてはまだまだご紹介出来ていないことが多々あります。
以下は一例です。
Azure DevOps には今回ご紹介をさせていただいた機能以外にも、ソース管理や CI/CD を実現できるサービスも含まれており、スクラムをするために必要なツールがひと通り提供されています。
本記事が、スクラムで使用するツール、サービスをご検討されている方へ少しでも助けになれば幸いです。