プロジェクトとは
プロジェクトとは、納期が存在するシステム開発を指す(システム開発プロジェクト)。納期が存在しない業務は、プロジェクトとは呼ばない。例えば、運用や保守は、より詳細な作業単位での業務上の納期は存在するであろうが、顧客企業としてはシステムが稼動する限り続く業務であるため、プロジェクトではない。
プロジェクト管理
プロジェクトには、スケジュールやコストを決定する責任者であるプロジェクト・マネージャが存在する。プロジェクト・マネージャに期待される業務は重責で、プロジェクトの成功にはプロジェクト・マネージャの手腕に大きく関係する。 プロジェクト・マネージャの代表的な業務を次にあげる。
- 顧客とのスケジュール交渉
- 顧客との開発コストの交渉
- 開発するシステムの品質保証
- 開発するシステムの要件定義
上記のいずれも、QCDに大きく関係する内容である。プロジェクト・マネージャは、システム開発の開発チームの最高責任者であり、開発の品質、価格、納期を決定し、保障する義務がある。例えば納期に遅れてしまった場合、顧客企業からはペナルティが課せられ、開発側の企業がその代償を払うことになるが、それら全ての結果がプロジェクト・マネージャの業績として扱われる。したがって、プロジェクトが無事成功した場合も、プロジェクト・マネージャがもっとも評価される。これは、ある組織のピラミッド型と同じような仕組みである。
プロジェクト・マネージャに必要な能力
責任が重大であるゆえ、プロジェクト・マネージャに必要な素質もそれ相当のものである。特に重要な5つの能力について説明する。
スケジュール管理能力
スケジュール管理能力は、時間の管理能力と言い換えても良い。システムの開発規模を詳細化し、それぞれの開発規模から必要な日数を見積もる。その見積もりを元に、スケジュールを計画する。
コスト感覚
最優先のタスクを完了させるために、大量の人員を割いたり優秀な人員を配置させるなど、対策を立てられる能力が求められる。さらに、スケジュールに遅延が生じた場合は、それをどのようにしてカバーするのか、説明責任を持つ。なお、見積もりはあくまで予想である。したがって、見積もりから立てられたスケジュールには、必ずズレが生じる。見積もりの精度を上げることは重要であるが、100パーセントの精度を誇ることは魔法使いでもできないだろう。
リスク(責任分解)感覚
リスク(責任分解)感覚は、システムに要求された仕様に対するリスク感覚を指す。例えば、ある機能の仕様がその時点では不明な状況で、その機能の性能を保証することは不可能である。しかし、システム開発を受注したいがために、顧客企業にYESの返事をしてしまうことが非常に多い。不可能なものを不可能と言えるかどうか、不可能を実現するための提案、実現できなかった場合の対策(リスクヘッジ)を考えなければならない。プロジェクト・マネージャは、システム開発に潜在しているリスクを減らし、失敗しないように舵をとる役割である。
チーム・マネジメント能力
チーム・マネジメント能力は、プロジェクト・マネージャに限った能力ではなく、チームをまとめるために必要な能力である。特にプロジェクト・マネージャは、大規模な数百人のチームのトップに立つ場合も珍しくなく、管理下の担当者を従えるための人心把握が必要である。プロジェクトは信頼関係の上に成り立つといっても過言ではなく、ときには厳しい要求をメンバーに依頼することも避けられない。
交渉力
交渉力は、顧客との調整能力を指す。顧客は無理難題を要求するもので、実現するための方法や、実現不可能な理由、実現するために必要なコストと時間の根拠などを、論理的に説明しなければならない。顧客との交渉は経営判断の場であることが多く、その場面で決定した内容には絶対的な義務が生じる。それらの重責に耐えられる精神力も非常に重要である。