CodeLabCodeLabIT業界で働くor興味がある皆様に、システム開発・プログラミングに役立つ情報を沖縄から発信中・・・。BOOKの基礎編を読んだ時に参考になった考え方や用語について説明したいと思います。これからScrumを初めてみようと思っている方がいれば参考にしてもらえればと思います。最後にアジャイル開発とは関係者は目的の達成の為にお互いに協力し合いながら進める。利用者の反応や関係者からのフィードバックを継続的に得ながら、計画を調整する。一度にまとめてではなく、少しずつ作る。実際に出来上がったものが求めているものと合っているかを頻繁に確認する。事前に全てを正確に予測し、計画することはできない。要求を常に順番に並べ替え、その順にプロダクトをつくることで成果を最大化する。Scrumでは実現されている「価値」や「リスク」や「必要性」を基準にする。固定の短い時間に区切って、作業を進める。(=タイムボックス)現在の状況や問題点を常に明らかにする。(=透明性)定期的に進捗状況や作っているプロダクトが正しいのか、仕事の進め方に問題がないかどうかを確認する。(=検査)やり方に問題があったり、もっとうまくできる方法があれば、やり方そのものを変える。(=適応)上記を継続的に実施し、プロジェクトを進める。Scrumでは仕事の進め方にフォーカスした最低限のルールだけを定めている。→ルールをどのように実際に適用していくかは自分たちで考える。Scrumで決められていること要求を並べ替える成果物1:プロダクトバックログ実現したい要求をリストにして並び替える。常にメンテナンスして最新に保つ。順番は、その要求が実現されたときに得られる価値、リスク、必要性等によって決定される。一度作って順番に並び替えたら完成ではない。プロダクトをつくっている間は常に修正され、最新に保たなければならない。書き方は特に決まりはないが、ユーザストーリーと呼ばれる形式で書くことが一般的。プロダクトの責任者ロール1:プロダクトオーナープロダクトの結果責任を取る。プロダクトバックログの管理者で並び順の最終決定権限を持つ。プロジェクトに必ず一人必要。開発チームを活用して、プロダクトの価値を最大化する。開発チームに相談できるが、干渉はできない。プロダクトオーナーがやることプロダクトのビジョンを明らかにし、周りと共有する。リリース計画を定める。顧客、プロダクトの利用者や経営者などのプロジェクト関係者と、プロダクトバックログの項目の内容を確認したり、つくる順番や実現時期を相談したりする。既存のプロダクトバックログの項目の内容を最新の状態に更新する。プロダクトバックログの項目の内容を関係者が理解できるように説明する。作られたプロダクトが要求に合っているかどうか検査する。動作するプロダクトを開発するロール2:開発チームリリース判断可能なプロダクトを作る。3人〜9人で構成する。全員揃えばプロダクトを作れる。開発チームが3人未満の場合お互いの相互作用が少なかったり、個人のスキルに依存する場合が多くなり、開発チームとして活動した効果が出にくくなる。開発チームが10人以上の場合コミュニケーションコストが増えることによって開発チームのスピードが落ちる。プロダクトを作る為に必要な全ての作業ができなければならない。機能横断的なチームであること開発チーム内では年齢や役職などによる上下関係はない。開発チーム内での仕事の進め方は、開発チームのメンバーの合意のもとに決められ、外部から仕事の進め方を指示されることがあってはならない。開発チーム全体で責任を持って作業を進める。(=自己組織化されたチーム)開発チーム主体で作業を進めることで、開発チームの能力を継続的に向上させる。短く区切ってくりかえすスプリントスプリント期間は固定する。スプリント期間が変動してはいけない。テスト等のプロダクトのリリース判断に必要な全てのことを行います。スプリントの最終日に作業が残っていても、スプリントは終了し、期間は延長しない。スプリント期間は、プロダクトの規模や開発チームの人数や成熟度、ビジネスの状況等を踏まえて決定する。短ければ1週間、長くて4週間、週単位で設定されることが多い。内容どのプロダクトバックログの項目を開発するのかを検討し、内容を確認する。開発する量は過去のスプリントの実績と今後の予測を参考に決定する。この過去の実績のことをベロシティと呼ぶプロダクトバックログの順位が上のものから順に、今回のスプリントで開発する対象として検討を行う。計画が終了したらすぐに開発を行えるように内容を事前に詳細化しておく必要がある。受け入れ基準を用意することもある。第一部で検討した内容を踏まえて今回のスプリントの目標を簡潔にまとめる。第一部で選択したプロダクトバックログの項目を完了させる為に、必要な全ての作業を洗い出す。タスクの一覧=スプリントバックログ=開発チームの作業計画スプリント期間中も自由にタスクを追加したり削除したりすることができる。個々のタスクは1日以下の単位とする。成果物2:スプリントバックログプロダクトバックログを具体的なタスクに分割する。タスクは後から増えることもある。タスクを洗い出した結果、開発チームがスプリント中にタスクを完了できないと判断した場合は、プロダクトオーナーと相談し、選択したプロダクトバックログの項目の一部を外したり、実装の方式を検討し直すことによって、作業量を調整する。開発チームはスプリント計画で合意した内容を完了させることについて全力を尽くす必要はあるものの、計画したことを全て完了させることを約束している訳ではない。?全ての完了を約束してしまうと、見積もりが外れたり、難易度が高かったり、不足の事態が発生した場合に、開発チームが長時間残業したり、必要な作業を省いてしまい、その結果、プロダクトに様々な問題が発生してしまうため。スプリントバックログの項目の担当を特定の人が決めることはない。スプリント計画会議の時点で、全ての項目の担当を決めることもない。実際に着手するときに、作業する人自身がスプリントバックログの項目を選択するようにする。リリース判断可能とは成果物3:リリース判断可能なプロダクト開発チームはリリース判断可能なプロダクトを作る。スプリント単位でリリース判断可能なプロダクトを作ることが求められる。プロダクトオーナーと開発チームが「リリース判断可能」の指す内容について共通の基準を持つ必要がある。(=完了の定義)開発チームは、この定義を満たしたプロダクトを作らなければならない。完了の定義は、品質基準と言い換えることもできる。途中で定義の追加はできるが、削除すると要求される品質を達成できなくなるのでさけた方がよい。完了の定義によって、何をもってリリース判断可能かを定める。途中での縮小は避ける。毎日状況を確認する会議体2:デイリースクラム開発チームの状況を毎日確認する。スプリント期間中、開発チームは毎日、同じ場所、同じ時間に状況を確認する為の会議をする。15分間のタイムボックスで行われ、延長できない。前回のデイリースクラムからやったこと次回のデイリースクラムまでにやること困っていることスプリントがゴールに向かって進んでいるか、作業の進捗はどうなっているか、メンバー間の協力が必要なことがないか等を確認する。開発チームのための会議であり、特定の誰かに向けての報告会議ではない。問題解決の場ではない。問題を報告した場合は、デイリースクラム終了後に改めて、問題解決に必要な人を集めた別の会議を設定する。デイリースクラムの結果を踏まえて、開発チームはスプリントの残り時間でどのように作業を進めるかについて、プロダクトオーナーやスクラムマスターに報告できるようにしておく。開発チームの成果物をプロダクトオーナーが確認する。スプリントの最後にプロダクトオーナーがプロダクトを確認する機会を設定する。開発チームがスプリント中に作り終わったプロダクトバックログの項目を確認する。開発チームは確認用の環境等を用意して、作ったものを見ながら確認できるようにする。実際に操作しながら説明を行う。プロダクトバックログの項目が依頼した通りのものであれば作業完了と判断する。依頼したものと異なる場合は、作業は完了していないものとし、プロダクトバックログに戻す。スプリントごとにプロダクトが要求通りに作られているかを検査することで、最後にまとめて確認して多くの手戻りが出たりすることを避ける。スプリントレビューで確認するのはあくまでも実際に動作するプロダクトである。スプリントレビューで実施すること開発チームが完了できなかったプロダクトバックログの項目について説明する。プロダクトオーナーがプロダクトの状況やビジネスの環境について説明する。プロダクトバックログに追加すべき項目の有無について議論する。プロジェクトを進めるうえで問題となっている事項について関係者で議論する。現在の進捗を踏まえて、リリース日や完了日を予測する。一ヶ月スプリントであれば4時間、2週間スプリントであれば2時間実施するもっとうまくできるはず会議体4:スプリントレトロスペクティブ(振り返り)プロセスやツール等の観点で今回のスプリントを検査する。うまくいったこと、今後改善すべき点を整理する。今後のアクションプランをつくる。直近のスプリントでのプロダクトの開発に関わる活動において問題がなかったか、もっと成果を出す為にできることがないか検査を行い、次回のスプリント以降のアクションプランを決める。効果がありそうな項目から取り組んで、より成果が出せるように自分たちの仕事のやり方を変える。一ヶ月スプリントであれば4時間、2週間スプリントであれば2時間スプリントの期間に関係なく毎週レトロスペクティブを実施する例もある。縁の下の力持ちロール3:スクラムマスターこのプロセスがうまくまわるようにする。