プロジェクトが窮地になると、なぜかセットで「納期を前倒ししたい」という話が出てきます。なぜそうなるのかは不明ですが、過去の経験からみても、必ずと言ってもよいほど発生する事象です。
登山の例でいえば、怪我をして動けないのに、早く帰って来いと言われるようなものです。 また、システム開発の計画において遅延が発生する可能性は必ずあると考えなければなりませんが、計画の前倒しについては、何も犠牲を出さずに実現する事は不可能と断言してもよいでしょう。
たいていの場合、お客様や上司から前倒しの要求があった場合に、「機能を削減すれば可能です」と答えれば、「お前は馬鹿か?もう一度考え直してこい!」と怒鳴られるのが落ちです。しかも機能を削減しても、結果的に、思惑どおりにスケジュールの短縮ができない場合がほとんどです。システム開発というものはそういう摩訶不思議なもので、人間社会が作り出す混沌を絵に描いたかのように流れていくようです。
はじめから余裕をもった計画を作るしかない
不測の事態(しかし当たり前のように起こる)に備えて、貯金(時間と予算)を蓄えておく事が最も簡単で、安全な方法ではないでしょうか?しかし、いつもプロジェクトの最初から参加できるとは限りません。途中から参加したプロジェクトで不測の事態が起きたら(いや、絶対に起きるのですが)どうするか・・・それは後述したいと思います。
絶対に、人を犠牲にしてはいけない
システム開発は、人間の頭脳によって築きあげられるものです。工数、人月という用語を使うため、人足作業と同等に考えられることが多いのですが、最も高度な環境下では全く異なる発想が必要です。
本当に優れたプログラマがいれば、100人月の仕事を1ヶ月で仕上げることが可能。これが実際にありえる事実なのです。ですから、システム開発の状況が良くないからといって、むやみに残業させたり、不眠不休で働かせるなどもってのほかです。
むしろ状況を正確に判断し、現実的な対策を検討し、余分な作業を排除して効率を最大限に向上させる・・・これが、管理を行う者の責務なのです。優秀な管理者が存在するチームでは、いつも笑い声が絶えません。チーム全員が明るく、前向きに、仕事を楽しんでいる・・・そういう状況を作り上げることがマネージャに求められる必須条件です。
マネージャー=上司という考え方から脱却する
本土決戦の日本軍的玉砕作戦などビジネスの世界ではそもそも通用しません。プロジェクトの組織は軍隊とは違うのですから、上司/部下の関係は、会社組織では存在しても、プロジェクトの中では誇示してはいけません。部下という意識を植え付けられた担当者は、上司だというPMに対しては、決して現場の状況を正確に伝えることはないでしょう(査定にひびくかもしれないから)。
PM、チームリーダーのあるべき姿は、そういった権力とは全く違うレベルで、個々の役割の中でどれだけ能力を発揮できて、PMのやるべき仕事を全うできるかにかかっているのではないかと思います。