heavy weight processな改修方法
id:yousukeharaさんとオフラインで議論してて、いろいろと認識を改める機会がありました。特に、GTDを前提に開発プロセスを考え直した場合、思っていたよりきれいにステージが細分化できるし、ロールが明確になりそうな感じです。
heavy weightっていうと嫌われる時代なのですが、light weightでもheavy weightでもこなすべき内容の総量に違いはなく、それがいかに早く回転できるかって言うことだと思います。そういう視点で、プロセスの作業エッセンスを分析中。
特に重視しているのが、各ロールにおける問題の捉え方。あとステージング。
- どこで起こったのか: エンドユーザの視点 (which, where, when)
- 何が起こったのか: テスタの視点 (what)
- なぜ起こったのか: レビュアの視点 (why)
- どのように直したのか: プログラマの視点 (how)
これがまともに整理できたら、Computer Aided Engeneeringの視点を入れたいと思います。
一般ユーザ
- プロダクトを利用する
- プロダクトに問題が発生した場合
- IssueとしてITSに問題(which/where/when)を登録
- Issueを「報告済み」のステージへに移行
マネージャ(テスタ)
- ITSを眺める
- Issueが発生していた場合
- Issueに対して再現ToDoをToDo管理システムに登録。このとき、Issueとのrelationがあることを記録する
- Issueを「確認中」のステージに移行
テスタ
- ToDo管理システムを眺める
- 再現ToDoが発生していた場合
- 再現ToDoの内容を実行し、再現する
- 再現手順と、現象(what)を再現ToDoとrelationalなIssueに書く
- Issueを「確認済み」のステージに移行
マネージャ(レビュア)
- ITSを眺める
- Issue(>= 確認済み)が発生していた場合
- Issueに対して分析ToDoをToDo管理システムに登録。このとき、Issueとのrelationがあることを記録する
- Issueを「分析中」のステージに移行
レビュア
- ToDo管理システムを眺める
- 分析ToDoが発生していた場合
- 分析ToDoの内容を、関連する再現ToDoの結果を利用して再現
- 原因(why)を分析ToDoとrelationalなIssueに書く
- Issueを「分析済み」のステージに移行
マネージャ(プログラマ)
- ITSを眺める
- Issue(>= 分析済み)が発生していた場合
- Issueに対して改修ToDoをToDo管理システムに登録。このとき、Issueとのrelationがあることを記録する
- Issueを「改修中」のステージに移行
プログラマ
- ToDo管理システムを眺める
- 改修ToDoが発生していた場合
- 改修ToDoの内容を、実施
- 実績(how)を改修ToDoとrelationalなIssueに書く
- Issueを「改修済み」のステージに移行
その後
たぶんこのあとに、改修内容の確認とかも発生する。