「Scrum Boot Camp」

Scrum Boot Camp

スクラム開発を仕事で導入しているものの、うまく進められておらず、改めて勉強しようかなと。 改めて、なので、網羅的になってないのはすみません。

さいしょにまとめ

Scrum開発とは何か、マンガによるストーリーを交えながら解説してくれるもので、初めての人にもわかりやすくまとめられている。 といっても、実践はまた別なんですよね。

アジャイル開発とは、スクラム開発とは

まずは基本的なところから復習して正しく抑えなくてはならない

アジャイル開発とは

事前にすべてを予測し、計画することはできないという前提のもとに、以下のような進め方をする開発の事を言う。

  • 関係者は目的達成のために協力しながらすすめる
  • 関係者からのフィードバックを継続的に得ながら、計画を調整する
  • 少しずつ作り、できたものが求められているものとあっているか確認する

ちなみに、Agileという英単語は、機敏な、敏捷なという意味らしいです。とてもイメージに合っていてわかりやすいです。

eow.alc.co.jp

アジャイル開発では、おおよその全体像を明らかにした上で、大まかにコストを決めて、その範囲内で大事なものから順番に開発していくので、ベストエフォート型とも言えるかと思います。 ベストエフォート型なので、例えば1年後のリリースに向けてどこまで開発できるか、という事をコミットするのが非常に難しくなる。特に大きなプロジェクトの一部だと、自分たちの都合だけでスケジュールやコストを決められないのにも関わらず、内容をコミットしなければならないというジレンマが悩み。そうするとどうしてもディフェンシブな見積もりをすることになるのかな。あるいは、どこまでできるかは優先度に従って流動的である、という事自体を前提に、ボトムラインをコミットすることになるのかなと。

Scrumとは

アジャイル開発手法の一つで、作業と会議と成果物を以下のように定める

  • 要求を実現したい順に並べ、成果を最大化する
  • タイムボックス:固定の時間に区切って作業する
  • 透明性:現在の状況や問題点を常に明らかにする
  • 検査:開発しているものが正しいのか、進め方に問題がないのかを定期的にチェック
  • 適応:もっとうまくできる方法があれば、やり方そのものを変える

コレを基本に、自分たちの環境でどのように適用できるかをアジャストするように考え、調整していくスタイル。 実際に動かしながら考えたり変えたりするのって難しくて、特にプレーイングリーダーとかだとどうしても、この辺が疎かになってしまうのが悩み。

プロダクトオーナー

  • プロダクトの結果責任を取る
  • バックログの管理者で、並び順の決定権を持つ
  • プロジェクトに一人
  • プロダクトの価値を最大化するのが目的
  • 開発チームに干渉できない

行うこと

  1. プロダクトのビジョンを明らかにし、共有する
  2. プロダクトバックログを常に最新に保つ
  3. プロダクトバックログの項目の内容をメンバーが理解できるようにする
  4. リソース計画を定める
  5. 予算を管理する
  6. 作る順番と時期をステークホルダーと相談する
  7. 作られたものが要求にあっているかどうかを検査する

非常に役割が多い。 1-3, 7は企画的な役割だし、4-5はマネージャ的だし、6は開発のリーダー的役割。 POがしっかり決まって主体的に仕事をするようなチームだとすごくうまく回りそうな気がするんだけど、僕は運が悪いのかそんなものを見たことがない。

開発チーム

  • プロダクトを作る
  • 全員揃えれば作れる

つまり、本来はUXチームとかも含めるべきなんですね。大きな組織だとこの辺がむずい。UXはいろんなプロジェクトに少しずつ顔を出して組織としての統一性をもたせるような仕事の仕方になるので。専任になるといいんだけどね。

スクラムマスター

  • プロセスがうまくまわるようにする
  • 妨害の排除
  • 支援と奉仕
  • 教育、ファシリテート、コーチ

行うこと

  • バックログの管理方法を考える
  • 関係者にアジャイル開発について説明
  • スプリントイベントの進行
  • POと開発チームの会話を促す
  • 妨害リストの管理
  • ...など

これも役割が多いので、これは(開発をしない)専任の人をひとり作るのが良い。もし開発と兼任するのであれば、その人が開発にコミットできる時間を最初から減らしておくか、分業するのが良いかもしれない。実験してみたいところ。

デイリースクラムで何を話すか

一般的には

  • 前回からやったこと
  • 次回までにやること
  • 困っていること となっているが、結局ただの報告会になってしまう。

デイリースクラムの目的は、進捗報告会ではなく、スプリントのゴールを守るための検査である」 というのはちょっと忘れがちだなと。スクラムマスターの役割はプロセスを効率化することなので、このあたりで目を光らせないといけない。

あと、妨害リストの管理というものは、ルールを決めてしっかりやっていなかったけど、すごく重要だなと。 技術的なものと、プロセス的なものと、あるいはそれ以外にもいくつかありそうだけど、上司に見せて報告しやすくしておくのも良さそう。

ということで、基本部分と改めて気になったところだけだけど。

シリーズものもあるし、他にも読んでみたい。