#Book [[📒エンジニアリング組織論への招待]] ## 4.2 スケジュール予測と[[🗃️不確実性]] - [[🗃️見積もり]]を積み上げると、総作業時間を概算できる - 総作業時間 / 人数 = 必要な期間 - ↑だと多くの場合スケジュール遅延が発生する - 調査によると、[[🗃️プロジェクト]]にかかる期間は、総作業時間の立方根に比例する - [[🗃️スケジュールマネジメント]]は次の3つに注目する - [[🗃️制約スラック]](依存関係による無駄)を削減する - [[🗃️見積もり]]の予測可能性をあげる - [[🗃️バッファ|🗃️プロダクトバッファ]]の消費を可視化し改善する ### [[🗃️制約スラック]]と[[🗃️クリティカルパス]] - 全ての作業をどのメンバーでも行うことができて、タスク同士の依存関係が存在しなければ最も効率よく作業を行うことができる - この時[[🗃️制約スラック]]は0になる - プロジェクト期間を[[🗃️クリティカルパス]]より短くすることは不可能 - [[🗃️制約スラック]]を削減するためには以下の制約を外すことが重要 - [[🗃️リソース制約]] - 知識を要さなくても作業をこなせる仕組みを作るのが1つの手段 - 💭エンジニアしかできない作業を別の人にもできるようにすることで、制約を外して[[🗃️クリティカルパス]]を減らすことができる - [[🗃️依存制約]] - APIにUI作業が依存する -> APIの使用を決めてダミーデータを返すAPIを作る - [[🗃️制約スラック]]をXつ見えるようして、原因と解決のアイディアを出すことが重要 - 調整コストや意思決定も[[🗃️制約スラック]]を膨れさせる。会議。社長を呼べるのは月1度となると大きく膨れ上がる。 - 見積もりは人によって差が出る。どの程度の確率で終わると考えているのかという認識が揃わないといけない。 #### [[🗃️プリンシパル・エージェント理論]] - 依頼者と代理人の間には[[🗃️情報の非対称性]]が存在する - 代理人に嘘をついた方が得になると思わせる -> エージェンシースラック - 依頼者の利益が代理人の利益になるように監視やインセンティブを支払う必要があるコスト -> コントロールコスト - 代理人(情報を持つ側)が情報を開示し、非対称性を解消するために払うコスト -> シグナリングコスト - 経営者は、労働者を給与やインセンティブ報酬の形で提供することで、サボる方がトクだと思わせない環境づくりをする - 例) ストックオプション制度 - [[🗃️見積もり]]とエージェンシースラック - ビジネス担当とエンジニアの間には[[🗃️情報の非対称性]]が存在する - 予測をノルマとして扱うと、過負荷な労働が生まれクオリティは下がってしまう - -> 悲観的な[[🗃️見積もり]]に繋がってしまう - 悲観的になるというのは、見積もりを行う人の不安の量と紐づいている。不安が大きいほど、見積もりを悲観的に取る - 💭思い当たる節がある。確かに見積もりはあくまで予測という前提で情報が伝わるのであればあまり悲観的にならない気もする - 楽観的な見積もり -> 納期通りに機能が完成せず経営者を困らせてしまう - 悲観的な見積もり -> 納期には間に合うけど、パフォーマンスが出ていない印象を受ける #### スケジュール不安の「見える化」 - 「間に合うか、間に合わないか」ではなく、スケジュール予測が収束していくかどうかを管理するようにしないといけない - [[🗃️CCPM]] - [[🗃️プロジェクト]]の進捗率と、[[🗃️バッファ]]の消費率を定期的に観察する - プロジェクト進捗に対してバッファ消費の幅が多かったら調整する - 納期のセンシティブな案件と[[🗃️アジャイル|🗃️アジャイル開発]]を共存させる手法 - 多点見積もり - [[🗃️2点見積もり]] - [[🗃️3点見積もり]] - 不安の量を減らす方法 - 不安なタスクの順に問題解決をすると良い - 不安量の大きいタスクを解体する - 不安量の大きいタスクと、小さいタスクに分解できる - 優先順位の自由度が増す - スケジュール不安の発生源 - 使ったことのないライブラリの使用 - 外部との連携 - 詳細仕様が未決定 - 影響範囲が読みきれない - 不安部分のみを抜き出して、タスク化するためのアプローチ - 概念検証: サンプルコードを記述して、簡潔に検証する - [[🗃️テスト駆動開発]] & [[🗃️継続的インテグレーション]]で影響範囲を洗い出し - プロトタイピング - 💭[[🗃️スパイク]]的な扱いということだ - 相対的に[[🗃️見積もり]]をする -> 納期不安をかき立ててしまうのを避ける発想 - [[🗃️Tシャツサイズ見積もり]] - [[🗃️ストーリーポイント見積もり]] - [[🗃️プランニングポーカー]]の紹介 ### 計画ではなく実績から予測する #### [[🗃️ベロシティ]]と[[🗃️生産性]] -