問題 No.6734
あるソフトウェア開発チームでは、顧客の要件変更が頻繁に発生することに対応するため、アジャイル開発手法の一つであるXP(エクストリームプログラミング)を導入した。このチームの実際の開発スタイルとして、最も適切なものはどれか。
【正解の解説】
2人1組でプログラミング作業を行い、一人がコードを書き、もう一人がリアルタイムでレビューと検証を行う。
これは料理における「ダブルシェフ体制」のようなものです。1人が実際にフライパンを振って料理(コーディング)し、もう1人が味見をしたり次に使う材料を準備したりしながらリアルタイムでチェックします。お互いに相談しながら進めるため、うっかりミスを防ぎ、その場で知識の共有もできるため、変化の激しい開発現場で非常に高い効果を発揮します。
スポンサーリンク
【その他の選択肢の解説】
開発工程を計画、設計、プログラミング、テストの4つに明確に分割し、フェーズごとに担当チームを完全に独立させる。
ウォータフォール開発は、建築工事のように上流工程から順番にガチガチに進める手法です。XPは変化を歓迎するアジャイル開発の代表格であり、フェーズを完全に分断して担当を固定するやり方は、頻繁な要件変更に対応しなければならない今回のチームの目的とは真逆のスタイルになってしまいます。
あらかじめ決められた仕様書や設計書に厳密に従い、予期せぬ仕様変更が生じた場合は全体のスケジュールを後ろ倒しする。
あらかじめ決めた計画や仕様を絶対のルールとして守るため、途中で顧客から「ここを変えてほしい」と言われたときにスケジュール全体が後ろ倒しになってしまいます。XPは「変化はつきもの」という前提に立ち、短いサイクルで開発と修正を繰り返すため、このような硬直的なやり方は採用しません。
システム全体の膨大な設計ドキュメントを最初に完成させ、その内容について開発者全員で大規模な合意形成を図る。
最初に分厚い設計書を完成させるやり方は、まるで一度作り始めたら途中で変更できないコンクリートの建物のようです。XPでは「動くソフトウェアを動かしながら育てる」ことを重視するため、最初から完璧なドキュメントを作ることに時間と労力をかけず、実際のコードを通じて素早く対話と修正を繰り返します。