イテレーション(スプリント)とは
1つの開発単位をイテレーション(スクラムではスプリント)といいます。
開発規模などによるのですが、1イテレーション2週間がちょうどいいです。
このイテレーションの中で実装できる機能を決めてから、実装に入ります。1つのイテレーションでは自動化されたテストも含みます。
おことわり
今回の開発は、別の仕事をしながらなので2週間単位でできる自信がありません(すいません)。
一般的な2週間は、1日8時間、10営業日です。今回はプライベートな開発なので1人です。
1イテレーション=80時間とさせてください。
1イテレーションで実装する機能を決める
ユーザストーリーを基に1イテレーションで実装する機能を決めます。
ユーザストーリより工数見積もり
膨大で小難しい資料よりも、誰でもわかりやすいユーザストーリーより、実装するおおまかなユーザストーリーは下記のとおりです。
- 問題・解説を表示する
- 利用者ごとに解答を保存する
- 利用者はFacebookやTwitterのアカウントでログインできる
- 問題・解答サービス利用はタダ
- 教材をnoteやAmazonで売る
- 解答を解析して得意・不得意を明確にする
- 午後問題からアプローチする
このうち「1. 問題・解説を表示する」を細分化しました。
詳細は膨大で小難しい資料よりも、誰でもわかりやすいユーザストーリーを参照してください。
- 資格種別(応用情報・基本情報・セキュリティマネジメント・ITパスポート)を選択する
- 選択した資格種別を実施回(例:平成29年度秋)ごとに表示する
- 実施回をクリックすると該当実施回の問題一覧問1から問80まで(ITパスポートの場合は問100まで)が開く
- 問題画面に問題を表示する
- 問題画面に問題に関連づく解説を表示する
- 問題画面に次の問題へのリンクを表示する
- 問題画面に前の問題へのリンクを表示する
- 問題画面に問題一覧を表示する
- 問題画面に広告を表示する
これらの工数を見積ります。
アジャイルにおける工数の見積もりは、ファンクションポイント法などありますが、過去の実績などから「何となく」でよいと思いまよいと思います。理由は「見積もりはあてずっぽう」だからです。不確定なものに時間をかける必要はありませし、開発のはじめのうちは見積もりの精度が低いです。イテレーションを繰り返すたびに精度が向上するものと思ってください。
仮にざっくりと1ユーザストーリ8時間としましょう。9ユーザストーリがあるので72時間となります。
1イテレーション80時間と仮定すると、ちょうどいいかもしれません。
しかし、開発はじめなので環境構築が必要です。
環境構築の工数もイテレーションに加える
必要な環境構築は下記のとおりです。
○環境構築
- LaravelPHP5.4の開発環境をDockerで構築する
- LaravelPHP5.4+Vue環境を構築する
- GitHubリポジトリ作成
- TravisCIでCI環境を構築
- CI環境上でテスト自動化
このうち、当面の開発に必要なものを着手します。おおまかで多めな工数も併せて記載します。
今回のイテレーションで環境構築するもの
- LaravelPHP5.4の開発環境をDockerで構築する 4時間
- LaravelPHP5.4+Vue環境を構築する 8時間
- GitHubリポジトリ作成 4時間
環境構築工数合計16時間
今回のイテレーションで実装するユーザストーリ
先ほどのユーザストーリーのうち、下記3つを8時間ずつで実装することにします。
- 資格種別(応用情報・基本情報・セキュリティマネジメント・ITパスポート)を選択する
- 選択した資格種別を実施回(例:平成29年度秋)ごとに表示する
- 実施回をクリックすると該当実施回の問題一覧問1から問80まで(ITパスポートの場合は問100まで)が開く
開発工数合計24時間
開発工数合計が24時間
環境構築工数合計が16時間
なので、総計40時間となります。
1イテレーションの80時間のうち半分ですが、不測の事態もあると思います。
かなり多めのバッファをとり、これらを1イテレーションとします。