Home > 2 月 5th, 2010

2010.02.05

改めてプロジェクト管理を考えてみる

皆さんは、こんな経験ありませんか。

  • 「欲しいのはこれじゃない!」と言われる
  • システムをリリースしても、バグが多発する
  • 納期が守れない
  • 必死で作ったのに赤字

システム開発に関わっている人なら誰しも一度は経験していることなのではないかと思います。プロジェクトは、まさに生き物です。努力、根性も重要ですが、これをシステマティックになんとかする!それがプロジェクト管理が必要とされる所以です。
エンジニアは、技術のスキルを高めるのと同時に、チームで仕事をする上でプロジェクト管理についての知識やスキルも高める必要があると思います。そこで今回は、改めてプロジェクト管理の基礎をまとめてみたいと思います。

まずはじめに、プロジェクトの成功とは、一般的にQCDが全て満たされた時に成功したと言われます。QとはQuality(品質)、CとはCost(コスト)、DとはDelivery(納期)です。ただし、品質の達成なくして、コストと納期を守っても意味がありません。

次にプロジェクト成功のためには、次に挙げるようないくつかの条件が必要です。

  • 顧客が何を求めているのかを理解し、ゴールへの合意がなされていること
  • 品質、コスト、納期についての現状が把握できること
  • 問題が発見された場合、それに対してのアクションをとることが可能なこと
  • 顧客、メンバー間で認識の齟齬がないこと、相互に信頼関係が築かれていること
  • ・・・

そして、これらを満たすために必要なアクションがプロジェクト管理であるといえます。PMBOKという、プロジェクト管理の知識体系では、そのアクションとして次の9つの管理体系を定義しています。今回は、システム開発において特に重要な、品質管理、スケジュール管理を掘り下げてみたいと思います。

  1. 統合管理
  2. 品質管理
  3. スケジュール管理
  4. コスト管理
  5. スコープ管理
  6. メンバー管理
  7. コミュニケーション管理
  8. リスク管理
  9. 調達管理

「品質」の定義は難しく、バグが少ないこと、機能がたくさんあること、アフターサービスが優れていること、、、、いろんな考え方があると思いますが、視点を変えると「顧客が満足していること」、それが品質が良いと言うこともできると思います。顧客満足は、良いものを多く提供すれば上がりますが、リソースには限界があります。したがって、顧客の期待値を適切なモノにする事も一方では重要で、最小限の成果物で顧客満足を達成するのが最善だと言えます。とても難しいことではありますが。

次にスケジュール管理ですが、最も重要なのは、何を以って進捗とするのかということです。それは、測定可能な指標でなければならず、その上で予実差異を把握できる仕組みを構築することが必要です。その際ポイントとなるのは、ターゲットとマイルストーンを設けること、クリティカルパスとタスクの依存関係を見極めること、遅れと学習曲線を想定することだと思います。

いかがでしたか。今回はプロジェクト管理の基本を少しご紹介してみました。ただ、いくらプロジェクト管理をしっかりやったとしても、顧客の要望は変わり、モチベーションは上下し、想定外の問題は起きるものです。そんな時に大切なのは、計画を遵守すること以上に、変化に対応することではないでしょうか。

厳しい状況でもチーム一丸となってやり切る、1+1が2を超えるようなそんな力が必要とされ、そんな力を持っているチーム、組織は強いと思います。そんな高みを目指しながら、プロジェクトという生き物と楽しく、元気に付き合っていきたいと思います。