こんにちは!みなさまは、どのくらいのイテレーション期間をとっていますか?
アジャイルでは経験によって、イテレーション期間を変えていくべきだというのが普通だと思いますが、このセッションでは、開発者のスキルや要求の複雑さなどを指標として、適切なイテレーション期間を導きだすシミュレータが紹介されました。
スピーカーの塩浜 龍志さんは、早稲田大学の鷲崎先生の研究室の院生です。(右側が塩浜さんです)
Agile2012では、二人しかいない日本人セッション・スピーカーの一人です。
裏話ですが、アメリカに向かう飛行機内で「ただ研究内容を話しても面白くない」と急遽、Ice Breaking のようなゲームを行うこと思いついたそうです。ですが、日本から一緒に参加したかわぐちさんに相談したところ「準備の時間が足りないんじゃないか」とアドバイスを受け、断念したとのことでした。
■セッションの解説
一般的なイテレーション期間
まず、一般的なイテレーション期間についてです。XPでは1週間、スクラムでは1ヶ月ということで、1〜6週間くらいをターゲットとしています。
研究のアプローチ方法
アジャイル開発の研究のアプローチ方法には、2種類あります。
- インタビューや実際のテストプロジェクトを通して、実データを利用して検証する方法。
- アジャイルの原理に基づいて開発行程をモデリングし、シミュレーションにより検証する方法。
今回のシミュレータは、先人の論文のデータを使い、後者のモデリングによる検証方法で行いました。
モデリングの前提
モデリングの前提として、アジャイル手法の大部分を占めるスクラムとXPを対象にします。
開発フローのモデリング
フェーズとして、要求の優先順位付け、スコープの決定、要求分析、実装、レビューとリリース、最終リリースを定義しています。各フェーズで、図に記載されている論文のモデリングを参考にしているようです。
シミュレータフロー
実際のプロジェクトから指標を定義し、シミュレータにインプットして結果を出すという流れです。
5つのプロジェクトの指標
指標1:開発期間
指標2:開発者
熟練者、中堅、ビギナーを定義。ビギナーと中堅との効率の差は4倍、熟練者と中堅との効率の差は2.5倍あると定義しています。
指標3:要求
要求の重要度と工数見積もりを行います。
指標4:複雑さ
各要求間の依存を定義します。
指標5:不確実性
要求が変わる可能性を定義します。
シミュレータ
左側に指標を入力、右側に結果が表示されます。
シミュレーション結果
(株)永和システムマネジメントさんの実際のプロジェクトでのシミュレーション結果。XPで5日でイテレーションを回していましたが、シミュレーション結果では、適切な期間は6日となりました。
■提案:シミュレータのオープンソース化
指標の追加、変更ができるようになれば、シミュレーションの自由度があがり拡張性も高くなります。また、githubにあげるなどしてオープンソース化し、自由に拡張できるようにしてはどうでしょうか。
■おまけ
世界的なカンファレンスの場で英語で発表する、”すごい塩浜さん” ですが、最終日前日のパーティーの後「会場のお姉さんと記念に写真が撮りたいのですが、恥ずかしいので頼んでください」とお願いするキュートな一面もありました。
そこで撮った一枚。
便乗して私も一枚。酔っぱらいです。
最後まで読んでいただいき、ありがとうございました。