第3章 アジャイルの原則
- イテレーティブな開発
- 間違ったあとにならないと正解がわからないであろうこと、失敗してからではないとうまくできないであろうことを認めている
- 計画された手戻り戦略
- プロトタイプを作り、それを修正し、もっと良いものを作り、適切な版へとつながる
- 欠点として、不確定要素が存在するせいで、この先どれだけ改善をするのかを事前に計画できない
- インクリメンタルな開発
- 全部作る前に少し作ってみろ
- プロダクトを小さなな部品に分解し、その一部を構築して実際の環境でどのように動くかを学習し、その結果に基づいて適応し、続きを構築する
スクラムでは、上記の2つの良いところを利用する。
スクラムでは、スプリントと呼ばれるタイムボックスのかされたイテレーションで適応を繰り返すことで、イテレーティブかつインクリメンタルという考えを実現する。
各スプリント内で、分析、設計、構築、統合、テストを全て一度に行う事が重要。
スプリント1で分析、スプリント2で設計といった具合はスクラムに、ウォーターフォールを重ねるようなもの。
スクラムの核心にあるのは、検査、適応、透明性である。
スクラムでは構築するものだけではなく、構築する方法についても、検査、適応を行う。
これをうまく行うために、透明性に頼る。
透明性とはプロダクトを作り出すために重要な情報は全てプロダクト構築に関わる人が入手できること。
スクラムでは、変化は常に生じると考える。
多くの成果物をジャストインタイムで作り出す。
したがって本来不要になるものは作られない、その結果、たとえ変更が発生しても修正や破棄が必要になるものは遥かにすくない。
そのようにして、変更するコストを平滑化している。
プロダクト開発では、作業者の手持ちよりも作業の手持ちのほうがコストが大きい
- 作業者の手持ち
- 作業する人のキャパシティに余裕がありもっと作業できる状態
- 作業の手持ち
- 実施したいのに何かしらの原因で作業ができない作業
- 例:Bを行うのにAが必要がだが、Aがまだ完了していない
- 実施したいのに何かしらの原因で作業ができない作業
スクラムでは誰かの稼働率を100%にしておくよりも、作業の流れの中でボトルネックを見つけてそのボトルネックを削減することに注力する
ここまでの感想や実際の現場との差異
- 今までは、スプリント1で、要件Aに対する調査、スプリント2で要件Aの実装などとやっていたが、これはスクラムにウォーターフォールを重ねるようなものだったのではないかな
- もしスクラムでやるなら、スプリント内に乗せるアイテムでは、「要件Aの実現」で乗せるべきではないか