「スプリントゼロ」とは?アジャイル開発の始め方
「スプリントゼロ」についてこんな疑問をお持ちの方は多いのではないでしょうか?
- スプリントゼロの目的がいまいちよくわからない
- スプリントゼロの役割がいまいちよくわからない
- スプリントゼロの重要性や必要性がいまいちよくわからない
上記のような疑問や不安にお応えしていきます。
今回の記事を読めばこれがわかる!
☑️ スプリントゼロの目的 ☑️ スプリントゼロの役割 ☑️ スプリントゼロが無いと起こる問題
この記事を書いている僕は元Supreme TechのSM(スクラブマスター)のヒコです。
*土曜の夜は必ずスキンフード (SKINFOOD) ブラックシュガーでスクラブをするのが習慣。現在はEnlyt(エンライト)で開発事業の責任者をしています。
これまで僕は10以上のプロジェクトでアジャイル・スクラム開発を経験し、現在はアジャイルコーチとしてもプロジェクトに参画することもあります
目次
スプリントゼロ(Sprint Zero)とは?
スプリントゼロ(Sprint Zero)とは「アジャイルスクラム開発でスプリントを開始する前、つまりエンジニアがコーティングを始める前のフェーズのこと」です。
スターウォーズでもエピソード1からなんだから、アジャイル開発の最初もスプリント1からでしょ!と思った方がほとんどだと思いますが、アジャイル開発はそう一筋縄ではいきません。
このスプリントゼロがアジャイル開発を成功に導く肝となるので乞うご期待ください。
スプリントゼロはなぜ必要か?
スプリントゼロの目的は、アジャイルチームが構築された初期段階の立ち上がりをスムーズにすることです。
まずアジャイル開発において大前提として念頭において置かなければならないのが、スクラムのイベントを通じてチームは段階的に良くなっていくものであるし、良くしていくものであるということです。
アジャイルなチームというのは、変化が多く、柔軟性の高い対応を求められる中でプロジェクトを遂行しなければなりません。
それはつまり、チームに練度の高さが要求されます。
そんな高い練度のチームに最初から少しでも近づけるよう準備をする期間がスプリントゼロの役割です。段階的にチームは良くなるというものの、できる限り早い段階でチームにはしっかり力を発揮してもらいたいわけです。
これまでの僕が関わったアジャイル開発で見えた共通点として、チームが良い流れで開発をスタートさせたのは例外を除いてスクラムイベントとしてスプリントゼロをしっかり行っているチームでした。
例外のチームというは、同じチームでアジャイル開発のプロジェクトをこなしてきているチームです。
ここでもう皆さんはお気づきだと思いますが、アジャイル開発といっても、人それぞれ理解が異なっていたり、プロジェクトによってカスタマイズしたりもします。
アジャイル開発に対しての理解にばらつきがあるチームというのは統制がとれていません。なので、スプリント毎に決めた目標を達成できず、最終的に期日や品質に影響がでてきます。
スプリントゼロで行うべきこと
スプリントゼロで実際に行うタスク
スプリントゼロで行うタスクの洗い出しと一覧作成
なにがともあれまず最初にしなければならないのが、自分たちが実装をスタートさせるために何が必要なのかを把握することです。
そのためにどのようなタスクが必要なのかを洗い出し一覧にします。
関係者の一覧化と各々の役割の明文化
プロジェクトを進める上で多くのステークホルダーが参画すると思います。
多ければ多いほど複雑性が増し、責任の所在不明となり情報が錯綜したり決定スピードの遅延などにつながります。
そこでプロジェクトに登場するステークホルダーは全員洗い出して置くことと、それぞれの役割は明文化して共通認識をもてるようにしておきます。
スクラムイベントに対する日程調整
アジャイル開発はスクラムイベントに沿って開発を進めます。(他のフレームワークもあります。)
スクラムイベントには適切なステークホルダーの参加が必須です。
そのため関係者のスケジュールを事前に押さえておくことが大切となります。ですのでスケジュール調整を行います。
「完了の定義」の明文化
スプリント1を開始して最初に、スプリントプランニングがあります。
その際にスプリント内でどの開発タスクに着手し完了させるかを決めます。そのときに開発スコープだけでなく、実装とテストレベルでどこまでそのタスクが終わっていれば完了といえるのかを明文化しておきます。
スプリントゼロの流れとタスクの進め方
フェーズ1:スプリントゼロで行うタスクの洗い出しと一覧作成
- プロジェクト関係者一覧作成
- スクラムイベントに伴うスケジュール調整
- プロジェクトの目的やビジネス理解
- 開発する要件やシステムデザインの理解
- 使用するツールの選定
- ツールの運用ルール、実装ルール
- テストで使用する端末やスコープの選定
- 開発環境の構築
- アジャイル開発の運用ルール
という感じで具体的に何をすべきかまずは洗い出します。僕たちがこのときによく使うのはWBSです。アジャイル開発ではあまり使わないイメージですが、自分たちのどの準備がいつくらいに完了するかが割と明確になって動きやすいです。
フェーズ2:フェーズ1で洗い出したタスクに着手していく
プロジェクトによって洗い出すべきタスクは異なると思いますが、
ここではスプリントゼロでこれだけは必ず押さえた方が良い!というタスクをピックアップしました!
- 関係者の一覧化と各々の役割の明文化
〇〇さん、プロダクトオーナー、仕様に対して責任をもち最終決定する人
といった感じで誰がどの役割でどういった責任をもつかをドキュメントに残します。
こういった内容はキックオフミーティングなどで共有すればいいので、パワポやGoogleスライドにサクッと箇条書きにしているといいと思います。
- スクラムイベントに対する日程調整
関係者の役割が明確になれば、どの人にどのスクラムイベントに参加してもらうかがわかるので、それを元に日程と参加者を各々のスクラムイベントに対して調整していきます。
- 「完了の定義」の明文化
そこまでする必要ないと思うくらい詳細に「完了の定義」を決めます。
実装が完了し不具合の深刻度(これもチーム内で事前に決めておく必要があります)が「高が0個、中が5個以下であれば完了」といった感じです。
スプリントゼロで行うタスクの具体例
フェーズ1:スプリントゼロで行うタスクの洗い出しと一覧作成(所要:約2時間 )
添付のイメージをご覧ください。
これが実際にスプリントゼロで洗い出したタスクになります。
このようにスプリントゼロで行うべきタスクを一覧化し、それぞれのタスクを誰が行うか、どれくらい工数がかかりそうかということを明確化かつ可視化させています。
フェーズ2:フェーズ1で洗い出したタスクに着手していく(所要:約3 ~ 4日)
- 関係者の一覧化と各々の役割の明文化(30分)
パワーポイント一枚にどの役割の人がどの組織に属しているかを簡単なアイコンと役割名で記しています。
ペライチで簡易的ではありますが、効果はバツグンです。
- スクラムイベントに対する日程調整(所要:30分)
これもパワーポイントの1スライドに各スクラムイベントを記載して、それぞれに要する時間も記載しています。
これも簡単ではありますが、どの曜日にどのイベントをどれくらいの時間行うかがパッとわかると調整もスピーディーです。
- 「完了の定義」の明文化(所要:2時間)
シートが細かくてわかりづらいかもしれませんが、1枚目の画像はGoogleスプレッドシートで作成されたスプリントプランニングシートです。
各ストーリーに対して実装とテストを含めたタスクを記載しています。
これによってそれぞれのストーリーに対しての完了がある程度明確になります。
2枚目の画像にあるTEST REPORTのシートです。
これはスプリント内の不具合をレポートするためのシートになりますが、「完了の定義」も詳細に記載されています。
例)以下の3つを満たしているものを完了の定義とする
- テスト環境で実装とテストが完了している。
- テスト環境での不具合が0個であること。
(深刻度 高・中・小を決めて、高が0個、中が5個以下なら完了というケースもあります。) - ユーザーストーリーに則ったデモンストレーションができる。
これらによって、毎スプリントちゃんと完了できたかをメンバー全員が確認できるようになっています。
- その他の成功例
上記で紹介した具体例以外にも、スプリントゼロで行ってよかったことがあるのでご紹介したいと思います。
必須ではないけれどこの一手間でスプリント1がよりスムーズに進行できると思います。
「アジャイル・スクラム開発のプチ研修(所要:約3時間)」
スプリントゼロはなぜ必要か?に記載したように、アジャイル・スクラム開発と言っても人それぞれ解釈が異なる場合が多々あります。
それは経験者、未経験者関係ありません。なので、僕たちは社内で標準のアジャイル開発を定義しました。
それを開発チームに使用してもらって、スプリントゼロの中でチーム全員で見直すということをやりました。
そうすることで経験者はアジャイル開発を見直すことができ、未経験者は覚えることができます。また、事前に決めるべき運用も話し合う機会となり、チーム内での決めるべきルールが明確になり、早い段階からスムーズなアジャイル開発が実現できました。
「顔写真付き関係者一覧表の作成(所要:約30分)」
僕たちのようにオフショアで開発を進めていると、ベトナムと日本といったかんじで2カ国以上の国籍となり、特に開発パートナーやクライアントとの折衝があまりない開発メンバーなどは、関係者を知る機会が少なかったり、そもそもそのあたりに興味をもたないということがあります。
そこで、ただ名前を記載し責任を明示するだけでなく、顔写真をつけて、それに加えて趣味などもいれたときに、いざスプリント1が始まったときにいつもよりもコミュニケーションがスムーズかつ活発化しました。
結果的にアジャイル開発チーム全体のワンチーム感が早い段階で構築できた気がします。
【まとめ】スプリントゼロとは?
- スプリントゼロには、アジャイルチームが構築された初期段階の立ち上がりをスムーズにするという目的がある
- スプリントゼロには、練度の高いチームに最初から少しでも近づけるよう準備をする為の期間という役割がある
この役割と目的を果たすためには、アジャイル開発を開始するためには何が必要なのか?という点に注意して事前準備やアジャイル・スクラム開発そのものの理解とチーム内の共通認識を行っていくことが重要です。
Enlytについて
株式会社Enlytはベトナムに開発拠点SupremeTechを持ち、Enlytではこれまで50以上の開発プロジェクトを行ってきました。( 株式会社Enlytの実績は開発実績ページから)ベトナムと日本のグローバルなチームで、数多くのプロジェクトを成功に導いてきました。
アジャイル開発をご検討の際は、株式会社Enlytまでご気軽にお問合せください!お客様の納得のいくまで、共に開発させていただき、アイデアを最高のかたちにサービス化いたします。
下記ボタンより気軽にお問合せください!