部屋の隅っこで書く技術ブログ

中の人は20代後半Web系エンジニアです。テーマは闇鍋ですが、マネジメント、Ruby/Rails、ブロックチェーンの話題が多めです。

【PM試験対策7】コスト・マネジメント

f:id:expajp:20180317183726p:plain

1ヶ月ぶりです。ということはPM試験の勉強も1ヶ月遅れ……

なんでこんな遅れてるんだろうと思いながらカレンダーを見返すと、社外プレゼンが3本あったのでそれに追われていたり、弾丸で実家に帰っていたり、いよいよ仕事が忙しくなってきたり、にもかかわらず2月にほったらかしてたプライベートのタスクが炎上したりでした。

本当に忙しかったり不可抗力だったり自業自得だったりですね。

今日は「コスト・マネジメント」です。

コスト見積

  • 計画プロセス群に属する
  • インプット
    • コスト・マネジメント計画書
    • 人的資源マネジメント計画書
    • スコープ・ベースライン
    • プロジェクト・スケジュール
    • 後略
  • ツールと技法
  • アウトプット
    • アクティビティ・コスト見積
      • これは当たり前
    • 見積の根拠
      • たぶん、定型フォーマットはない。。。
      • 人月計算強いんだよなあ、こういうところで
    • プロジェクト文書更新版

パラメトリック見積

  • 過去のデータと(ソースコード行数などの)変数との統計的関係を用いて、作業コストを見積もる技法
  • COCOMO法
    • 見積工数=(予想プログラムステップ数×開発生産性)指数倍率×補正係数
      • なんもいうとらんのと一緒やんけ!
    • 以下の手順に従う
      • プログラムステップ数を見積
        • このあたりで過去のデータを参考にする
        • 行数を1000行単位で見積もるらしいが……
      • 開発生産性を調べる
        • ここまで調べると、過去のデータに基づいた場合の今回の見積工数が算出できる
      • 指数倍率を適用する
        • これはメンバー数によるコミュニケーションコストの増大を参考にすることを意味する
        • 開発規模に対し、下に凸な2次曲線となる
      • 補正係数を適用する
        • 不確定要素をなるべく算定に入れるため
        • 過去の出題では、以下のような要因を算定に入れていた
          • 設計チームのスキル
          • 実装チームのスキル
          • 開発スケジュール
          • 設計技法の適用
          • 開発ツールの使用
          • アプリケーションの複雑度
        • この表はひとつの指標として参考になりそう
  • ファンクションポイント法
    • 算定の基礎数値をもとにファンクションポイント数を算出し、それにCOCOMO法同様の補正係数をかけることで工数を計算する
    • 算定の基礎数値の決定
      • 内部論理ファイル
        • システムのテーブル数、ファイル数
        • ILF
      • 外部インターフェイスファイル
        • 外部システムとのデータ交換を行うためのテーブル数
        • EIF
      • 外部入力
        • 入力画面数
        • EI
      • 外部出力
        • 出力帳票の数
        • EO
      • 外部参照
        • 参照画面の数
        • EQ (External inQuiry)
      • IFPUG法(International Function Point Users Group method)での略称がアルファベット
    • 上記の基礎数値の複雑度を高中低の3つに分類
    • ファンクションポイント数を算出
      • さきほどまとめた基礎数値の表に重み係数を乗じる
      • 人月単位になるように重み係数を算定する
        • こうなるように、過去の資産を利用
    • 補正係数の算出と適用
      • こちらも過去問が出ている。0点5点10点の3段階評価
      • 要因は以下の通り
        • 分散処理
        • 応答性能の制約
        • エンドユーザの操作優位制の制約
        • DBバックアップをホットで取るかコールドで取るか
        • 再利用可能性の大きさ
        • 開発の拠点の分散度合い
        • 処理の複雑度の高さ
    • 外部設計完了に近づくにつれて精度が向上する

三点見積

  • とてもシンプル、現在採用中
    • 楽観地、平均値、最悪値を加重平均
    • 分布によって計算を変えることがある
  • 過去の変数に基づかないので、パラメトリック見積ではない

予備設定分析

  • リスクに備えて設定する予備の量をどのくらいにするか、という分析、
  • 2つある
    • コンティンジェンシー予備
      • 既知のリスクに対応する予算や期間の余裕
    • マネジメント予備
      • 不測の自体に対応する予算や期間の余裕のこと
      • だいたい、プロジェクト全体で一括

コスト・コントロール

  • これは計画ではなく、監視/コントロールプロセスに属する
  • インプット
    • プロジェクト・マネジメント計画書
    • プロジェクト資金要求事項
    • 作業パフォーマンス情報
    • 組織のプロセス資産
  • ツールと技法
  • アウトプット
    • 作業パフォーマンス情報
    • コスト予測
    • 変更要求

アーンド・バリュー・マネジメント

  • 工事進行基準のように、現在までに稼いだお金とかかったコストを対照させて管理するマネジメント手法
  • 以下の3つの金額を使用する
    • PV(Planned Value)
      • スケジュールされた作業に割り当てられた予算
    • EV(Earned Value)
      • 完了された作業量を予算で換算した金額
    • AC(Actual Cost)
      • 完了した作業のために支出された実コスト
  • 日別に管理すると、グラフを描くことができる
  • スケジュール差異とコスト差異
    • スケジュール差異はEV-PV:計画と稼いだカネの差
    • コスト差異はEV-AC:実際に稼いだカネ
    • 変動コストは人件費のみなので、スケジュール差異は予定の巻き押しをお金で表したものになる
  • スケジュール効率指数とコスト効率指数
    • これは別に……
    • 上記の概念を引き算ではなく割り算で表現したもの
  • 今後のプロジェクトのコスト予測
    • 今後のコスト予測とはETC(Estimate To Competion=完成までのコスト見積)を算出することである
    • 状況によって計算は異なる
      • 現在のコスト差異が挽回可能な場合
        • この場合の残りコストはシンプルで、もらえるお金と現時点でかかっているコストの差
        • そりゃまあそうだろう
      • 現在のやり方をひっくり返すケース
        • 新しいやり方で再見積もり
        • 再見積もりのコストや新しい方法への習熟コストなどがかかるので、かなり思い切った決断になる
        • 残りコストをわざわざ計算するまでもないというか、そのときの見積がそのままETC
      • 現在のコスト差異の傾向が今後も続くと予想されるケース
        • 残りのお金(予算ー現時点EV)をコスト効率指数(CPI: 現時点EV/実コスト)で割ることで補正して求める
        • こちらはスケジュールの遅れを勘案してないので、早い段階で人員追加を行ったケースとかんがえられる
      • 現在のコスト差異、スケジュール差異の傾向が今後も続くと予想されるケース
        • 残りのお金をコスト効率指数とスケジュール効率指数の積で割って補正する
          • (BAC-現時点EV)(現時点PV現時点実コスト)/現時点EV2
          • ここまで来ると抽象度が高い
        • 人員追加を行っておらず、スケジュール遅れによるコスト高になっているケースとかんがえられる

残作業効率指数

  • 残り予算と残り作業にかかるコストの比(残り予算に対する予想コストの割合)
    • つまり、これが1を超えていると赤字
    • また、この値が残り作業で出さなくてはならない生産性となる
    • 別に、個々人の生産性とは限らないのがポイント
    • マネージャは人員追加と手順短縮が使えるが、なるべく使いたくないですよね……
    • 交渉による工数削減と順次リリースあたりが落としどころか
    • 界王拳が使えたらなあ
  • 残り作業にかかるコストの計算方法には2通りある
    • 「予算の残り」を採用するか
    • 「現在までの実績から予想される、残作業に係るコスト」を採用するか
  • 後者を採用すると1を下回るケースでは、予算オーバーしていることを伝えなくてはならない
    • 「1を下回っている」ことは伝えてはならない

問題演習から

  • コスト効率指数=ここまでに稼いだお金/ここまでにかかったコストなので、要はここまでのコスパを表している
    • 無次元数であること、現在実績を反映した値であることに注意する
  • 計算問題は無勉でも正解できる
  • どうでも良いけど問題1の選択肢エの解説に誤植を発見

常識的な数字の感覚を持っていれば普通に解ける感じの章でした。

次は「品質マネジメント」ですがこの章は長い……!頑張って挽回します。