$shibayu36->blog;

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

タスクの依存関係とリソースの両方を考慮してプロジェクトマネジメントをする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冊を読むペースが早い
  • 数冊読んだ上で面白いと思うポイントを判断するため、ある一冊に書いている話じゃなくより本質は何かを把握しやすくなった
  • 二回面白いと思わないと転記しないので、転記するコストも低い
  • カテゴリごとに知見をまとめておくことで、後からその知見を引き出しやすい

まとめ

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

リモートワークでは自己主張スキルが大事な気がしてきた

リモートワークをしていると特定のスキルを保有しているか否かで自分の成果や成長が大きく変わってくると感じてきている。その中の一つとして最近感じているのが自己主張スキル。


なぜそう感じるか。それは最近ローカルでの開発からリモートの開発になったことで、自分がメンタリング・ファシリテーションスクラム開発などをしている時に、非言語情報である表情や相槌、目線などの情報を使って良い感じに対処することが非常に難しくなったからだ。リモート会議だとミュートを多用したり人によってはビデオを切っていたりするので*1、言語情報以外の情報が全く入ってこなくなり、「良い感じ対処」のための情報量が圧倒的に不足するようになってしまった。例えば

  • メンターとして困りごと相談を受けている時間に沈黙が生まれると、理解していて沈黙しているのか、今考え中で沈黙しているのか、全く理解不能で沈黙しているか分からず、どう対処したら良いか分からなくなる
  • ファシリテーションをしている時に、意見を持っているけど言いたそうな人を見つけることが困難で、「〇〇さんどうですか」と発話を促すことが困難になった
  • スクラムマスターとしてタスクをアサインする時に、表情などから実はやりたい・実はやりたくないというのを見出すことが困難になり、本人のモチベーションに最適なタスクを割り当てづらくなった

もちろん今後リモート時代での良い方法は編み出されていくとは思うが、現時点ではマネジャー・ファシリテーター側で良い感じに回しづらくなってきている。


この現状を考えると、それぞれの人で自分の気持ちをリモートでも伝わるように全て言語情報にする、つまり自己主張をするスキルが大事になってきていると感じる。上記の例で挙げたようなことであれば

  • 相談をする時に、「なるほど、わかりました」「ちょっと考えてみます」「全く分からないです」をはっきり言う
  • ミーティング中にちょっとでも気になることがあれば、完全にまとまり切ってなくとも「ちょっと良いですか」と声を上げる
  • 次のタスクをもらう時に、「こういうことをやりたい」「このタスクは今後の成長を考えるとできればやりたくない」「今回はこのタスクをやってみるが、次回はこういうタスクもやりたい」などをはっきり伝える

こういうことが出来ると、マネジャーなどは本人の意思をキャッチしながら良い方法を考えることができ、結果的に本人が成果を出しやすく本人の成長にも繋がると感じる。


というわけで今回はリモートワークでは自己主張スキルが大事な気がしてきているということを書いてみた。他にも「ローカルでも大事だったけど、リモートだとさらに影響がクリティカルなスキル」というのは色々ある気がするので、見つけたら言語化していきたい。

参考: 最近リモートワークで参考にしている本

*1:それ自体はプライバシーの観点で仕方ないと思う