はじめに
こんにちは、PMの伊藤です。今回はDigeonが考えるプロジェクトマネジメントの定義とプロジェクトマネージャーの役割についてご紹介します。
プロジェクトマネジメントの定義
プロジェクトマネジメントは、プロジェクト上の目標に対して影響する不確実性(リスク)をコントロールし、円滑に目標を達成させる行為である。
プロジェクトマネージャーの役割
プロジェクトマネージャーは自身が担当するプロジェクトに対するすべての裁量を持ち、与えられた裁量を執行することで、プロジェクトの目標を達成させる役割を持ちます。
すべての裁量を持つため、プロジェクトに関わるあらゆる責任はプロジェクトマネージャーが負います。
以下プロジェクトマネージャーをPMと呼ぶ。
システム開発におけるプロジェクトマネジメント
納期管理
PMは契約納期を遵守する責任を負います。
契約納期までの工程を工程表テンプレートを元に作成し、要件定義などの大工程から最小単位として個人のタスクレベルまで落とし込み、最小単位のタスクには執行者を割り当て、PMと執行者による2点見積もりを行います。
PMは2点見積もりにより表現される不確実性をマネジメントする施策(異なる執行者のアサイン、開発リソース増強、代替案による合意など)をリストアップし、事前に定めた損切りラインに至った時点でリストアップされた中から適切な施策を執行します。
品質管理
PMは開発するシステムが要件定義書通りであること、つまり瑕疵がないことに責任を負います。
開発レベルでのユニットテスト(・インテグレーションテスト・E2Eテスト)の実装がない場合はソースコードの変更をマージしません。
また開発者はMerge Requestの単位で手動テストを正常系・異常ともに実施し、バグがないことを可能な限り検証する責任を持ちます。
テストフェーズでは動作確認仕様書テンプレートをもとに、正常系・異常系とも漏れが少なくなるようテストを実施します。
また要件定義書を満たすことを当然とし、早い段階から顧客にシステムを触ってもらい、UXを最大化できるようフィードバックの回数を増やします。
予算管理
PMは与えられた開発予算を遵守することに責任を持ちます。
資源管理
人員や外部サービスの利用など必要な資源を調達し、バッファの確保と資源の維持に努めます。
責任管理
ある作業の範囲を定義し、責任者を割り当て、PM責任範囲の切り分けと運用に責任を持ちます。
情報管理
上記の各管理対象が適切に管理されるようステークホルダーと必要なコミュニケーションを取り、完全に管理された状態になるまで継続して伝え続けます。またあらゆる情報が一貫性を持つ状態を維持する必要があります。
リスクとリスクマネジメント
リスクとは、発生すればプロジェクトの目標にプラスもしくはマイナスの影響を与える不確実性を持つ事象のことを指します。
またリスクマネジメントとは、プロジェクトの目標に影響する不確実性のある要素を把握・継続的に監視し、不確実な要素を低減させることで、プロジェクトを目標通りに遂行します。
リスクマネジメントのプロセス
リスクマネジメントは以下のプロセスで構成されます。
1. リスクの発見
2. リスクの評価
3. リスク対策の実施
4. 残留リスクの評価
5. 対応済みタスクについては3~4を繰り返す、新規リスクは継続的に発見してプロセスの監視下に置く
新規リスクを発見した場合、発生時の損害の大きさと発生確率の期待値ベースで各種リスクに優先度を付け、このうち無視できるリスク以外をリスクマネジメントのプロセスに組み込みます。
リスク対策
1. リスク回避
1. リスクになりうる不確実性を取り除くことでリスクを発生させない方法
2. リスクを100%取り除くことになるため、重大なリスクを中心に対応する
2. リスク低減
1. リスクの不確実性を下げる、もしくは問題発生時の影響を下げる方法
2. リスク回避だと労力が大きすぎるが、低減させるだけであれば費用対効果が合うといったケースで採用する
3. リスク移転
1. 自身の保有するリスクを他者に肩代わりさせる方法(いわゆる保険等)
4. リスク保有
1. 発生確率が低く損害の小さいリスクはそのまま保有する
さいごに
DigeonはPM人材の育成をしています。キャリアップを目指すエンジニアの方はぜひご応募ください。