XPっぽい開発をいくつかやって思ったこと。

「せっかくイテレーション毎に動くものを提供しているのに、ちゃんとした受入テストができていない」(きっちり受入テストができてないあたり、XPではないんだけど)

エンドユーザーで動作確認してくれとお願いしてもなかなか時間をとってやってくれない。
やったとしてもざっとした動作確認しかしてくれない。
それで結局、全部の機能が出来上がってリリース直前になっていろいろと文句やら、仕様変更要求やらが出てきてしまう気がする。

今までは、受入テストを顧客側にお願いしていたのが失敗だった気がする。
ということで、受入テストを行う部隊も開発プロジェクトチームに組み込んでしまえばいいのではないかと思った。
できれば受入テストも自動化したい。なので、受入テスト部隊にもシステム屋の人間は必要。
 
 ストーリー→(受入テスト記述→)受入テスト
 
という変換をいかにスムースにできるか。
しかも基本はユーザー主体。
この辺、うまくいくかどうかはやってみないとわからない。
(なんかツールを作るのか?)


できれば、以下のような体制、開発手順を次回試してみたい。
でも次の仕事は一次受けだけど、インフラ、基幹、保守をおっきなSIerが受け持つらしいので、XPで、とはいかないかも。
納品ドキュメントをこれでもか、というくらいそろえなければならないかも試練し。

体制:
 プロジェクトチーム:(ユーザー+システム屋)
 ├受入チーム:(ユーザー主体)
 │ ストーリーの作成、受入テスト作成、実施を担当
 └開発チーム:(システム屋主体)
   ストーリーの実装を担当

工程:
★全体要件概要確認	
 受入チーム:
  ストーリ概要作成
  非機能要件(概要)策定	
  受け入れテストアーキテクチャ、フレームワーク策定
 開発チーム:
  ストーリー概要見積作成
  アーキテクチャ、フレームワーク策定
		
★リリース1MTG	
 受入チーム:
  業務ストーリー(要件)作成
  受け入れテスト作成見積	
  業務リスク、不明点確認	
 開発チーム:
  技術リスク、不明点確認
  ストーリー実装見積
  タスク作成
		
★リリース1
 受入チーム:
	バーンダウンチャート(ストーリーベース)作成	
	受け入れ(自動)テスト用フレームワーク実装	
	受け入れ(自動)テスト作成、実施	
	運用テストシナリオ作成(非機能要件含む)	
	障害一覧表作成	
 開発チーム:
	バーンダウンチャート(タスクベース)作成
	アーキテクチャ、フレームワーク実装
	機能開発
	単体(自動)テスト作成、実施
	アプリケーション導入(手順策定含む)
		
★リリース2MTG	
 受入チーム:
  業務ストーリー(要件)作成
	業務リスク、不明点確認	
	受け入れテスト作成見積	
 開発チーム:
  技術リスク、不明点確認
	ストーリー実装見積
	タスク作成
		
★リリース2	
 受入チーム:
  リリース1のフィードバック(改善点、対策)	
  バーンダウンチャート(ストーリー)作成	
  受け入れ(自動)テスト作成、実施	
  リリース1,2全体の運用テストシナリオ作成	
  リリース1までの運用テスト実施	
  障害一覧表作成	
 開発チーム:
  リリース1のフィードバック(改善点、対策)
  バーンダウンチャート(ポイント)作成
  機能開発
  単体(自動)テスト作成、実施
  アプリケーション導入
 ・
 ・
 ・

★リリースnMTG	
 受入チーム:
  業務ストーリー(要件)作成
	業務リスク、不明点確認	
	受け入れテスト作成見積	
 開発チーム:
  技術リスク、不明点確認
	ストーリー実装見積
	タスク作成
		
★リリースn	
 受入チーム:
  リリース[n-1]のフィードバック(改善点、対策)	
  バーンダウンチャート(ストーリー)作成	
  受け入れ(自動)テスト作成、実施	
  リリース[1,,,,n]全体の運用テストシナリオ作成	
  リリース[n-1]までの運用テスト実施	
  障害一覧表作成	
 開発チーム:
  リリース[n-1]のフィードバック(改善点、対策)
  バーンダウンチャート(ポイント)作成
  機能開発
  単体(自動)テスト作成、実施
  アプリケーション導入


★運用テスト	
 受入チーム:
  システム全体の運用テスト実施	
 開発チーム:
  メンテナンス用のドキュメント作成
  障害対応
		
★検収	
 受入チーム:
  検収	
 開発チーム:
  納品