CMMIはベストプラクティスの集まりです。でもモデルに書いてあることだけをやるだけで、プロセスを改善できるのでしょうか。
確かに、成熟度レベル2とか3を達成するためにはプラクティスの実装が重要です。
しかし、品質がよくなったとか、効率が上がったとか、メリットがないとやる甲斐がありません。
プラクティスを実装するために、何の役にも立たない作業成果物を作成したり管理したりして、無駄に工数を費やしているという事例を見たことがあります。
ただモデルに書いてあることをすればよいと考えるのではなく、目標に向かって改善するためにモデルを使うことが大切です。
いまよりも良くしようという気持ちが大切です。
どのように改善していくのがよいかということを認識するためには、未成熟な組織と成熟した組織がどう違うのか認識するといいです。
未成熟な組織の特徴
・プロセスがプロジェクト期間中にその場しのぎで定義される。
・もしプロセスが予め定義されていたとしても、厳密に踏襲されていたり強制力を持っていたりしない。
・プロジェクトの管理者は突然発生した問題の対応に追われる。
・現実的な見積もりに則っていないので、スケジュール遅延、予算超過になる。
・納期に間に合わせるために、ソフトウェアの品質について妥協してしまう。
・品質を判断するための客観的な基準が存在しない。
・ソフトウェアの品質について予測がつかない。
・レビューやテスト等の品質を向上するためのタスクがスケジュール遅延のために切り詰められたり省かれたりする。
・顧客はソフトウェアが実際に納品されるまで、それがいったいどんなものなのかほとんど分からない。
成熟した組織の特徴
・新しいメンバと以前からいるメンバとの両方に正しくソフトウェアプロセスを伝達し、計画されたプロセスに従って活動することができる。
・必須のプロセスが文書化されており、実作業を行ううえで利便性が高い。
・実際の作業方法が、文書化されたプロセスに則っている。
・プロセスの定義が必要に応じて更新され、先行評価や費用対効果の分析によって改善されていく。
・プロセス改善が組織全体で広範囲に活発に行われる。
・プロセス上の役割と責任が、プロジェクトや組織の全体にわたって明確になっている。
・プロジェクト管理者が、ソフトウェアの品質とその生産プロセスを常にモニタしている。
・ソフトウェアの品質の評価、およびソフトウェアと生産プロセスの問題分析のための客観的で定量的な基準がある。
・スケジュールおよび予算は過去の経験に基づいており、現実的である。
そのため、製品の費用、スケジュール、機能性、品質に関する目標はたいてい達成される。
・統制された開発プロセスに首尾一貫して則っている。プロジェクト参画者がこの重要性を理解しており、なおかつプロセスを実行するのに必要なインフラストラクチャが整備されている。
また、ハンフリーは未成熟な組織と成熟した組織を以下のように例えています。
「ソフトウェアプロセスが未成熟な組織は少年野球チームのようだ。
バッターが打つと、ある野手がそのボールを追いかける一方で、他の野手は何もせずそれをぼうっと眺めているだけである。
たぶん彼らは試合のことすら忘れているかもしれない。
一方、ソフトウェアプロセスが成熟した組織はプロ野球チームのようである。
バッターが打つと、選手は全員練習で行っているとおりの反応をする。
状況に応じてピッチャーはホームプレートをカバーしたり、内野手はダブルプレーに、外野手はバックアップに備えたりする。」
無意識のうちにも制御がとれているということが、少年野球とプロ野球との違い、すなわち未成熟な組織と成熟した組織との違いです。
CMMIを活用してプロセスを改善するためには、プラクティスをやればよいというものではなく、未成熟な組織と成熟した組織がどう違うのか認識し、効果を出していくことが重要です。
プロセス改善を形だけではなくて、実のあるものにしていきましょう。
第153号:未成熟な組織と成熟した組織
2016年12月22日

-
未成熟な組織と成熟した組織