Slide 1

Slide 1 text

#pmtipslt 2020.11.4 プロジェクトマネジメント Tips LT vol.1 Isamu Suzuki / @moomooya 一番安い子だーれだ? ~黒字化のための無慈悲なタスク配分~

Slide 2

Slide 2 text

#pmtipslt 鈴木 勇 / Isamu Suzuki / @moomooya LTの売人 株式会社ラクス / ガンプラ部部長 ● 非エンジニアへの勉強会カリキュラム ● 先行技術検証 ● 新卒採用イベント講師 ● エンジニア向けイベント司会 アナログゲームデザイナー ● 要件定義ゲーム “Fat Project” ● 抵抗カラーコードかるた 自宅サーバー管理者 ● FreeNASのディスク交換 ○ 3TB x 4 → 6TB x 4 ○ リシルバリングめっちゃ長かった ● 自宅マイクラサーバー運営中 ● 壁内LAN配線工事 ビートセイバーはじめました ● 気づくと2時間くらい有酸素運動してる ○ 脱水症状注意 ● 「ビートセイバー日記」書いてます

Slide 3

Slide 3 text

#pmtipslt プロジェクトマネジメント Tips

Slide 4

Slide 4 text

#pmtipslt 過去のPjMネタ https://www.slideshare.net/isamusuz uki54/forkwell17-62409396

Slide 5

Slide 5 text

#pmtipslt 肝に銘じること ● 黒字は有限 ● 赤字は無∞限 ※サービス事業会社の場合も  あまり意識しないけど変わらないはず

Slide 6

Slide 6 text

#pmtipslt プロジェクトマネジメントの管理対象 ● スコープ ● スケジュール ● コスト ● クオリティ ● リソース ● コミュニケーション ● リスク ● プロキュア(調達) ● ステークホルダー ※PMBOKで定義されている10の知識エリアより抜粋  (残り1つはこれらを統合する知識)

Slide 7

Slide 7 text

#pmtipslt プロジェクトマネジメントの管理対象 ● スコープ ● スケジュール ● コスト ● クオリティ ● リソース ● コミュニケーション ● リスク ● プロキュア(調達) ● ステークホルダー ※PMBOKで定義されている10の知識エリアより抜粋  (残り1つはこれらを統合する知識)

Slide 8

Slide 8 text

#pmtipslt ITプロジェクトのタスク配分のはなし

Slide 9

Slide 9 text

#pmtipslt 想定している状態 ● 複数人のチームで開発 ○ 簡略化のため、今回の登場人物は 3人 ■ ひよこ ■ つよつよ ■ マネージャー ● なんやかんやで残業発生するくらいの忙しさ ● マネージャーの視点で話します ○ 今の会社ではマネジメントしてないけど

Slide 10

Slide 10 text

#pmtipslt タスク配分どうするか?

Slide 11

Slide 11 text

#pmtipslt つよつよに全部振る ● つよつよは何でも解決してくれる ● 何も考えなくてもいい ● ただし、つよつよは死ぬ ● コストも高いのでプロジェクトの利益も死ぬ あかん

Slide 12

Slide 12 text

#pmtipslt じゃあどうする? ● スクラム的に各自タスクを取っていく? ○ みんな適度に強いときは問題ない ○ タスク粒度を揃えて扱うのはとてもよいアイディア ■ 進捗管理を「完了作業 量」ではなく「完了タスク 数」でできる ○ ひよこがいるときのフォローはどうする? ● マネージャーが割り当てる? ○ 全体視点でタスク配分 できるのはよい ■ 育成など、長期的な視点含む ○ マネージャーがボトルネックになる

Slide 13

Slide 13 text

#pmtipslt 結局のところ、あわせ技 ● 粒度をある程度揃えてタスク細分化 ○ 最初にすべてやる必要はない「大きく分割」 →「直近分を細分化」 ● つよつよは自律的に動いてもらう ○ 部分的に細分化もやってもらえる ● ひよこにはマネージャーが割り当てる ○ 少しずつ自分でタスクを取れるように促しつつ ● マネージャーの最終手段は「自分で拾う」 ※実現にはコミュニケーションが必須

Slide 14

Slide 14 text

#pmtipslt ダメなパターン ● タスクを取れないひよこの放置 ● 自分のタスクしか見ないつよつよ ● タスク取りや、タスク細分化を任せられないマ ネージャー

Slide 15

Slide 15 text

#pmtipslt ここでプログラマーは考える

Slide 16

Slide 16 text

#pmtipslt タスクの粒度が一定なら 機械的に解けるのでは?

Slide 17

Slide 17 text

#pmtipslt そう PuLP ならね

Slide 18

Slide 18 text

#pmtipslt PuLPとは ● 線形計画問題を解くPythonのライブラリ ● 「コストと作業速度が違うメンバーに残業代が最小化する配分を行う」 みたいな問題が線形計画問題 ○ 赤字が制約条件、青字を求める関数が目的関数 https://colab.research.google.com/drive/1RWEAh 6aw_YDq6-v1E4IZYvIam2oz1QG1?usp=sharing https://gist.github.com/moomoo-ya/4569adcf3eb 358b5e67d8f8bbc07692b

Slide 19

Slide 19 text

#pmtipslt PuLPを使った線形計画法でタスク配分 【最適化するもの】 ● 残業代をもっとも安くする 【条件】 ● 3人チーム ○ ひよこ ○ つよつよ ○ マネージャー ● 所定労働 ○ 160時間 残業代 12 24 0 作業速度 5 10 8 所定作業量 800 1600 1280 作業量 3,680 まではノー残業!!

Slide 20

Slide 20 text

#pmtipslt 物理的な限界 560h ひよこ、つよつよは ノー残業!! 作業量8,000で 残業540時間

Slide 21

Slide 21 text

#pmtipslt 物理的な限界 560h ひよこ、つよつよは ノー残業!! 作業量8,000で 残業540時間 物理の壁を破ったのでボツ

Slide 22

Slide 22 text

#pmtipslt PuLPを使った線形計画法でタスク配分 【最適化するもの】 ● 残業代をもっとも安くする 【条件】 ● 3人チーム ○ ひよこ ○ つよつよ ○ マネージャー ● 所定労働 ○ 160時間 ● 残業制限 ○ 200時間 残業代 12 24 0 作業速度 5 10 8 残業なし作業量 800 1,600 1,280

Slide 23

Slide 23 text

#pmtipslt マネージャー →ひよこ →つよつよ、の順に振る 破綻 数字がおかしくなっている

Slide 24

Slide 24 text

#pmtipslt ①マネージャー ②ひよこ ③つよつよ の順にタスクを積むと8,000まで 対応できる強いチームになる 結論

Slide 25

Slide 25 text

#pmtipslt ①マネージャー ②ひよこ ③つよつよ の順にタスクを積むと8,000まで 対応できる強いチームになる 結論 あかんやろ SI案件などスポットでチームが組まれるときは最適解の場合もある ……そして人は死ぬ

Slide 26

Slide 26 text

#pmtipslt ひよこ ● ひよこに経験を積ませるのは大事 ○ ゆるめよりも、きつめに コントロールするのはよいと思う ○ でも残業200時間はプロジェクトが破綻しているだけ ● 割り当てタスクの難易度評価もちゃんとやる

Slide 27

Slide 27 text

#pmtipslt つよつよ ● 担当タスク以外にひよこの育成が積まれる(計画にない場合が多い ) ○ 育成大事 ○ 育成大事 ● 計画に影響のあることが発生するたびに何かする(計画にない)

Slide 28

Slide 28 text

#pmtipslt マネージャー ● そもそもキャパ3,680に対して 8,000にならないようにするのがマネージャーの仕事 ○ 最初から8,000ということは あまり ない ○ プロジェクト進行中に作業量が増加することで 8,000になる ● キャパを超えた段階 ※諸説あり で タスク消化ではなくスコープ制御などに奔走するべき ○ このあたりはリスクマネジメントの話になってくるのでまた今度

Slide 29

Slide 29 text

#pmtipslt タスク分配は カンタンには 機械化できない ● スポットで組まれたチームなら比較的カンタン ○ いわゆるデスマーチの温床 ● チームが継続することで極端に難しくなる ○ QCDに加えて育成、各メンバーの勤務事情、などなど ● 実際にはタスクの前後関係も大事 ○ PERT: Program Evaluation and Review Technique とかで管理 ● プロジェクトマネジメントは全部が全部この調子 ○ 基本の理論はあるし、それは スタート地点になる ○ チームごと、メンバーごとに最適解は異なる だから楽しい ● よってマネージャーには高い給料が払われる PERT図 : Wikipediaより

Slide 30

Slide 30 text

#pmtipslt 余談 ● 進捗予測とかの話はEVMとか絡めてもっと話したい ● PERTと線形計画の研究は割と行われている ○ 土木業界で多い ○ 「PERT 線形計画」で検索するといくつか論文が出てくるので数式に強い方はそちらもどうぞ ● PERTをモチーフにしたボードゲームを開発中 ○ PERTによる開発計画と、手戻りの苦しみを味わえるようにする予定 ○ 2021年秋 発表予定

Slide 31

Slide 31 text

#pmtipslt Thank ☺ you ● チームのキャパシティを把握 ● 給与制度とタスク割り当ての溝 ● タスク割り当てひとつとっても戦略的である ○ 少ない軸で考えると「だれかがしぬ」 ● マネージャーは高給取り ごちそうさまです ※諸説あり