ここでは、アジャイル開発とスクラムを歴史から紐解き、概要・関係性を知ることで、今後さらに知識を深めるべきか判断できるでしょう。
また、アジャイル開発やスクラムをもっと深く知りたい際に読むべき「おすすめの本」もご紹介します。
関連記事:アジャイル開発とは?簡単な解説と導入のメリットまで
アジャイル開発とスクラムは違う?その他の手法との関係性は?
アジャイル開発を実現するための手法・フレームワークとして、スクラムやXP、リーンがあります。
アジャイルコーチのエキスパート、川口恭介さんのスライドをお借りして関係性を確認してみましょう。
(引用:https://speakerdeck.com/kawaguti/kanban-and-scrum)
各手法は根底に同じ思想を持ちます。
その思想とは
『プロジェクトは不確実で、先は見えない。小さく作り小さくリリースし、臨機応変に軌道修正する。』
というようなものです。
同じ思想を持つ「手法」であるため、同じような行為に違う名前がついている事があります。
呼び名は何にしろ「顧客に価値を提供する」というゴールは変わりません。
アジャイル開発とは
アジャイル開発が誕生したのは2001年。
ケントベックをはじめ、開発プロセスについて試行錯誤していた17人のプロフェッショナルが議論を重ね、最終的にアジャイルソフトウェア開発宣言を示したのが始まりです。
アジャイルソフトウェア開発宣言
また、アジャイル宣言をもう少し詳しく説明した『アジャイル宣言の背後にある原則』が定義されています。
(引用:https://agilemanifesto.org/iso/ja/principles.html)
この原則に従うためにあるのが、イテレーションやカンバン、バーンダウン、ふりかえりなどです。
「イテレーション」(2週間〜1ヶ月程度のマイルストン)で開発し、
動く状態を作りテストしてリリース、
イテレーション中の開発が計画通りか否かを「バーンダウンチャート」を用いて生産性を図り、
イテレーションの中での改善点や続けるべき良かったことを「ふりかえり」、
次のイテレーションに進む、を繰り返します。
アジャイル開発をより詳しく知るには「アジャイルサムライ」がおすすめです。
参考書籍:アジャイルサムライ――達人開発者への道
スクラムとは
スクラムが誕生したのは1990年代。
ジェフ・サザーランドとケン・シュエイバーによって作られましたが、基となる考えがあります。
スクラムは、野中郁次郎氏と竹内弘高氏による論文「The New New Product Development Game」(HarvardBusinessReview ) の内容をソフトウェア開発に応用したものです。
スクラムという名前もこの論文から取られています。
アジャイル開発が2001年、という歴史を見ると体系がわかりますね。
パターンやThe New New Product Development Gameから、XP、スクラムが生まれ、アジャイル開発としてまとめられました。
スクラムには、詳しいガイドラインが用意されていて、改訂もされています。
参照:スクラムガイド
スクラムの特徴
スクラムを学ぶ=アジャイル開発なので、ここではスクラムの概要や用語を確認しましょう。
スクラムの全体像は非常にシンプルです。
(引用:https://speakerdeck.com/kawaguti/kanban-and-scrum?slide=35)
図内の各用語を簡単に解説します。
■役割
・プロダクトオーナー
プロダクト全体の責任者。
開発対象をリスティングし、取捨選択や優先順位を付けます。
・スクラムマスター
チームのリーダー。
スクラムの手法の導入を進めたり、チームが動きやすいように取り計らい、プロダクトオーナーとチームを支援します。
・チーム
プロダクトに関わる人。
開発者、デザイナー、テスター、スクラムマスター、プロダクトオーナーなどをチームとして考えます。
■会議体
・スプリント計画
2週間から1ヶ月程度の小さなマイルストンを「スプリント」と呼び、
スプリントを繰り返しながら、開発を進めます。
各スプリントで何をどこまで開発するかをチームで見積もり、計画することを「スプリント計画」と呼びます。
スプリント計画は、プロジェクトの最初に全て計画するものではなく、各スプリントの終わりに、次回スプリント計画を行います。
・デイリースクラム
15分ほどの朝会や夕会を指します。
チームが同じ時間、同じ時間に集合し、簡単にデイリーの計画や報告・相談を行い、チームで共有します。
・スプリントレビュー
スプリントで計画した成果物が正しく動作するか、完了しているかを確認・レビューすることを言います。
■生成物
・プロダクトバックログ
プロダクトの開発に必要な開発対象を、できるだけ細かい単位にしたものです。
少し違いますが、機能一覧のようなものをイメージすると良いでしょう。
スクラムチームはgithubのIssueなど、ツールを使いバックログを整理します。
従来ありがちなエクセルの機能一覧のようなスタイルでは運用しないことが多いです。
・スプリントバックログ
スプリント内に、優先順位が付いたバックログ(開発対象)がリストアップされたものをいいます。
・バーンダウンチャート
バックログは、プロジェクトの最初やスプリント計画時に、相対見積もりをしています。
相対見積もりとは、従来からある人日や人時計算をせず、バックログが他のバックログに対して大きいか、小さいかをフィボナッチ数列(1,3,5,8・・・)で、「規模」を見積もる手法です。
スプリント内でどれだけのバックログが消化できたか、記録してグラフにします。
見積もり通り、スプリント内で消化できているか、できている場合は次回スプリントでも、同じ規模のバックログが消化可能だと予測できます。
予定どおりできていない場合、見積もりの誤りか、チームの生産性の問題かなどを知ることができます。
関係性は下図のようになります。
(引用:https://www.ryuzee.com/contents/blog/7124)
さらに深く知りたい方は、下記書籍をおすすめします。
参考書籍:SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発
スクラム現場ガイド スクラムを始めてみたけどうまくいかない時に読む本(リフロー版)
まとめ
ただ言葉を知るよりも、経緯を知った方が理解度が深まったのではないでしょうか。
全体像からはじめ、興味があるものを深堀りしてみると良いですね。