アジャイル開発とXPのプラクティス
頻出約 37 分7 用語過去問 6 題
この単元の目標
- アジャイルが短い反復で動くものを積み上げ、途中の要望の変化を取り込む開発の考え方だと説明できる
- XP を、アジャイルの考え方を具体的な習慣の集まりにした手法の一つとして位置付けられる
- テスト駆動開発とリファクタリングを、何を先に作るか・外から見た動作を変えるかで区別できる
用語総表(7 語)
用語
アジャイルは、短い区切りで計画から確認までを何度も回し、動くソフトウェアを少しずつ増やしていく開発の考え方である。
この短い区切りをイテレーションと呼び、毎回その時点で優先度の高い機能から作る。最初にすべての仕様を固めるのではなく、利用者と話しながら作る範囲を見直していく。文書を細かく整えることより、実際に動くものを早く見せて意見をもらうことを重く見る。
たとえ旅行の行程を出発前に分刻みで決めるのではなく、1 日ごとに天気や体調を見て翌日の予定を組み直す旅に近い。
覚え方英語の agile は「身軽な・すばやい」。重い計画書を背負わず、向きを変えやすい身のこなしを思い浮かべる。
出題のポイント
- 出題アジャイルの利点は、途中で仕様や要望が変わっても次の反復の計画に組み込める点にある。工程を一度ずつ順に進めるウォーターフォール型より変化に強い。
- 出題アジャイルは詳しい文書を作り込むより動くソフトウェアを優先し、顧客の新しい要望を早めに製品へ反映する。
ユーザーストーリーは、使う人の立場から「誰として・何をしたいか・それはなぜか」を短い文で書いた、アジャイルの要求の書き方である。
1 つのストーリーはカード 1 枚に収まる程度の短さで書き、細かな条件は作る直前に利用者と話して決める。理由まで書くことで、作り手はその機能が誰のどんな困りごとを解くのかを見失いにくい。ストーリーには優先度を付け、反復ごとに上から順に作る。
たとえ料理店で客が「辛いものが苦手なので、子どもでも食べられる料理がほしい」と頼むようなもの。レシピの細部は厨房と客が話して詰める。
覚え方story = 物語。物語の主人公はいつも利用者で、作り手やシステムは主語にならない。
出題のポイント
- 混同注意ユーザーストーリーは利用者の言葉で目的を伝える短い要求で、画面や処理の細部まで決め切る詳細な仕様書とは役割が違う。
この用語の過去問 1 題 ユーザーストーリー →
XP は、アジャイルの考え方を、日々の開発で守る具体的な習慣 (プラクティス) の集まりとして示した開発手法の一つである。
小さめのチームが短い周期でリリースを重ね、変化する要求に追い付きながらソフトウェアの品質を保つことをめざす。プラクティスには例えばテスト駆動開発やペアプログラミングがあり、どれも良いと分かっている習慣を毎回欠かさず行うものである。
たとえスポーツのチームが、準備運動・声かけ・試合後の振り返りといった基本を毎回欠かさず続けて強くなるやり方に似ている。
覚え方2 文字の略称は、Extreme の X と Programming の P を取ったもの。
出題のポイント
- 出題XP はアジャイルの開発手法の一つで、短い周期で何度もリリースし、変わっていく要求に追い付きながら品質の高いソフトウェアをめざす。
- 混同注意アジャイルは開発の考え方を広く指す呼び名で、XP はその考え方を実践する具体的な手法の一つである。
この用語の過去問 2 題 XP →
エクストリームプログラミングは XP の正式名で、両者は同じ開発手法を指す。
英語では Extreme Programming と書き、良いと分かっている開発習慣を極端なまでに徹底するという意味がこめられている。中身は略称の XP と全く同じなので、どちらの呼び方で出てきても同じ手法として読む。
覚え方extreme は「極端な」。基本の習慣を手加減せずやり切る姿勢が名前になっている。
出題のポイント
- 出題エクストリームプログラミングと XP は正式名と略称の関係で、同じアジャイルの開発手法を表す。
この用語の過去問 1 題 エクストリームプログラミング →
テスト駆動開発は、作る機能のテストを先に書き、そのテストに合格するコードを後から書く開発の進め方である。
先に書いたテストが「何ができれば完成か」を示すので、作る前に仕様がはっきりする。テストを書く、通す、整えるという小さな周期を何度も回し、そのたびにテストで動作を確かめる。英語の略称は TDD で、XP の代表的なプラクティスである。
たとえ家具を組み立てる前に「この棚に本を 30 冊載せても傾かないこと」と合格の基準を決めてから作り始めるようなもの。
覚え方駆動は「動かす力」。テストが先頭に立って開発を引っ張る、と字面から読める。
出題のポイント
- 混同注意テスト駆動開発ではテストを書くのが最初の作業で、作り終えた後にまとめてテストする進め方とは順序が逆になる。
この用語の過去問 1 題 テスト駆動開発 →
ペアプログラミングは、同じ画面の前に並んだ 2 人が、相談しながら同じコードを書き進める開発のやり方である。
キーボードを持って入力する人をドライバー、隣で確認しながら方針を考える人をナビゲーターと呼び、ときどき役割を入れ替える。書いている最中にもう 1 人が目を通すので誤りに早く気付け、知識や書き方もチームの中で広がる。XP のプラクティスの一つである。
たとえ車のラリーで、運転手がハンドルを握り、助手席の相棒が地図を見てコースを伝える組み合わせに似ている。
覚え方pair は靴や手袋と同じ「2 つで 1 組」。1 台の机に 2 脚の椅子を並べた光景で覚える。
出題のポイント
- 混同注意コードレビューは書き終えたコードを後から別の人が読む確認で、ペアプログラミングは書いているその場で隣の人が確かめる点が違う。
この用語の過去問 2 題 ペアプログラミング →
リファクタリングは、プログラムの外部から見た動作は変えずに、名前や構造など内側の作りを読みやすく直しやすい形に整える作業である。
ここでいう外部から見た動作とは、同じ入力を与えたときに返ってくる結果や利用者が目にする振る舞いのことである。見た目の動きが同じでも、重複を減らしたり処理を分け直したりすると、後の修正や機能の追加がしやすくなる。整えた後も動作が変わっていないことは、テストを流して確かめる。
たとえ家具や持ち物は 1 つも捨てずに、引き出しの中を仕切り直して探しやすくする片付けに近い。
覚え方re-factor は数式の因数分解をやり直すイメージ。値は同じまま、式の形だけを組み替える。
出題のポイント
- 出題リファクタリングで手を入れるのは内部の構造だけで、利用者から見た機能や動作はそのまま保たれる。
- 混同注意リバースエンジニアリングは既存のプログラムを解析して仕様を読み取る活動で、コードを書き直して整えるリファクタリングとは作業の向きが違う。
- 混同注意テスト駆動開発は開発をテストから始める進め方で、リファクタリングは動作を保ったまま既存のコードを整える作業である。
この用語の過去問 2 題 リファクタリング →
要点
- アジャイルは短い反復ごとに動くものを見せ、利用者の意見や要望の変化を次の回に取り込む開発の考え方である。
- ユーザーストーリーは「誰として・何を・なぜ」を利用者の言葉で短く書き、細部は作る直前に話し合って決める。
- XP とエクストリームプログラミングは同じ手法で、良い開発習慣を毎回やり切ることを重んじる。
- ペアプログラミングでは入力する人と確認する人が並んで作業し、書いている途中で誤りに気付ける。
- リファクタリングの決め手は、外から見た動作を保ったまま内部の作りだけを整えることにある。
この分野の過去問をすべて見る →