システム開発が進むにつれ、進捗の遅れが発生することはよくあることです。
遅れが発生する原因は様々考えられますが、もっとも多いものに、見積が甘かった、不測の事態が発生し、工数が足りなくなったというように、見込んでいた時間をオーバーするというものでしょう。
そもそも、なぜ進捗管理をする必要があるのでしょうか?
逆に言えば、進捗管理をしているにも関わらず、ほとんどのプロジェクトで遅れが問題になります。管理してもしなくて、遅れが出るのであれば、管理する必要などないのではないでしょうか?
ここでは、進捗管理とはいったい何なのかを整理し、本当の進捗管理とは何かを考えてみたいと思います。
進捗の遅れ悪いのは誰?
一般的に、プロジェクトが立ち上がり、ある目的を達成させるために、スケジュールが計画されます。進捗管理の元となるものです。
その計画に沿って、各工程の進捗度を管理し、遅れが出ているならば挽回策を考えて実践していくというサイクルになります。
個人レベルで遅れを出さないための考え方は、こちらの記事で説明していますのでご参照ください。
進捗が遅れないようにするにはどうすればよいのか?その考え方を学ぶ
スケジュール通りに作業が進んでいれば、特に何も問題なく、進むことでしょう。
しかし、いったん、遅れが発生すると、なぜ遅れが発生したのかその原因を究明します。遅れを挽回させられるまで、残業がスタートします。
それでも、挽回策が功を奏さず、さらに遅れが膨らみ、挙句の果てには、数週間、数ヶ月単位に膨れ上がり、やむを得ず、メンバーを補充し、遅れを解消すべく、火消し舞台が活躍するようになります。
現場は混沌とし、誰が悪い、彼が悪いと罵り合いがはじまり、心を病む人が続出し、プロジェクトは破綻の一途を辿るのです。
大げさな話ではなく、よくある話です。
経験したことのあるひとならば、そうだよなと共感していただけるのではないでしょうか。
断っておきますが、このような事態になっていたとしても、進捗管理は行われています。進捗会議とか呼び方は色々あると思いますが、遅れを少しでも取り戻すため、会議は行われているのです。茶番でしかありませんが。
いったい、進捗管理とは何なのか?と思いませんか?
何のためにあるのか、分からないと思います。
では、この遅れ、根本的な問題として、誰が悪いのでしょうか?スキルのないメンバーの寄せ集めだったのでしょうか?
よーく、考えてみてください。
メンバーを計画するための要員計画も、ユーザーの要望を果たすためのスケジュールもシステムを立ち上げる時に、プロジェクトマネージャーやその上司たちとユーザーとの間で決められたことではないでしょうか?
それを計画通りに進めることができなかったというのは、悪いのは、ズバリ、
プロジェクトマネージャーやその上司たちとユーザーです。
ユーザーも?と思われたかもしれませんが、ユーザーもです。むしろ、ユーザーのせいと言っても良いかもしれないくらいです。
ユーザーは、困ったことをシステム化しようと考えましたが、そのイメージをうまく、開発会社に伝えることができませんでした。そして、それを開発会社の偉い人は、うまくユーザーにイメージさせることができませんでした。
このずれのもと、システム開発のための準備が進み、間違った情報をご丁寧に分析しながら、計画をしていくことになるのです。
あとになればなるほど、イメージが明確化され、こんなはずじゃないとか、ここはもっとこうしたいとか、様々なことが言えるようになるのです。
これが、開発者側から見た、不測の事態です。仕様変更となればまだいい方ですが、そのままバグ扱いで無償で対応しなければいけないことも多々あります。
この不測の事態は、大概、テストも後半に来た総合テストあたりで、こうした事態が起こりやすいのです。なぜなら、とてもイメージがわかり易いからです。簡単明瞭な答えです。
ですから、当初の予定などは吹っ飛んでしまうのです。
マネージャーは、なんとか遅れを出さないように、遅れを出しているメンバーを叱咤します。喝を入れます。とんだ見当違いのことをしています。
こころも折れます。身も心もずたずたになってしまいます。
だから、ソフトウェア業界はうつ病の人が多いと言われる所以だと思います。
実際、私もうつ病を経験していますので、とてもその苦しみが分かります。
ですから、あなたは悪くないのです。悪いのは、ユーザーやプロジェクトマネージャーたちということを覚えておいてください。
全てのしわ寄せが来ているだけのことです。
では、どうすればこういう事態にならないのか?
ユーザーの困っていることを、正確にシステム化できるイメージを教えてあげられなければ、その時点でプロジェクトは失敗すると考えてください。
マネージャーやその上司は、気づかなければいけません。
人任せで、あとはゴルフ三昧ではなく、もっと真摯にユーザーの悩みを聞いてください。
そして、その悩みをシステム化したイメージを開発メンバー全員に教えてあげてください。
その責任があなたにはあるのです。
このことに気づかなければ、スタートできないはずなのですから。
そして、ユーザーをシステム開発の現場に巻き込んでください。
週一回でもいいから、開発現場にユーザーを招いて、システム化のイメージの話をする場を設けてください。そうすることで、もっともっと、早い段階で、修正ができるはずなのですから。
進捗管理の本当の意味とは?
進捗管理とは、スケジュール計画に沿って、進み具合をチェックするだけのものでしょうか?
遅れが出れば、その対策を講じるだけなのでしょうか?
本当の意味で、進捗管理とは、いったいどういうものなのでしょうか?
それを考えてみましょう。
たしかに、前述した通りのことを進捗管理の一つとして行うと思います。
しかし、進捗管理をしているにも関わらず、遅れが出るのが当たり前になっている現実を考えると、機能していないと思わざるを得ません。
プロジェクトマネージャーが無能なのでしょうか?プロジェクトリーダーが無能なのでしょうか?それも否めません。前述しましたが、システム立ち上げ時の意志の疎通が図れていないことがそもそもの原因なのですから。
では、進捗管理は何を管理するのでしょうか?
誰も気づいていないことだと思います。いや、気付けていないことだと思います。
それは、ユーザーの困っていることを解決するためのシステムには希望という未来があるのです。
そのシステムを手に入れることで、現実がよりよくなる未来が待っているのです。それを我々はお手伝いすることができるのです。本来は、楽しく希望に満ち溢れた工程なのです。システム開発とは。
このことをみんな忘れています。
ですから、教科書通りのことしか思いつきません。できません。遅れは悪だとか。
遅れてもいいのです。
私が考える進捗管理とは、ユーザーの未来への希望を実現するために、システム開発をどのように進めていけばユーザーが納得し、喜んでもらえるのかを考えていくことだと思っています。
予定通りに作業が進むことも、ユーザーが納得し、喜ぶことです。しかし、それ以上に、付加価値をどのようにつけてユーザーに提供できるのかを考えることが大事だと考えるのです。
予定通り進んでも、できあがったシステムがユーザーの困ったことを解決できないものならば、何の意味もないのですから。
それよりは、多少遅れが出たとしても、当初の想定以上のシステムを提供することができれば、ユーザーは納得し、喜んでくれることでしょう。
ですから、進捗の遅れは、ユーザーにとって有益なものを手にすることができるものならば、関係ないのです。
たとえば、家を例に考えてみると、当初の見積では、予算不足で、ガレージに屋根を付けることができなかったとしましょう。
ですが、施工業者の都合で、家の完成にもう少し時間がかかるとなった場合、この施工業者が、そのお詫びとして、当初見積もりに入ってなかった「ガレージの屋根」を無償でお付けしますと提案したとしたら、どうでしょうか?
お客様は喜ぶのではないでしょうか?なんて親身になってくれる業者さんなんだと感謝すると思いませんか?そしたら、親切にしてくれたから、また何かあればあそこの業者に頼もうと思ってくれるかもしれません。口コミで広がり、受注が増えるかもしれません。
このように、ユーザーの未来への希望をひとつでも二つでも増やすことができるのなら、付加価値を付けることができるのなら、多少の遅れ等関係ないと思いませんか?
そのときは、一時的に損をするかもしれません。しかし、長期戦略として考えてみると、WIN-WINの関係になれるのではないでしょうか?
つまり、遅れだけをみる小さな進捗管理ではなく、ユーザーの未来の希望を実現させるための進め方を考えることと考えてみてはいかがでしょうか?
そのような視点にたてば、遅れをどうすれば挽回できるかだけの思考ではなく、遅れるからこそ、付けられる付加価値はどんなものがあるのかを考えていくことができれば、ユーザーは怒るどころか喜ぶことでしょう。
決して、勝った負けたで考えてはいけません。お互い勝つというWIN-WINを考えるべきなのです。
カテゴリ:進捗管理