基本情報技術者(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段階で解けます。次回は工程管理の計算で、アローダイアグラムを実際に手で解きます。

生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部