アジャイル
devops
agile

開発する単位を小さく小さくイテレーション~アジャイルでDevOpsなシステム構築実践~

More than 1 year has passed since last update.

イテレーション(スプリント)とは

1つの開発単位をイテレーション(スクラムではスプリント)といいます。
開発規模などによるのですが、1イテレーション2週間がちょうどいいです。
このイテレーションの中で実装できる機能を決めてから、実装に入ります。1つのイテレーションでは自動化されたテストも含みます。

おことわり

今回の開発は、別の仕事をしながらなので2週間単位でできる自信がありません(すいません)。
一般的な2週間は、1日8時間、10営業日です。今回はプライベートな開発なので1人です。
1イテレーション=80時間とさせてください。

1イテレーションで実装する機能を決める

ユーザストーリーを基に1イテレーションで実装する機能を決めます。

ユーザストーリより工数見積もり

膨大で小難しい資料よりも、誰でもわかりやすいユーザストーリーより、実装するおおまかなユーザストーリーは下記のとおりです。

  1. 問題・解説を表示する
  2. 利用者ごとに解答を保存する
  3. 利用者はFacebookやTwitterのアカウントでログインできる
  4. 問題・解答サービス利用はタダ
  5. 教材をnoteやAmazonで売る
  6. 解答を解析して得意・不得意を明確にする
  7. 午後問題からアプローチする

このうち「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イテレーションとします。

アジャイルでDevOpsなシステム構築実践 目次

はじめに
膨大で小難しい資料よりも、誰でもわかりやすいユーザストーリー
開発する単位を小さく小さくイテレーション