今回はアジャイル開発手法の中のスクラムとXPについて調べたことを備忘録としてまとめてみました。
本記事は以下の概要に従ってご紹介させていただきます。
アジャイルの開発手法
アジャイルの開発手法はいくつかあります。
- スクラム
- XP(エクストリームプログラミング)
- FDD(ユーザー機能駆動開発)
- DSDM(動的システム開発手法)
- LSD(リーン)
- ASD(適応型ソフトウェア開発)
スクラム
概要
1990年代にジェフ・サザーランド とケン・シュウェーバーによって提唱されました。スクラムの特徴は、チームが自主的に動き、常に改善しながら、メンバー同士の進捗を共有することが挙げられます。
役割
スクラムには三つの役割が存在します。
プロダクトオーナー (Product Owner)
- プロダクトの責任を担う
- 開発する機能の優先順位を決定
- プロダクトバックログの管理
スクラムマスター (Scrum Master)
- チームが効率的に働くことに責任を持つ
- 障害を取り除き、スクラムのプラクティスを守ることを担当
開発チーム (Development Team)
- プロダクトの機能を実際に開発
- 自己組織化されたチーム
プロセス
プロダクトバックログの作成
プロダクトオーナーがどのような機能を作るかの優先順位を決定
優先順位 | 機能 |
---|---|
1 | ログイン機能 |
2 | 検索機能 |
3 | 支払いシステム |
スプリントバッグログの作成
プロダクトバックログから選ばれた項目をもとに、次のスプリントで取り組む具体的なタスクをリストアップします。スプリントバックログは、開発チームがスプリント期間中に完了させるべきタスクのリストです。
タスク名 | 担当者 | 見積もり |
---|---|---|
ユーザー認証システムの設計 | Aさん | 8 |
ユーザー名とパスワードの入力フォーム作成 | Bさん | 3 |
パスワードリセット機能の設計と実装 | Cさん | 7 |
スプリントの実行
プロダクトバックログから選ばれた項目をもとに、次のスプリントで取り組む具体的なタスクをリストアップします。
スプリントレビュー
スプリントの終了時に、スプリントレビューを行い、スプリントで完成したプロダクトのインクリメントをプロダクトオーナーやステークホルダーにデモンストレーションします。フィードバックを収集し、次のスプリントへの改善点を明確にします。
スプリントレトロスペクティブ
うまくいった点や改善が必要な点を話し合い、次のスプリントでより効果的に作業を進めるための具体的な改善策を計画します。
XP(エクストリームプログラミング)
概要
1990年代後半にケント・ベックによって提唱されました。XPはソフトウェア開発のプラクティスを極限まで徹底することを目指しています。XPには5つの価値と14の原則、23のプラクティスが定義づけられています。
5つの価値
価値 | 説明 |
---|---|
コミュニケーション | 積極的なコミュニケーション |
シンプル | シンプルで最小限なシステム設計 |
フィードバック | 開発したシステムの反復的なフィードバック |
勇気 | 厳密な計画を立てないため、仕様変更があった場合は勇気を持って対応する |
尊重 | 開発者や顧客とのコミュニケーションを円滑にし、相手を信頼・尊重する |
14の原則
原則とは、価値とプラクティスの間に存在するものであり、プラクティスを実現させるための指針になるようなものです。以下はいくつかピックアップしたものです。
- 人間性
- 経済性
- 相互利益
- 自己相似性
- 改善
- 多様性
19のプラクティス
19のプラクティスは開発者・管理者・顧客・共同の四つに分類され、合わせて19の実践が定義づけられています。
その中で特に有名な開発プラクティスの中の「テスト駆動開発」「ペアプログラミング」についてご紹介します。
テスト駆動開発(TDD)
テスト駆動開発とはテストに重点を置いた開発手法です。
1. テストコードを書く(RED)
実現したい機能のコードを書く前に、テストコードを書く
2. 簡単なコードを書く(GREEN)
一つのテストを成功することを目標に、最小限のコードを書く
3. リファクタリングを行う(REFACTARING)
テストが成功したら、コードの可読性や保守性を高め、コードを改善させる。
ペアプログラミング
ペアプログラミングとは二人組になり、一人がコーディング、もう一人がレビューをし、コードの改善を図る手法です。
役割 | 説明 |
---|---|
ドライバー | コードを実際に書く人。ナビゲーターの指示に従う。 |
ナビゲーター | ドライバーのコードを見ながら適切な指示を出す。 |
参考文献