$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行する

プロジェクトマネジメントにおいて、見積もりをどのように行うかは結構難しい。僕は理想日見積もりの形式も、相対見積もり(ストーリーポイント)の形式も試したことがあるが、どちらも一長一短であった。

最近色々試す中で、プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行するという方式がやりやすいと感じた。今回はその様子を紹介してみる。

理想日見積もりと相対見積もりそれぞれのメリット・デメリット

見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察の記事を読むと、理想日見積もりと相対見積もり(ストーリーポイント)それぞれのメリット・デメリットがさっと把握しやすい。自分としては、それぞれ以下のように思っている。

  • 理想日見積もり : 他の割り込みが全くなく、1日中タスクに取り組んだ場合を1理想日とする見積もり方式
    • メリット: 他に基準となるタスクがなくてもとりあえず雑に出せる。相対見積もりの概念を把握しなくても出せる。
    • デメリット: 人によってバラバラになる可能性がある。プロジェクトが進みメンバーのスキルが高くなるなどで、基準がぶれがち。
  • 相対見積もり : 基準となるタスクを決め、相対的に見積もりをする方式
    • メリット: 人や能力の変化によって見積もりのばらつきが生まれにくい。
    • デメリット: みんなが理解できる基準を見つけにくい。

このようなメリット・デメリットから、理想的には相対見積もりの方が良いはずだが、プロジェクトの初めから相対見積もりにするとなかなか難しいと感じていた。

それぞれのデメリットを緩和するための作戦

メリット・デメリットを考えてみると、実は相対見積もりのデメリットはプロジェクト初期の全員が理解できる基準を見つけていない時だけだと分かる。そこでプロジェクト初期の基準が分かりにくい時には理想日見積もりを使い、プロジェクトが少し進んで基準が分かりやすくなった時に相対見積もりへ切り替えるという作戦にする。

プロジェクト初期は理想日見積もりする

プロジェクト初期は直近でやるべきタスクをプロジェクト所属の人全員で理想日見積もりする。1タスクごとに

  • 見積もりできるように、どうなったらタスクが完了かを明確にする。分からないことがあればみんなでどんどん質問しながら完了条件を詰めていく
  • ラニングポーカーを使って全員で見積もりを出す
  • 見積もりが大きくずれたら、ずれた理由について会話し、再度見積もりを出す

という流れになるだろう。

プロジェクトが進むにつれて徐々に相対見積もりに変える

その後しばらく経っていくつかのタスクが終わったら相対見積もりに変えていく。基準を決められれば良いので、基準となるタスクをいくつかピックアップしていく。この時、全員が見積もりしやすくなるように、ピックアップするタスクはアサインがバラバラになっていると良いだろう。例えば次の画像のように、ポイントごとにタスクとアサインを並べて一覧にする。

f:id:shiba_yu36:20210405092041p:plain

このように基準さえできてしまえば、その後の相対見積もりは簡単だ。1タスクごとに

  • 見積もりできるように、どうなったらタスクが完了かを明確にする。分からないことがあればみんなでどんどん質問しながら完了条件を詰めていく
  • 基準をまとめたドキュメントを眺めながら、プラニングポーカーを使って全員で見積もりを出す
  • 見積もりが大きくずれたら、基準を元に会話し、再見積もりする

まとめ

今回は、プロジェクト初期は理想日見積もりし、徐々に相対見積もりへ移行するという方式を試した内容を紹介した。プロジェクトの形によって適切な見積もり方法は変わるが、今回の方法も参考になれば嬉しい。

参考資料

見積もりの基礎知識と「ストーリーポイント vs 理想日」の考察 - yigarashi のブログ

タスクの依存関係とリソースの両方を考慮してプロジェクトマネジメントをするCCPM理論を学んだ

自分のプロジェクトマネジメントのスキルをもう一つ伸ばしたくて、タスクの依存関係とリソースの両方を考慮してプロジェクトマネジメントをするCCPMクリティカルチェーンプロジェクトマネジメント)理論を学んだ。この理論を学んだおかげで、よりプロジェクトの計画作りや、プロジェクトの現在の危険度の把握をやりやすくなったと感じる。アジャイルの手法であるベロシティでの管理ともうまく組み合わせられそうだったので、今度試してみたい。

参考にした書籍

「進む!助け合える!WAのプロジェクトマネジメント」「アジャイルCCPM」の二つはかなり参考になった。

CCPM理論のやり方に対する自分のまとめ

CCPM理論の五つの特徴

  • 1) マルチタスクを排除する
    • WIPの数が極力少なくなるように、人員を集中させ、短期でタスク完了できるようにコントロールする
  • 2) クリティカルチェーンによるマネジメント
    • クリティカルパスはタスクの順序関係のみが依存関係に反映されているのに対し、クリティカルチェーンはリソースの並列可能度も考慮に入れている
    • 計画フェーズでリソースを考える時は、タスクに対して人でなくスキル(能力・知識・技術・資格など)を割り当てる。実際に人を割り当てるのは実行段階で行う
    • クリティカルチェーンになっている作業が可能になったら、それ以外の全てを無視してでもクリティカルチェーンのタスクを行うと全員理解することが重要
  • 3) バッファを集約して管理する
    • CCPMでは、各タスクにバッファが組み込まれている状況を無くし、合流バッファとプロジェクトバッファに集約するマネジメント手法
    • 合流バッファやプロジェクトバッファは、そのチェーンの長さの50%で組み込む
    • 不確実性の程度はプロジェクトによるので、バッファのサイズに対してどうしても不安が残るなら調整する。ただしあまり大きくすると夏休み症候群のような現象がぶり返すので注意
  • 4) バッファの消費状況でプロジェクトを監視する
    • プロジェクト全体の進捗状況や危険度はクリティカルチェーンの完了率とプロジェクトバッファの消費率で判断する
    • バッファの消費状況を指標とし、手を打つべきタスクをチームで共有する
  • 5) タスクに必要な万全の準備が整うまで、スタートさせない

CCPMアジャイルの手法を組み合わせる

  • 計画フェーズの工程表作成の手順
    • 1) 実装に必要なスキルの違いなどでフィーチャーをグループに分ける。グループ分けは最小限にとどめておくことを推奨
    • 2) 各グループをマザータスクに変換する。マザータスクの期間はベロシティをベースに求める
    • 3) マザータスクを元にCCPM工程表を作る。
      • 見積もり期間 = ストーリーポイント / ベロシティ
      • 元になるマザータスクの期間の2/3をタスク期間に、1/3をバッファサイズにする。通常のCCPMよりも見積もりは悲観的ではないのでバッファサイズは少なめに
  • 実行フェーズではタスクを始める前に、ある程度の規模にタスクをバラす処理をする
  • メンバー数が変更になった時は、それに合わせて見積もり期間を調整する

ベロシティ管理と組み合わせるには?

基本的には以下のように組み合わせることができる。

  • ストーリーポイントでタスクの見積もりを出す
  • タスクをある程度のグループにまとめ、マザータスクを作る。グループは最小限にする
    • 実装に必要なスキルの違いが大きく異なる場合
    • 他の大量のタスクから依存されているような、クリティカルなタスクな場合
  • マザータスクの依存関係や、リソースの状況を考慮して、クリティカルチェーンを作る
  • マザータスクにまとめたタスクのストーリーポイントを合計し、ストーリーポイントとベロシティから、期間を計算し、バッファをいれる
  • あとは全体のバーンアップチャートだけでなく、クリティカルチェーンとなっているようなパスのバッファが消耗されすぎていないか監視する

まとめ

今回はCCPMについて学んだことをメモしておいた。アジャイルな手法とも組み合わせ可能だと感じたので一度試してみたい。

CCPM理論に興味があれば参考にした書籍を読んでみてもらえると良さそう。特に「進む!助け合える!WAのプロジェクトマネジメント」「アジャイルCCPM」は良かったです。

読書のやり方を変えてみたら知識の吸収速度・引き出し速度が上がった話

最近以下のような記事や本を読み読書法を変えてみたところ、知識の吸収速度・引き出し速度が上がったと感じるので紹介。

kentarokuribayashi.com

知的戦闘力を高める 独学の技法

知的戦闘力を高める 独学の技法

やり方

以下のような流れで読書している。

  • 学びたいと思った知識が書いてありそうな本を2~5冊選ぶ
  • 1冊ずつざっくり読みながら、面白かった部分・気になった部分はKindleで黄色にハイライトしておく
  • 全冊読み終わったら、ハイライトした部分だけ眺めて、やっぱり面白いと思ったところは赤のハイライトを付け直す
  • 赤のハイライトを眺めて、読書ノートに転記する
  • 特に面白い部分については、自分の知見まとめノートにカテゴリごとに整理する

学びたいと思った知識が書いてありそうな本を2~5冊選ぶ

自分の中で学びたいテーマがあって本を読むはずなので、そのテーマについて書いてありそうな本を数冊選ぶ。例えば最近自分が「プロジェクトマネジメントのCCPM」について学びたいと思った時は

あたりを選んだ。

1冊ずつざっくり読みながら、面白かった部分・気になった部分はKindleで黄色にハイライトしておく

次に読む。この時あんまり熟読しようとすると疲れるので、ざっくり読むくらいの気持ちでいる。少しでも心に残ったことがあればKindleで黄色でハイライトしておく。

全冊読み終わったら、ハイライトした部分だけ眺めて、やっぱり面白いと思ったところは赤のハイライトを付け直す

ざっくり全冊読み終わったら黄色のハイライトがたくさん付いていると思う。そこで次にもう一度ハイライトした部分を眺め、もう一回読んでみても面白いと思ったところはKindleで赤のハイライトにしていく。

この段階では数冊分の背景知識が頭になんとなく入っているので、最重要部分がどこか判断しやすくなったり、逆にもう一回見てみたらそんなに面白くなかったというのが分かったりと、より本質を見つけやすくなっていると思う。

赤のハイライトを眺めて、読書ノートに転記する

ここまで来てようやく赤色のハイライトの部分だけ自分の読書ノートにメモしていく。最初に黄色でハイライトした量と比べて赤色のハイライトはかなり少なくなっているはずなので、転記のコストはそこまで多くない。

例えば「リモートワークの達人」を読んだ時は、https://blog.shibayu36.org/entry/2020/12/01/183000でも公開したように、こんな感じで読書ノートができている。

* 毎日4時間はみんな同じ時間に働いたほうが良い。コミュニケーションもうまくいくし、チームの一体感が出る 688
    * 気づき: フレックスのコアタイムも4時間は被せる
* 進み具合を共有するために、週に一度「最近やっていること」というテーマで話し合いの場を設ける。この1週間でやったことと翌週にやることを手短に書き込んでいく 788
    * 気づき: 書き込みでやっていくの、スプリント会に導入しても良いかも
* リモートとは単に遠隔地という意味ではなく、時間と場所に縛られない働き方 814
* リモートで世界的な視野を手に入れれば、顧客によりよいサービスを提供することに繋がる 1087
    * 気づき: 多様性を上げやすくなるということかな
* リモートだとむしろチームの雰囲気を盛り上げてくれるような人柄が重要になる 1133
    * 文字だけでやり取りする時、人は悪い方に流されやすくなる
* リモートワークをマネジメントするときは、棘のあるコメントや逆ギレの反応などの小さな行動をひとつひとつ注意していく。割れ窓にならないように 1142
    * 最終的に社員全員がおたがいに指摘できるようになると効果的
    * 「いやな言葉」「感情的な対立」「悪いムード」を徹底的に排除する 1151
* 地域で賃金差別をしない 1211
    * 気づき: 家賃手当とかでも同じようなことになるので注意する
* 候補者の仕事ぶりを知るためのベストな方法は、本格的に採用する前に1~2週間お試し採用をして、給料を払い、小さなプロジェクトをやりとげてもらうこと 1284
    * 現在働いているなら副業的にやってもらうでも良い
* リモートでは働きすぎをふせぐため、あえて休暇を増やすなどをする必要がある 1536

特に面白い部分については、自分の知見まとめノートにカテゴリごとに整理する

読書ノートの段階ではまだ自分の中で整理できてないので、必要な時に知識を引き出すスピードが遅いという問題がある。そこで特に面白かった部分は自分の知見まとめメモにカテゴリごとにまとめ直している。例えばプロジェクトマネジメントの本を読んだ後は、自分のプロジェクトマネジメント知見メモに自分で知識を整理してまとめ直す。

プロジェクトマネジメントメモの一部を抜粋するとこんな感じ。 f:id:shiba_yu36:20210105100624p:plain:h600 f:id:shiba_yu36:20210105100651p:plain:h600

ちなみにこの知見メモは読書から学んだことだけでなく、Webの記事から学んだことや自分の経験談から学んだことなど全てをまとめている。

このやり方の良さ

昔はちゃんと一冊ずつ読んで読書メモを書いて満足していたのだけど、このやり方に変えてから知識の吸収速度や知識の引き出し速度が上がったと感じる。

  • 頑張って熟読するという気持ちが抜け、1冊1冊を読むペースが早い
  • 数冊読んだ上で面白いと思うポイントを判断するため、ある一冊に書いている話じゃなくより本質は何かを把握しやすくなった
  • 二回面白いと思わないと転記しないので、転記するコストも低い
  • カテゴリごとに知見をまとめておくことで、後からその知見を引き出しやすい

まとめ

今回は最近の読書法についてまとめてみた。このやり方で最近はアジャイルやプロジェクトマネジメントを再学習している。知識を効率的に吸収し、さらに知識を引き出しやすくなったと感じているので、この調子で続けていきたいと思う。