Upgrade to Pro — share decks privately, control downloads, hide ads and more …

一番安い子だーれだ?~黒字化のための無慈悲なタスク配分~ / Distribute tasks

0aa238a274c2397214b20d6eed58939b?s=47 moomoo-ya
November 04, 2020

一番安い子だーれだ?~黒字化のための無慈悲なタスク配分~ / Distribute tasks

2020/11/4に開催されたプロジェクトマネジメント Tips LT会 vol.1にて発表した資料です。

関連リンク:

・過去のPjMネタ
https://www.slideshare.net/isamusuzuki54/forkwell17-62409396
・PuLPサンプルコード
(Colab版) https://colab.research.google.com/drive/1RWEAh6aw_YDq6-v1E4IZYvIam2oz1QG1?usp=sharing
(gist版) https://gist.github.com/moomoo-ya/4569adcf3eb358b5e67d8f8bbc07692b

0aa238a274c2397214b20d6eed58939b?s=128

moomoo-ya

November 04, 2020
Tweet

Transcript

  1. #pmtipslt 2020.11.4 プロジェクトマネジメント Tips LT vol.1 Isamu Suzuki / @moomooya

    一番安い子だーれだ? ~黒字化のための無慈悲なタスク配分~
  2. #pmtipslt 鈴木 勇 / Isamu Suzuki / @moomooya LTの売人 株式会社ラクス

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

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

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

  6. #pmtipslt プロジェクトマネジメントの管理対象 • スコープ • スケジュール • コスト • クオリティ

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

    • リソース • コミュニケーション • リスク • プロキュア(調達) • ステークホルダー ※PMBOKで定義されている10の知識エリアより抜粋  (残り1つはこれらを統合する知識)
  8. #pmtipslt ITプロジェクトのタスク配分のはなし

  9. #pmtipslt 想定している状態 • 複数人のチームで開発 ◦ 簡略化のため、今回の登場人物は 3人 ▪ ひよこ ▪

    つよつよ ▪ マネージャー • なんやかんやで残業発生するくらいの忙しさ • マネージャーの視点で話します ◦ 今の会社ではマネジメントしてないけど
  10. #pmtipslt タスク配分どうするか?

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

    あかん
  12. #pmtipslt じゃあどうする? • スクラム的に各自タスクを取っていく? ◦ みんな適度に強いときは問題ない ◦ タスク粒度を揃えて扱うのはとてもよいアイディア ▪ 進捗管理を「完了作業

    量」ではなく「完了タスク 数」でできる ◦ ひよこがいるときのフォローはどうする? • マネージャーが割り当てる? ◦ 全体視点でタスク配分 できるのはよい ▪ 育成など、長期的な視点含む ◦ マネージャーがボトルネックになる
  13. #pmtipslt 結局のところ、あわせ技 • 粒度をある程度揃えてタスク細分化 ◦ 最初にすべてやる必要はない「大きく分割」 →「直近分を細分化」 • つよつよは自律的に動いてもらう ◦

    部分的に細分化もやってもらえる • ひよこにはマネージャーが割り当てる ◦ 少しずつ自分でタスクを取れるように促しつつ • マネージャーの最終手段は「自分で拾う」 ※実現にはコミュニケーションが必須
  14. #pmtipslt ダメなパターン • タスクを取れないひよこの放置 • 自分のタスクしか見ないつよつよ • タスク取りや、タスク細分化を任せられないマ ネージャー

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

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

  17. #pmtipslt そう PuLP ならね

  18. #pmtipslt PuLPとは • 線形計画問題を解くPythonのライブラリ • 「コストと作業速度が違うメンバーに残業代が最小化する配分を行う」 みたいな問題が線形計画問題 ◦ 赤字が制約条件、青字を求める関数が目的関数 https://colab.research.google.com/drive/1RWEAh

    6aw_YDq6-v1E4IZYvIam2oz1QG1?usp=sharing https://gist.github.com/moomoo-ya/4569adcf3eb 358b5e67d8f8bbc07692b
  19. #pmtipslt PuLPを使った線形計画法でタスク配分 【最適化するもの】 • 残業代をもっとも安くする 【条件】 • 3人チーム ◦ ひよこ

    ◦ つよつよ ◦ マネージャー • 所定労働 ◦ 160時間 残業代 12 24 0 作業速度 5 10 8 所定作業量 800 1600 1280 作業量 3,680 まではノー残業!!
  20. #pmtipslt 物理的な限界 560h ひよこ、つよつよは ノー残業!! 作業量8,000で 残業540時間

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

  22. #pmtipslt PuLPを使った線形計画法でタスク配分 【最適化するもの】 • 残業代をもっとも安くする 【条件】 • 3人チーム ◦ ひよこ

    ◦ つよつよ ◦ マネージャー • 所定労働 ◦ 160時間 • 残業制限 ◦ 200時間 残業代 12 24 0 作業速度 5 10 8 残業なし作業量 800 1,600 1,280
  23. #pmtipslt マネージャー →ひよこ →つよつよ、の順に振る 破綻 数字がおかしくなっている

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

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

  26. #pmtipslt ひよこ • ひよこに経験を積ませるのは大事 ◦ ゆるめよりも、きつめに コントロールするのはよいと思う ◦ でも残業200時間はプロジェクトが破綻しているだけ •

    割り当てタスクの難易度評価もちゃんとやる
  27. #pmtipslt つよつよ • 担当タスク以外にひよこの育成が積まれる(計画にない場合が多い ) ◦ 育成大事 ◦ 育成大事 •

    計画に影響のあることが発生するたびに何かする(計画にない)
  28. #pmtipslt マネージャー • そもそもキャパ3,680に対して 8,000にならないようにするのがマネージャーの仕事 ◦ 最初から8,000ということは あまり ない ◦

    プロジェクト進行中に作業量が増加することで 8,000になる • キャパを超えた段階 ※諸説あり で タスク消化ではなくスコープ制御などに奔走するべき ◦ このあたりはリスクマネジメントの話になってくるのでまた今度
  29. #pmtipslt タスク分配は カンタンには 機械化できない • スポットで組まれたチームなら比較的カンタン ◦ いわゆるデスマーチの温床 • チームが継続することで極端に難しくなる

    ◦ QCDに加えて育成、各メンバーの勤務事情、などなど • 実際にはタスクの前後関係も大事 ◦ PERT: Program Evaluation and Review Technique とかで管理 • プロジェクトマネジメントは全部が全部この調子 ◦ 基本の理論はあるし、それは スタート地点になる ◦ チームごと、メンバーごとに最適解は異なる だから楽しい • よってマネージャーには高い給料が払われる PERT図 : Wikipediaより
  30. #pmtipslt 余談 • 進捗予測とかの話はEVMとか絡めてもっと話したい • PERTと線形計画の研究は割と行われている ◦ 土木業界で多い ◦ 「PERT

    線形計画」で検索するといくつか論文が出てくるので数式に強い方はそちらもどうぞ • PERTをモチーフにしたボードゲームを開発中 ◦ PERTによる開発計画と、手戻りの苦しみを味わえるようにする予定 ◦ 2021年秋 発表予定
  31. #pmtipslt Thank ☺ you • チームのキャパシティを把握 • 給与制度とタスク割り当ての溝 • タスク割り当てひとつとっても戦略的である

    ◦ 少ない軸で考えると「だれかがしぬ」 • マネージャーは高給取り ごちそうさまです ※諸説あり