プログラマSEがプロジェクトマネージメント能力をつける方法
「マネージメントってなんやねん?」
「PMって何もしてないように見えるよな?うざいだけみたいな?」
「プロジェクトマネージメント」って何を表しているのかがとても広い言葉です。
直訳すると「プロジェクト管理」という意味になります。
「管理する」というのもなかなか掴みどころがない言葉です。PMが何もしてなくてもそのチームがうまく仕事できていれば、「管理できてる、マネージメントできてる」ということになります。
「何もしないリーダーが一番素晴らしい」という主張の本があります。
その会社には、うまくいくための仕組みができているので、管理を何もしなくてもうまくいく、そういう仕組みをつくれたリーダーこそが素晴らしいというものです。
ソフトウェア開発のプロジェクトは即席で作ったチームなので、長年かけて作り上げた仕組みは基本的にはないので、マネージャーがやるべきことが必ずあります。
ですから、「何も管理しない、おれは任せるタイプのリーダーなんだ」という人がたまにいますが、それは単に仕事をしてないだけです。
では、何をすればいいのか?詳しく紹介します。
管理すべき項目を知ろう
プロジェクトマネージメントの系統的な知識体系であるPMBOKでは、管理項目を次のように定義しています。
- スコープ管理
- スケジュール管理
- コスト管理
- 品質管理
- 組織・要員管理
- コミュニケーション管理
- リスク管理
- 外注管理
- 統合管理
PMというと「進捗管理」が思い浮かびますが、これは2番のスケジュール管理に含まれます。
進捗が予定通りいってるかを見るだけでなく、スケジュールが妥当であるか、よりうまくいく可能性の高い日程は組めないかと努力することが本当のスケジュール管理です。
よくPMが言う「進捗遅れてるから頑張れ!」は管理を成していません。
また、PMをやるといってもこれらすべてを管理するとも限りません。
例えば、予算の管理をしない場合があります。チームの指揮をとってほしいけど、予算は別の偉い人たちが決めると言ったケースです。
なので、自分が管理すべき項目について、どうやっていくかを考えていきます。
たまたまうまくいったケースを勘違いしない
実際、PMが何もやらなくてもうまくいくケースはあります。
特に何もやってないんだけど、プロジェクトがうまくいって「おれPMの能力あるじゃん!」と思っていたら別プロジェクトでは全然うまくいかないなんてことがあります。私も経験しました。
管理するとは何かというと、「うまくいくよう働きかける」ということです。
進捗を管理するのであれば、進捗がうまく進むように働きかけます。
進捗がうまく進むためには、
- 作業の無駄を省く
- 不要な機能を削る
のような生産性を上げるための働きかけをします。
進捗遅れの対策としては、
- 納期を延ばす(スケジュール管理)
- 機能を絞る交渉をする(スコープ管理)
- 人員を追加する(組織・要員管理)
などがあります。
各管理項目に対して、現在状況を確認して、良い状況であればキープできる・さらによくなる働きかけをします。
うまくいってないなら、それをカバーする働きかけをする、これらを意識すると、管理する項目が進捗だろうが、予算だろうが、人員だろうが、スケジュールだろうがうまくできるはずです。
「常にこれをやればいい」というものではないので、その時々で状況を見て、適切な行動、良い方向へと導く働きかけをしていくことが大事だと思います。