Appearance
実践編:XPとエンジニアリングプラクティス
アジャイル開発において、高い品質と開発速度を維持し続けるための具体的な技術的実践(エンジニアリングプラクティス)を解説します。
エクストリーム・プログラミング (XP) とは
エクストリーム・プログラミング(XP)は、ソフトウェア開発における優れた習慣を極限(エクストリーム)まで高めて実践するアジャイル手法です。スクラムがプロジェクト管理やチーム体制に焦点を当てているのに対し、XPはコードの品質や開発手法そのものに重点を置きます。
テスト駆動開発 (TDD)
テスト駆動開発(TDD: Test-Driven Development)は、プログラムを書く前にまず自動テストを作成し、そのテストを通過させるように最小限の実装を行う手法です。
TDDは以下の3つのステップ(レッド・グリーン・リファクタリング)を素早く繰り返します。
text
[1. レッド] 失敗するテストを書く
↓
[2. グリーン] テストに合格する最小限のコードを書く
↓
[3. リファクタリング] 動作を維持したままコードを整理する
↓
(繰り返し)1. レッド (Red)
これから作りたい機能の仕様を表すテストコードを書き、実行して失敗させます。
2. グリーン (Green)
テストを通過させるための最短・最小限の実装コードを書きます。
3. リファクタリング (Refactor)
テストが通る状態を保ちながら、コードの重複を取り除き、読みやすく保守しやすい構造に整えます。
TDDにより、常に自動テストで安全性が保障されるため、恐れずにコードを変更できるようになります。
ペアプログラミングとモブプログラミング
複数人で協力してコードを書くことで、品質向上とチーム内の知識共有を同時に実現します。
ペアプログラミング
2人の開発者が1台のPCを使って開発します。1人がコードを入力する「ドライバー」を務め、もう1人が全体の設計や誤りをチェックする「ナビゲーター」を務めます。役割は定期的に交代します。
モブプログラミング
チーム全体(3人以上)で1つの画面を見ながら開発を進めます。全員の知恵が集まるため、属人化を防ぎ、仕様の合意形成を迅速に行うことができます。
継続的インテグレーションと継続的デリバリー (CI/CD)
継続的インテグレーション (CI)
開発者が書いたコードを1日に何度もメインブランチに統合し、自動テストとビルドを実行して問題を即座に検知する仕組みです。
継続的デリバリー / デプロイ (CD)
CIを通過したコードを、ステージング環境や本番環境へ安全かつ自動的にリリースできる状態を維持する仕組みです。
ユーザーストーリーと受け入れ基準
要求を開発者が理解しやすい形式で定義するために、「ユーザーストーリー」と「受け入れ基準」を用います。
ユーザーストーリーは以下の形式で記述します。
text
[ユーザーの種類] として、
[達成したいこと] をしたい。
なぜなら [得られる価値] だからだ。受け入れ基準には、Given-When-Then 形式を使うと動作条件が明確になります。
text
前提 (Given): ユーザーがログイン画面を開いている
もし (When): 正しいメールアドレスとパスワードを入力して送信ボタンを押す
ならば (Then): マイページに遷移し、「ようこそ」と表示される