SHIFT ASIAでアシスタントマネージャーを務めているLeungです。
私は、昨年PSMⅡ(Professional Scrum Master 2)というスクラムマスターの認定資格を取得しました。そして、今年の初めにある社内の管理システムの刷新を任され、そのプロジェクトをスクラムで開発することにしました。
このシステム刷新プロジェクトにスクラムを選択した理由としては、これまでアジャイル・スクラムモデルに従ってプロジェクト管理をしたことはありませんでしたが、PSMⅡで身に着けた知識を実践する場としてこの社内プロジェクトが非常に良い機会であると思ったためです。
本記事は、私自身が社内プロジェクトにおいて実践したスクラムの初体験の記録のようなものです。
この記事の内容が、これからスクラムに取り組む方にとって、その最初の一歩を踏み出す上で少しでも役に立つことができれば幸いです。
スクラム開発とは
はじめに、今回私が取り組んだスクラム開発についての概要を簡単にご紹介します。
参照:Theliberators.com
スクラム開発とは、近年のシステム開発で採用されることの多い開発手法の一つであり、アジャイル開発におけるフレームワークの一つとして位置づけられます。
スクラムフレームワークは、抽象クラスとして理解することができます。(※)
※Paddy Corry氏のScrum is an abstract classより参照
スクラムフレームワークではさまざまな振る舞いや役割、成果物、イベントなどが定義されています。それらの要素のほとんどは最低限の定義だけが与えられ、それぞれの環境や状況に応じて適切に展開していく必要があります。
具体的にどういうことかというと、イメージしやすい「自動車」を例にとってご説明します。
「自動車」とは、Wikipediaによれば、以下のような定義に基づいた具体的な実装を持つもののことを指します。
自動車とは四つの車輪をもち、原動機の動力によって車輪を回転させ、軌条や架線を用いずに路上を走る車である
抽象クラスの考え方を用いて自動車を表現すると、以下の図のようになります。
つまり、自動車とは「4つの車輪」を持ち「原動機の動力」を用い「路上を走る」車であるという定義を満たすもののことですが、それらの定義を満たす車にはセダンやクーペといったものからスポーツカーまで、多種多様な形や目的を持った車が存在します。
スクラムも自動車の例と同様に、3つのロールやスプリントのタイムボックス、4つの主なイベント、スプリントゴールといった定義された要素がある一方で、実際にチームがどのように実装するか(どのようにスクラムを運用するか)はチームにゆだねられており、チームによって異なります。
したがって、スクラムにも自動車のようにさまざまな形があり得るということです。
しかしながら、自動車にとって4つの車輪や原動機の動力が必須であるように、スクラムにおいてもそのなかで定義されたロールやイベント、作成物を取り払ってしまったら、それはもはやスクラムではなくなってしまうのです。
ここではこれ以上スクラムの概要については紹介しませんが、スクラムについてより詳しく知りたい方は、スクラムの公式ガイドであるスクラムガイドや、スクラムについて解説している当ブログの以下の記事を参照してみてください。
1. スクラムとは|スクラムの定義や特徴、体制とチーム内の役割
2. スクラムイベントとは|スクラムにおけるスプリントと4つのイベント
3. スクラムの3つの作成物|プロダクトバックログ、スプリントバックログ、インクリメントについて
スクラム開発の管理方法
ここからはスクラム開発の管理方法について、実践のなかで得られた経験なども踏まえてご紹介します。
まず、スプリントを開始する前に、次の基本的な事項を明確にする必要があります。
なお、ここではスクラムにおける個別の用語の説明は割愛します。
• バックログ/タスク管理方法
• 初期のプロダクトバックログ
• 開発環境のセットアップ
• 文書管理方法
• スクラム チームのプロセス定義
• スプリント期間
• スクラムイベントの時間と場所
• DoD(Definition of Done:完了の定義)、DoR(Definition of Ready:レディの定義)
• チームメンバーの役割と責任 など
• 利害関係者の役割と責任
スクラムにおいては、上のように決めなければならない事項が多岐に渡ります。
その中でも、特に「バックログ/タスク管理方法」の選択にはかなりの時間を要しました。ここはスクラムに取り組む上で多くの方がつまずくポイントの一つであると思われますので、本記事では特に深ぼってご紹介します。
「バックログ/タスク管理方法」について、最初はExcelのBacklog管理用のテンプレートをバックログの管理に、別のツールをタスク管理に使用してみましたが、思うように機能せず結局のところあまり役に立ちませんでした。
その後も世の中に多数存在するスクラム運用によく使用されるツールやサービスを検討しましたが、やはり上手く活用することができませんでした。
そうした状況のなかで、SHIFT ASIA社内のスクラムマスターにバックログとタスクの管理方法ついて相談したところ、Azure DevOpsに含まれる機能の一つである「Azure Boards」を使用してみてはどうかと薦められました。
そこで試しにAzure Boardsをしばらく触ってみたところ、スクラムの運用や管理に非常に適していることがわかり、最終的にはAzure Boardsを採用してスクラムを開始することになりました。
Azure Boardsは、スクラムの基本要素であるバックログやタスクなどの管理をサポートするだけでなく、必要に応じて柔軟かつ簡単にカスタマイズすることが可能であり、多くの強力な拡張機能を組み合わせることでスクラム以外の用途にも活用できる、非常に自由度の高いツールです。
(Azure Boardsのカスタマイズについては、後編で詳しくご紹介する予定です)
前編である本記事では、「スクラムの運用と管理のためにAzure Boardsを上手く活用する方法」について、以下の4ステップに分けてご紹介します。
ステップ1.スクラムプロジェクトの新規作成&初期設定
ステップ2.プロダクトバックログ管理
ステップ3.Boards上にBacklog Refinement/Sprint Planningイベントを実施
ステップ4.デイリースクラムを実施し、スプリントの進捗状況を追跡する
ステップ1.スクラムプロジェクトの新規作成&初期設定
Azure Boardsを使用するにはMicrosoftのアカウントが必要となるため、Microsoftアカウントが無い方は事前に登録しておきましょう。
プロジェクトの新規作成
まずは、以下のリンクからAzure Boardsのウェブサイトにアクセスして、プロジェクトを新規作成しましょう。
https://azure.microsoft.com/ja-jp/products/devops/boards/
新規プロジェクトの作成画面では、プロジェクトの情報を入力します。
Basic info
「Project name」:プロジェクト名
「Description」:プロジェクトの説明(任意)
「Visibility」:プロジェクトの公開範囲を設定する
Advanced
「Version control」:ソースコードのバージョン管理システムの選択肢
「Work item process」:今回は「Scrum」を選択してスクラム開発用のAzure Boardsを作成するようにします。(Azure Boardsでは、いくつかのアジャイル開発向けのワークアイテムが用意されています)
次の表は、Azure Boardsのスクラムプロセスモデルに設定された作業項目の種類とワークフローのテンプレートです。必要に応じて、柔軟にカスタマイズすることも可能です。
以下のような設定項目が表示されなかったり、間違って設定してしまったりした場合は、[組織の設定] >[ボード] > [プロセス]でプロセスを変更できます。
詳細手順は、以下のAzure DevOpsの公式記事をご参照ください。
プロジェクトプロセスをアジャイルからスクラムに変更する
参照:AZURE DEVOPS DOCS
チームメンバー招待
最後に、[プロジェクト設定] > [一般] > [チーム] から、他のメンバーをプロジェクトに招待することができます。
なお、Basicプランでは5名まで無料で使用することが可能です。
機能制限もありますが、スクラムの運用・管理において特に支障なく使用することができています。
ステップ2.プロダクトバックログ管理
プロダクトバックログを登録
続いて、プロダクトバックログを登録してみましょう。
サイドメニューの [Boards] > [Work items] から [+ New Work Item] を選択すると、作成できるワークアイテムの種類が表示されます。
参考までに、以下は私が登録したProduct Backlog Item(プロダクトバックログアイテム)です。
Work Items一覧画面に戻ると、登録されたワークアイテムが一覧に反映されています。
スクラムガイドでは、プロダクトバックログの作成方法までは明確に定められていないため、ここではAzure Boardsが提供するスクラムモデルに従います。
以下は一例として、私が登録したプロダクトバックログです。
バックログ状況の確認
メニュー [Boards] > [Boards] で、バックログの進行状況をカンバンビューで見通すことができます。
デフォルトのボード構成は、以下の4つの列で構成されます。
New/Approved/Committed/Done
ボードにはプロダクトバックログとバグのみが表示されます。
この画面を見ながらスプリントプランニングを実施し、作業を分解して、新しいワークアイテムを追加することもできます。
この続きは後編にて、具体的なスクラムの運用・管理方法や、効果的なAzure Boardsの活用方法についてご紹介しています。後編もぜひ併せてご覧ください。
はじめてのスクラム開発実践ノート(後編)|スプリントの運用や進捗管理における、効果的なAzure Boardsの活用方法をご紹介
参考文献
https://medium.com/serious-scrum/scrum-is-an-abstract-class-f6260c40e79d
https://learn.microsoft.com/en-us/azure/devops/reference/?view=azure-devops
お問い合わせContact
ご不明点やご相談などがありましたら、お気軽にお問い合わせください。