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

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

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

moomoo-ya

November 04, 2020
Tweet

More Decks by moomoo-ya

Other Decks in Business

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  17. #pmtipslt
    そう PuLP ならね

    View Slide

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

    View Slide

  19. #pmtipslt
    PuLPを使った線形計画法でタスク配分
    【最適化するもの】
    ● 残業代をもっとも安くする
    【条件】
    ● 3人チーム
    ○ ひよこ
    ○ つよつよ
    ○ マネージャー
    ● 所定労働
    ○ 160時間

    残業代 12 24 0
    作業速度 5 10 8
    所定作業量 800 1600 1280
    作業量 3,680 まではノー残業!!

    View Slide

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

    View Slide

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

    View Slide

  22. #pmtipslt
    PuLPを使った線形計画法でタスク配分
    【最適化するもの】
    ● 残業代をもっとも安くする
    【条件】
    ● 3人チーム
    ○ ひよこ
    ○ つよつよ
    ○ マネージャー
    ● 所定労働
    ○ 160時間
    ● 残業制限
    ○ 200時間

    残業代 12 24 0
    作業速度 5 10 8
    残業なし作業量 800 1,600 1,280

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. #pmtipslt
    つよつよ
    ● 担当タスク以外にひよこの育成が積まれる(計画にない場合が多い

    ○ 育成大事
    ○ 育成大事
    ● 計画に影響のあることが発生するたびに何かする(計画にない)

    View Slide

  28. #pmtipslt
    マネージャー
    ● そもそもキャパ3,680に対して
    8,000にならないようにするのがマネージャーの仕事
    ○ 最初から8,000ということは あまり
    ない
    ○ プロジェクト進行中に作業量が増加することで 8,000になる
    ● キャパを超えた段階 ※諸説あり

    タスク消化ではなくスコープ制御などに奔走するべき
    ○ このあたりはリスクマネジメントの話になってくるのでまた今度

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide