プロジェクトマネージャーの開発プロジェクト管理

#エンジニアブログ

システム開発・構築案件では、規模を問わず案件を完遂させるためにプロジェクト管理が重要になってきます。案件の成功は、プロジェクト管理の仕方によって左右されるとも言われるくらいです。それは、プロジェクト管理を適正に行うことで、顧客の要望に最大限に応えながらも、自社側での設計・構築を予算・期限通りに進めることにつながっていくからです。
プロジェクトの案件責任者としてプロジェクトマネージャー(以降、PM)は、どのようにしてプロジェクト管理を行い、どのような視点に基づいてプロジェクトメンバーに指示を出しているのでしょうか。
今回は、今後PMを目指そうとしているプログラマー(以降、PG)や、まずはシステム開発の現場で経験を積もうとしている方向けにプロジェクト管理について取り上げていきたいと思います。

 

 

■プロジェクト管理とは

 

プロジェクト管理とは、プロジェクトのスケジュールや課題、メンバーのタスク・人員調整、コミュニケーション等、プロジェクトを円滑に推進していくためにコントロールしていくことです。
具体的には予定表を管理しつつ、進行が遅いと判断すればメンバー追加や、工程の組み換えをして対処することもあります。また、想定外の問題や機能上の矛盾が発生してしまった場合には、影響を与えない対応策や代替え案の検討を行っていく必要があります。
このようにして、プロジェクト管理は、決められた期限と予算の制約のもと、プロジェクトの目的を達成していきます。

実際にはPGとPMの役割によって、プロジェクト管理の捉えた方が異なってきます。
PGの場合には、既に決められたスケジュールをもとに、自身の担当スケジュールが提示され、それに沿って開発します。場合によっては、別チームと連携が必要になる機能連携の開発では、予めデータ連携の仕様確認や共同テストの内容・実施タイミングがPMから指定され、それに沿って打ち合わせや作業に参加し、自身の担当範囲のドキュメント作成やスケジュール案を準備していくことになります。

 

■プロジェクト管理の具体的な内容

 

それでは、プロジェクト管理ではどのようなことをしていくのか、具体的に紹介していきたいと思います。プロジェクト管理として実施すべき内容はプロジェクトによって異なり、また多岐にわたりますので、ここでは重要な要素について3点取り上げ、PGとPMの役割の違いについても触れていきたいと思います。

 

・スコープ管理

まずプロジェクトを始める前に取り組むのが、スコープの定義です。スコープとは、完成イメージの定義とそのためにどのような作業が必要かを決めることです。
作業内容によっては、私たち自身が主に担当する作業や反対に顧客側が主に担当しないとできない作業等、どちらが主担当となるのか役割分担を明確にした上で合意するように心掛ける必要があります。
また、プロジェクト進行中に顧客からスコープ外の要望が出てくることもありますが、プロジェクト開始時(前)にスコープをきちんと合意しておくことで、揉めることなく交渉することが可能になります。

 

・スケジュール管理

スケジュール管理は、前述のスコープで定義した内容をより細かい作業内容(タスク)に落とし込み、プロジェクトの最終ゴール期限、プロジェクトの重要な中間点(マイルストーン)から逆算して各作業内容を実行可能なスケジュールとして作成します。この作成されたスケジュールを、WBS(Work Breakdown Structure)と呼びます。
WBSで一つポイントになるのが、お客様側の承認タスクと期間を入れておくことです。実際のプロジェクトでこの部分が抜けているケースは往々にしてありますが、作業計画やドキュメント確認等はお客様側の確認や指摘事項への修正等が必要になるため、計画においてはそれも見込むことでスケジュール遅延を抑止することができます。

 

 

・課題管理

プロジェクトを進めていく上では、発生した課題や確認事項はきちんと漏れなく管理し対応していく必要があります。課題や確認事項を放置したままプロジェクトを進めてしまうと、バグの可能性や機能面での重大な欠陥や追加で必要な作業が漏れてしまう等、プロジェクトが失敗する可能性を高めてしまうからです。
そのため、プロジェクト進行中に出た課題や確認事項は、課題管理表や課題管理ツール等で、全て確認できる状態にします。課題を課題管理表に記載した上で誰が対応するのか、いつまでに対応する必要があるのかを明確にし、定期的に課題の状況を確認することが必要になります。

 

上記3点は、プロジェクトの進行という視点においてはPMが管理するポイントとなりますが、その中で稼働するPGにおいても必要なことがあります。
PGはプロジェクトの中では、主に実作業として進行する側ではありますが、システム概念や開発期間、プロジェクトの目的といった、全体について理解しておくことが特に重要です。自分の役割がどこかを把握し、その役割がどの部分に影響するのか、を理解しておくことで、スケジュールへの意識を高めることや、場合によっては遅延してしまう際のリカバリー、開発を進めている中で発生した問題への対処など、PMとの連携が必要な事象が発生した場合も問題解決へスピーディーな対応をすることが可能です。またPMへのキャリアアップを考えるならPMが設計したプロジェクトの全体像を把握することは、プロジェクト管理の個別の重要要素がどこでどう機能するかの理解を助けることとなるはずです。

 

■PMとしてプロジェクト管理をする上で身につけておきたいスキル

 

プロジェクト管理をする上で重要な要素を見てきました。PGの役割の際には指示された範囲を期限の進捗に合わせて開発していきますが、実際にプロジェクト管理をすることになった場合には、求められるスキルが異なってきます。それは何か一つの突出したスキル、例えば開発スピードが早い等ではなく、バランスよく様々なスキルが求められます。そのスキルは人によってそれぞれ特徴がありますが、ここでは特に重要と考えられるスキルを3つピックアップしました。

 

・コミュニケーションスキル

PMは社内のメンバーとの話し合いや、お客様との調整・折衝を行う立場にあります。
社内においては、円滑にコミュニケーションを図ることだけでなくリーダーシップを発揮してプロジェクトを推進していくことも求められます。また、お客様に対しては、無理な要求や当初のスコープにはない要望が出た際に折衝を行う必要がありますので、普段から良好な関係を築き、対等な関係を作ることも重要なポイントとなります。

 

・幅広い分野の技術知識

プロジェクトで使われる技術やお客様の環境で使われているシステム等に対して、技術的に理解していく必要があるため、アプリケーション開発からインフラ構成等の幅広い技術知識があると望ましいです。
何かの領域において突出して高い技術知識までは必要ありませんが、お客様や社内の担当者と調整をする際、システム全体として問題や課題がないか、技術・構成的な矛盾がないかの判断や確認を求められます。そこで幅広い技術知識があると、技術要素の組み合わせの矛盾に気づけることやシステム全体を理解してバランスを意識した判断ができることにつながります。

 

・論理的思考力(ロジカルシンキング)

論理的思考力は、PMだけでなくビジネスマンにとっても基本的なスキルとも言えますが、プロジェクト管理においてはどの場面でも求められるスキルです。
一例として、スケジュールを作成するに、プロジェクトゴールから筋道を立てて逆算していく必要がありますし、課題が発生した場合には、その課題に対して何が原因でこれからどう対処していくのかを整理していく必要があります。お客様へ何かを説明する際には、いかに分かりやすく伝えられるかを考え、情報を構造化して伝える必要があります。

 

 

■まとめ

 

よく聞くプロジェクトの失敗や炎上は、スキル不足もありますが、作業内容の認識違い、円滑にコミュニケーションが取れていない、メンバーの人数が足りてない等、プロジェクト管理の不備によって引き起こされていることが多々あります。この点においてプロジェクト管理の重要性は言うまでもありません。また、PMの管理がどんなにうまくても、プロジェクトのメンバーやお客様の協力なしではプロジェクトの成功は困難であるため、PMとしてはプロジェクト全体が1つのチームだという意識も大切です。今後、PMを目指そうとしている方は、多様なスキル、経験が求められますので、必要なスキルを意識し、しっかりと身に着けていくためにPMの視点をもってプロジェクトに参画することが最初のステップになることでしょう。

関連する記事