基本情報技術者(FE)対策
アジャイル開発
変わることを前提に置く
前回のウォーターフォールは、要件が固まっている前提で立てる計画でした。アジャイル開発はその前提を捨てます。要件は途中で変わるものだと認め、短い期間で動くソフトウェアを作っては見せ、返ってきた意見を受けて次を決めます。試験で問われるのは思想そのものではなく、スクラムの用語を正しい引き出しから取り出せるかです。
役割・作成物・場を分けて覚える
スクラムの用語は、人の役割、作られる物、集まる場の3つに分かれます。混ぜて覚えると、選択肢で入れ替えられたときに崩れます。
| 分類 | 用語 | 中身 |
|---|---|---|
| 役割 | プロダクトオーナー | 何を作るかの優先順位を決め、成果に責任を持つ |
| 役割 | スクラムマスター | 進め方を支え、チームの妨げを取り除く。指示役ではない |
| 役割 | 開発チーム | 実際に作る。上下関係を作らず自分たちで割り振る |
| 作成物 | プロダクトバックログ | やりたいこと全部を優先順位順に並べた一覧 |
| 作成物 | スプリントバックログ | 今回のスプリントで着手する分を切り出した一覧 |
| 作成物 | インクリメント | そのスプリントで完成した、動く成果 |
| 場 | スプリントプランニング | スプリントの初めに、今回やる分を決める |
| 場 | デイリースクラム | 毎日15分ほど、進み具合と妨げを共有する |
| 場 | スプリントレビュー | 出来た物を関係者に見せて評価をもらう |
| 場 | レトロスペクティブ | 進め方そのものを振り返り、次回の改善を決める |
よく狙われるのは最後の2つです。作った物を見るのがレビュー、進め方を見るのがレトロスペクティブです。また、スクラムマスターを管理者や指示役と説明する選択肢は誤りだと判断できます。
ベロシティは計算で使う
スプリントは1週間から4週間の固定期間で、途中で長さを変えません。各作業の大きさはストーリーポイントという相対値で見積もり、1スプリントで消化できたポイント数をベロシティと呼びます。ここは数字を入れて問われます。
残りのプロダクトバックログが120ポイント、直近のベロシティが20ポイント、スプリントの長さが2週間だとします。
- 必要なスプリント数 = 120 ÷ 20 = 6スプリント
- 必要な期間 = 6 × 2週間 = 12週間
ベロシティが15に落ちれば 120 ÷ 15 = 8スプリントで16週間です。期間を12週間に固定したいなら、増やすのは人ではなく、削るのは作る量のほうだという判断になります。これが前回のタイムボックスの考え方です。
XPの主なプラクティス
XP(エクストリームプログラミング)からも出ます。名前と中身の対応だけ押さえてください。
- ペアプログラミング — 2人1組で1つのコードを書き、その場でレビューを兼ねる
- テスト駆動開発 — テストを先に書き、それを通すコードを書く
- リファクタリング — 外から見た振る舞いを変えずに内部構造を整える
- 継続的インテグレーション — 変更を頻繁に統合し、その都度ビルドとテストを自動で回す
リファクタリングは「機能を追加すること」ではありません。振る舞いを変えないという一点が定義です。
押さえどころ
アジャイルの問題は、役割・作成物・場のどの引き出しの語かをまず判定し、次に似た2つのうちどちらかを決める、という2段階で解けます。次回は工程管理の計算で、アローダイアグラムを実際に手で解きます。