アジャイル開発 – スクラム

今回は、アジャイル開発の1つである「スクラム」についてまとめていきたいと思います。

スクラムとは

スクラムとは、反復増加型ソフトウェア開発チームに適用するプロジェクト管理フレームワークです。

スクラムが追い求める価値
  • 確約:約束したことを確実に実現すること
  • 専念:確約したことを実現に専念すること
  • 正直:何かが自分に不利しても隠さないこと
  • 尊重:自分と他の人を尊重すること
  • 勇気:チームメンバーは自分が正しいことができるるようにメンバー間の悩みやチャレンジを通して作業ができる勇気

スクラムの特徴

スクラムの特徴を以下に示します。

  • 反復増加型のソフトウェア開発プロジェクトを管理するためのフレームワークです。
  • 開発技術を必要とする活動はありません。
  • 反復期間内に開発する機能は、反復ごとに決定されます。
  • 反復期間中、チームは外部(顧客やビジネスサイド)からの干渉を全く受けません。
  • プロジェクト管理の権限はチームに委譲され、開発手法や利用技術もチームが決定します。

スクラムの重要な概念

スクラムは5〜9人で構成される小規模の多機能ツームが製品開発を完成させるためにスプリント(sprint)と呼ばれる業務周期を繰り返します。

このチームにはプロダクトオーナー(PO)が管理する「やるべきタスクリスト(product backlog)」から「スプリント内にやるべきタスク(sprint backlog)」を各メンバーが決めて完成し、スプリント毎に結果物(increment)を出します。

チームが成果を出せるように補助する役割をスクラムマスター(scrum master)と呼びますが、スクラムマスターはチームが課題を完成・解決できるように必要な資源を支援したり、障害要素を削ったりしながらプレセスを導きます。

  • スクラムチーム
    • 開発チームは実際に動作するソフトウェアを開発します。
      (リリースの可否はスプリントレビューで判断されます。リリース判断可能な状態にすることに責任を持ちます)
    • 開発プロセスや開発手法の新たな採用や、改善の方法を決定します。
    • 開発チームの人数は7±2人が望ましいとされています。

  • プロダクトオーナ
    • プロダクトタスクリスト(product backlog)の管理、コントロールできる権限を持つ人で、一人だけです。
    • 開発チームに対して次に開発する機能を示し、開発の動機づけを行います。
    • プロダクトバックログを優先順位順に並べ(並び替え)ます。

  • スクラムマスター
    • 開発チームがスクラムイベントを理解し、スプリントを円滑に回すことに責任を持ちます。
    • プロダクトオーナーに対して開発チームの現状を説明し理解を得ます。
    • ステークホルダーに開発プロセスの実態や狙いを説明し理解を得ます。
    • スプリントバックログの開発に寄与しない活動がないか監督し改善に寄与します。

  • スプリント(sprint)
    • 課題が進まれる周期のことで、1〜4週間で構成されます。一つのスプリントが終わったらすぐ次のスプリントが始まります。
    • スプリントを進んでいる間は期間、課題の加減はできないです。

  • 製品バックログ(product backlog)
    • 製品完成に必要な特性、機能、改善点など、製品の全ての要求を優先順位で書いたリストのことです。
    • 確定リストではなく、環境などの変化によってアップデートされます。
    • 優先順位が高いバックログは低いバックログよりもっと詳細に記述します。

  • スプリントバックログ(sprint backlog)
    • 一つのスプリントの間、完了する課題リストのことです。

スクラムのプロセス
富士通ソフトウェアテクノロジーズ

スクラムのプロセスは、スプリントと呼ばれる反復期間を繰り返すことで増加的に機能を開発します。
スプリントでは、以下に挙げるスクラムイベントが実施されます。

  1. スプリントプランニング:
    • プロダクトオーナーと開発チームは、全体のプロダクトバックログ(実装予定機能の一覧)の中からスプリント(反復期間)で実装する機能を決定します。
    • 選定された機能一覧をスプリントバックログといいます。
  2. デイリースクラム:
    • 決まった時刻に開発チームは短時間のミーティングを実施します。
    • 開発の進行状況や課題などを共有し一日の仕事の進め方を決定します。
  3. スプリントレビュー:
    • スプリントの最後にステークホルダーに対して開発した機能をデモンストレーションします。ステークホルダーからフィードバックを受けます。
    • レビューの結果がOKの機能はリリースされますが、NGの場合には次回以降のスプリントにリリースは持ち越されます。
  4. スプリントレトロスペクティブ:
    • スプリントレビューの終了後、スクラムチームは今回のスプリントのふりかえりを実施します。
    • レトロスペクティブとは「ふりかえり」のことです。次のスプリントの改善計画を行います。

スクラムのメリット
  • 短い期間で、最大限の成果をあげる
    • スクラム開発では、優先順位の高い機能から順に開発を進めていきます。
    • そのため短い期間であっても、あげられる成果が非常に高いのです。

  • 作業の工数見積もりが正確になる
    • ウォーターフォール開発では、「プロジェクトの工数見積もりが上手くいかない」ということがデメリットとしてよく挙げられてきました。
    • それもそのはずで、ウォーターフォール開発ではプロジェクトの最序盤の段階で数か月・数年も先のことを見積もりするため、そもそも難易度が極端に高いのです。スクラム開発では短い期間ごとに開発を区切り、その単位で計画を立てていくため、作業の工数見積もりは比較的正確になります。人は、数週間先くらいのことであれば予想しやすいからです。

  • チーム内で発生している問題の検知が早い
    • スクラム開発では、日々ミーティングを行います。その中で、「困っていること」や「分からないこと」を素直に話すことが推奨されているのです。
    • そのため、チーム内で問題が発生している場合でもすぐに検知することが出来ます。

参考

jeechs job

https://www.fujitsu.com/jp/group/fst/about/resources/featurestories/about-agile-02.html

https://hrbulletin.net/organizational-culture/%EC%95%A0%EC%9E%90%EC%9D%BC-%EB%B0%A9%EB%B2%95%EB%A1%A0%E2%91%A0-%EC%8A%A4%ED%81%AC%EB%9F%BCscrum/

コメントを残す