最近、やっとアジャイル開発についての勉強を始めたので、アジャイルメソッドの一つ、XPについて簡易的なまとめをしておきます。
つまりはよくあるメモ書き。
原則(他にあるかもしれませんが、今のところ私が知っているものを。)
- 共同の作業スペースで作業を行う。
- 複数のプロジェクトへの参加の禁止。
- 作業スペースに情報を充実させる。
- 1日8時間以上の労働、および週40時間以上の労働は非生産的であるので行うべきでない。
- ペアプログラミングをおこなう。
- ストーリーによる機能性の実装。ストーリーにはユーザーの要望と機能実装時のユーザーの受ける恩恵が記述される。(これまでの『要求』とは異なり、柔軟性がある。)
- 反復は1週間なので、機能性は1週間以内で終わるようなストーリーに分割され、実装される。
- 作業は四半期単位で計画する。
- プロセスにゆとりを持たせる。
- システム全体を自動ビルドし、全てのテストが完了するまでの時間が10分になるようにする。
- 継続的インテグレーション。
- TDD(テスト駆動開発)。テストファーストによる開発。
- インクリメンタルな設計をおこなう。(TDDを行うことで自然に行われるはず。)
XPを効果的に適用しにくい例
- 時間がたつにつれて変更のコストが指数関数的に増大するプロジェクト。
- 安全性が重要なプロジェクト。(たとえば、医療機器のプログラムなど)
- 先ほどの原則を守ることのできない組織、企業でのプロジェクト。
追加事項や修正事項は見つかり次第、追加修正していこうかな。
勉強始めたばかりなので、完全なメモ書き。間違い等はあるかもしれませんので参考になさる方はご注意を。