ちょっと前の記事ですがnikkeibp.jpの"マネジメントとコントロールは違う"が面白かったです。
プロジェクトコントロールとは失敗しないようにすること
企業のリスクマネジメントの話なのですが、次の
マネジメントの意味は、do right things、正しいことをする、である。これに対し、コントロールは、do things right、事を正しくする、である。話を思い切り単純にして進めれば、マネジメントは企業が成長していくための活動であり、コントロールは企業が失敗しないための活動である。アイデアをうまく育て、売れる商品を作り出した企業は、マネジメントされていたことになる。逆に、製造現場をうまくコントロールし、高品質の商品を作ったとしても、それが顧客に受け入れられなかったら、正しいことをしたとは言えない。
というのが非常に良い指摘だなと思いました。
これをSI業界に置き換えるとプロジェクトを成功させるのがマネジメントであり、プロジェクトを失敗させないのがコントロールになるかと思います。
コントロールされていない動かないコンピュータが増えている
さて本題。僕はコントロールされていないプロジェクトが増えているように感じています。つまり最低限、失敗しないようにしておかないままマネジメントをしようとして失敗してしまうプロジェクトが多いのです。
失敗プロジェクトとは「動かないコンピュータ」のことです。多少、予算がオーバーしようが、リリースが遅れようが、まともなシステムができていれば失敗とは呼ばない気がします。逆に、予算内でちゃんとリリースしても使えないシステムであれば、それは失敗でしょう。ソフトウェア開発においてはQCD(品質・コスト・期間)のうち、品質がもっとも重要であるのです。
品質を確保する方法がない(=コントロールできていない)ままマネジメントをしようとするとどうなるでしょう。きっと表面的なコストや納期のつじつまだけを合わせるだけに終始し、品質が劣化しやすくなってしまうでしょう。しかも、品質の劣化を隠されたまま。
昨今、構造設計書の偽造が騒がれていますが、これは決して他人事ではありません。建築士は「他にも建築士はいると言われた。鉄骨を減らせというのは法律を犯せということだと思った」と言い、発注側は「法律を犯してまで鉄骨を減らすとは思わなかった」と言いました。
これをSI業界で言えばSIerは「他にもSIerはいると言われた。コストと納期を守れというのは品質を落とせということだと思った」と言い、発注側は「品質を落としてまでコストを納期を守るとは思わなかった(守れてないけど)」と言うわけです。
もちろん建築業界の発注者には悪意があり、SIerでは双方に悪意なんかないわけで、業界の未熟さゆえに起こった錯誤でしょう。
ちゃんとシステムが作れていれば、後々にはなりますがコストや納期の問題を明確に把握できます。その上でコストを増やすなり、納期を遅らせるなりという判断が行えます。まともなものができていないのに、ずるずるとコストや納期をかけるのは意味がありません。明確な方法論がないのであれば、時間とコストをかけても良いシステムは*絶対に*できません。
品質を確保するためにアーキテクトがすべきこと
プロジェクトコントロールとはソフトウェアの品質を確保する方法が確立されているということです。それに必要なのはしっかりしたアーキテクチャと開発環境のことです。
単体テストを可能にし、ソースコードを検証し、常に統合され、自動生成をなるべく行い、変更に対応でき、プログラマの責任範囲が明確になるようにするわけです。
UnitTest、静的メトリクス解析、ソースコードリポジトリとデイリービルド、O/Rマッピングツール、DIコンテナなどの手法を組み合わせ、さらに業務に沿ったフレームワークを構築することで実現できます。
多くの人員が関わるプロジェクトではソフトウェア化されたフレームワークが存在しないと品質確保することはできません。どんな立派なコード規約や実装手順書があっても、人間が完全に守れるわけがありません。
逆に言えばプロジェクトマネジメントができていることはコントロールができるということのはずです。COBOL時代は、COBOL自体が固いし業務も簡単でした。コントロールを意識しなくても大丈夫だったのです。ところが現在、Javaや.Netは柔軟であり業務も複雑です。コントロールを意識しないではおられないのです。
もちろん、これらはプロジェクトマネージャの責務ではありません。できないですから。これはITアーキテクトが背負うべきものです。プロジェクトマネージャとITアーキテクトが連携してこそ、初めてプロジェクトが正しくマネジメントできるのだと思います。
プロジェクトマネジメントうんぬん言う前に、あなたのプロジェクトはコントロールできていますか?

コメント (1)
建設業界とSI業界、それに偽装問題、
私もまさに同じようなことを考えていました。
ヤバイですよ。世の中コントロールされていない
プロジェクトばかりです。
マネジメントを考える前にコントロールせよ、
今まさに痛感しています。
投稿者: harad | 2006年01月08日 22:30
日時: 2006年01月08日 22:30