≡ はじめに前回は、「CMMIが用意した仕掛け」のうち「❷ モデルを使う(の後半)」について書きました。
「❷ モデルを使う(の後半)」で、一番大事な箇所を再掲します。
CMMIでは、「これを行え(プラクティス文)」と「(プラクティス文を)実施して成功した時に得られる価値」がセットになっています ので、レベル5を獲得してから得られる価値だけではなく、レベル1ならレベル1なりの価値が得られます。
今回の「❸ アプレイザル」にも深く関係するのですが、上記の「プラクティス文+価値」のセットで、すべきことを伝えて、行動を変えさせ、それを習慣化させる というCMMIの仕掛けは本当に良くできています。また、洗練されているので、プロのソフトウェア開発組織は、CMMIを学ぶのが1番良いと思います。
このプラクティス文や価値は「CMMIのモデル」というドキュメントに書かれています。そして、以前書きましたがそれは単独でPDFの形でISACAのサイト から150ドル(昨今の円安の影響で2万3千円くらい)で購入できます。残念ながら英語です。(中国語とスペイン語ならそれぞれの翻訳が付いたセットで同額ですが、V3.0 から日本語訳付きのものは無くなってしまいました) 2万3千円は、個人で買うには躊躇してしまう価格ですが、会社で買うなら安いものです。 ……もっとも会社で買うならエンタープライズ版(年間、10ユーザー、1600ドル≒25万円)の方を買ってみんなで勉強会する方が良いかもしれません。 というのは700ページもあるドキュメントを1人で読破するのは大変だからです。勉強会(輪読会)を開き、10人で少しずつ分担して読み込んだら読破できそうです。
ということで、最新のCMMIモデルの中身について知りたい人は150ドルで上記のドキュメント(CMMI Model V3.0)を買いましょう。
今後、20年以上ソフトウェア業界でプロとしてやっていくつもりで、ソフトウェア工学の基礎力に不安がある人 でしたら、CMMIを勉強しておいて損はないと思います。 私事で恐縮ですが、大学はいわゆるMARCHの青学で、しかも物理科卒です。また、大学院は50歳近くになって博士課程から入ったので授業はありませんでした。(そもそもシステム信頼性工学です) 大学院は、遠隔地の香川大だったのでゼミへの参加もなしでした。だから一度も情報工学について教わったことがありません。 大学の時には、FORTRANとGPSS(シミュレーションのための言語)の授業を趣味でとり、研究室では実験装置を動かすためにマシン語で制御ソフトを書いたりしていました。あと、バイトで98のゲームを作ったりしました。 入社後は、Smalltalk-80とInterlisp-Dを仕事で学ばなければならなかったり、C言語でスクリーンエディタをつくって遊んだり、仕事でネットワークドライバを書いたり、その後、テストの専門部署に異動になってテストツールを作ったりしました。なのでプログラミングの経験は少しはあったのですが、情報工学については、ずっと、ど素人だと思っています。今でも。 そんな私でも、2021年6月に今の会社に来て、毎日のようにCMMIのモデル(教本)を読み込む日々が3カ月くらい過ぎたころから、「コンピュータサイエンスは知らないことがまだまだたくさんあるけど、ソフトウェアエンジニアリングの基礎知識はこんなもんでいいんじゃないか?」と思い始めました。もちろん、SEPGは開発者ではないからソフトウェアエンジニアリングのスキルは全然ないけど。 だから、ソフトウェア工学の知識に不安がある開発者(テスター含む)はCMMIのドキュメントを、読んだらいいんじゃないかなと思います。 英語である点も色々な翻訳ソフトをネットで無料で使えるのですから、昔ほどネックじゃないと思うんですよね。(ざっと眺めることができないという点で英語はつらいとは思いますが) テスターの人は「VV」(検証と妥当性確認)、「PR」(ピアレビュー)、「PI」(成果物統合)などの実務経験があるプラクティスエリアを先に読むといいです。『そういう感じね』とドキュメントの構造が分かるからです。
前回の復習が長くなってしまいました。
さて、今回は最終回です。 「❸ アプレイザル」について書きたいと思います。
≡ CMMIの仕掛け ❸ アプレイザル
「アプレイザル」ってなんだ? 「アセスメント」じゃないの?? と思ったのは今の会社に入って割とすぐのころのことでした。
結論から言うと同じものです。
同じものですが、CMMIではアセスメントという言葉は使わずアプレイザルといいます。日本語では「評定 」という用語を当てます。
CMMのころはアセスメントと言っていました。
上に書いたとおり、CMMIアプレイザルは「評定」の意味です。
世の中で一番多いCMMIに関する誤解は、「○○社は、CMMIのレベル◯に認定されている」です。CMMIは「認定」しません 。 ISACAは決められた方法で「評定」できる能力を持つ有資格者(リードアプレイザー)を派遣して、評定結果を集め、正しい方法で評定したことを確認し、希望者はISACAのサイトに評定結果を掲載するというだけです。
前回、うちの会社のウェブサイトのリンクを張りましたが、そこにも、
日本ウィルテックソリューションウェブサイト よりと書いてあります。「認定」の文字はどこにもありません。
もう少し具体的に、そのからくり(スキーム)を説明します。
CMMIのアプレイザル(評定)の仕組み 右上のISACA(アイサカ)は現在のCMMIの元締め組織です。(昔はカーネギーメロン大学のSEIがこの役割でした)
ISACAは、時代や新技術に合わせてCMMIの改訂を行います。また、リードアプレイザーの資格認定(赤矢印)も行います。
リードアプレイザーの資格認定とは、その人が組織の成熟度をCMMIの評定方法(昔はSCAMPI、今はBenchmark)にしたがって評価できる能力を有していることを確認して「リードアプレイザーの資格」を与えることです。 なお、リードアプレイザーにはレベル3までを評価できる人と、レベル4以上の高成熟度組織も評定できる人がいます。後者の資格を取るのは結構大変みたいで、日本人は10人くらいしかいないと思います。
アプレイザルの進め方ですが、まずは、図の左上の「受審組織」が自分の組織のレベルを確認したいときには、リードアプレイザーを探し依頼します。
すると、リードアプレイザーは、「評定のために、アプレイザルチームをつくる必要があるので、受審組織の何名かにCMMIの教育を受けさせて理解したことを証明するためにISACAの試験を受けて合格してください」と言います。
ISACAの試験を受けて合格する(試験を受ける前に外部講習を3日間受ける)と、こんな合格証をもらえます。
私の合格書 実際のアプレイザルは上図にあるとおり、アプレイザチームの合議で行います。
アプレイザル方法について説明します。 説明のため、前回書いたEST(見積もり)のプラクティス文と価値を再掲します。
EST 1.1プラクティス文 作業を実施するための概算見積もりを作成する。価値 スケジュールや予算が超過する可能性のある作業が続くことを回避するため、概算見積もりを行い、作業の規模、費用、およびスケジュールの不確実性に対応する。 EST 2.1プラクティス文 見積もり対象のスコープを作成し、最新に保ち、使用する。価値 目標達成と手戻り回避の見込みを高めるため、ソリューションの全てに確実に取り組む。
前回は、EST 1.1を使ったので、今回はEST 2.1で説明します。アプレイザチームは、受審組織がプラクティス文に書かれた「見積もり対象のスコープを作成し、最新に保ち、使用する。」というWhat to do ができているかを評定します。
What to do とは、CMMIを作ったSEIの研究者たちが世界中の成功している組織やプロジェクトが何を実施しているか調べた結果を整理したものです。 それには、「見積もり対象のスコープを作成 し、最新に保ち、使用する。」という文を見てわかるとおり、何をやるのか(What)について書いてあります。 ところがよく見ると具体的な方法(How)については書いてありません。例えば「スコープを作成」の方法については述べられていません。 スコープを作成する方法として、WBSをつくってもいいでしょう。 また、必要となるリソース(人・物・金・情報・環境等々)を整理するかもしれません。PERT図やPFDなどのワークフロー図を描くのもよいでしょう。でも具体的実現手段について「○○を使いなさい」とはCMMIでは指定しません 。 自組織に合った「見積もり対象のスコープを作成し、最新に保ち、使用」する方法を模索して実践し、それが習慣化 している必要があります。 習慣化している様子が見られなければ、アプレイザは、「証跡を過去2回分見せてください」というリクエストをするかもしれません。
さて、上で「「○○を使いなさい」とはCMMIでは指定しません 」と書きました。細かく手段について書いてあれば、その通りにできているかについて証跡とインタビューで確認すればよいのでアプレイザルは楽ですが、そうではないので、その活動が価値を生んでいるかどうか でそのレベルを達成しているかどうかを評定します。
EST 2.1であれば価値のところに「目標達成と手戻り回避の見込みを高めるため、ソリューションの全てに確実に取り組む。」と書いてありますので、その価値を生んでいるかどうかをアプレイザルチームで確認します。
確認する方法は、「インタビュー」と「証跡」です。 EST 2.1であれば、「見積もり対象のスコープはどうしていますか?」といったふわっとした質問 を受審組織に投げかけて、それに対する回答と証跡によってEST 2.1の価値を生み出しているかを確認します。(リードアプレイザーは、その確認をする能力があることを試験によってISACAに資格認定されています)
さて、確認した後に本当にCMMIのEST 2.1の要求を満たしているかどうかについてはアプレイザルチームの合議によって決めます。 合議は多数決ではなく、「満たしている」か「満たしていない」のどちらかに全員一致するまで続きます。しかも、1つでも「満たしていない」となればそのレベルは取得できません。
こちらについて、「CMMIのアセスメントはリードアプレイザーが独断で1人で評定をするからだめだ」という意見を見かけました。ISO 9000などでは複数人のアセッサーで判断するというわけです。 でも、上に書いたとおりリードアプレイザー1人の判断ではありません。CMMIのリードアプレイザーは、レベルを取りたい他のアプレイザーの強力なプッシュを跳ね除けて、「ダメなものはダメ」と納得させる力を持っています。 全員一致した結論にならないと合議は終わらないからです。 ということで、2週間程度のアプレイザルで、私はヘロヘロになりました。
あと、これも大切なことなのですが、アプレイザルでは、「CMMIの要求は、満たしているんだけれど、ここは今一つだよね(弱み)」とか「満たしているんだけれど、こうしたらもっと良くなるアイデアがあるよ(改善の機会)」というもの、すなわち、『改善に向けたアドバイス』もまとめます。(「とっても良いことができているから広めるといいよ」といったGood Pointもまとめます) 「弱み」と「改善の機会」と「Good Point」は組織全体にフィードバックされ、文字通りもっと良い仕事にするためのネタになります。これは良い仕掛けだなあと思いました。
≡ おわりに 今回は、「CMMIが用意した仕掛け 後編」をテーマにアプレイザルについて書きました。
最後にCMMIにかかるコストについて書きます。 『実践ソフトウエアエンジニアリング』によると年間で、1人25,000ドルから70,000ドルかかるとされています。400万円から1000万円ということですから100人開発者がいたら年間4億円から10億円のCMMI活動費がかかるということです。 CMMI活動費を予防コストへの投資額と考えて逆算すると、年間売上100億円(CMMI活動に4%〜10%)くらい欲しいところですね。
上手くやれば、それほどはかからないでできると思いますし、仮にそれくらいかかったとしても投資対効果は十分にあると思います。
これを読んで、「最低ラインの半額の200万円であってもそれだけの額を毎年1人当たりの学習と成長に向けて投資をしたら、そりゃ良くなるでしょう」と思ったかもしれません。 逆に言えばそういう投資を企業側はせずにソフトウエア開発者の自発的な努力に任せているのが現状だと思います。 しかも、企業側はソフトウェアエンジニアのミスを許さず「本番障害を出したらボーナス無しで減給だ」、「納期必達だ! 泊まり込んでも完成させろ」とやる。 その方法を続けていて、ソフトウェア産業は成長するのでしょうか? ソフトウェア開発のプロは育つのでしょうか?? 私は、メンタルがやられて人生を棒にふる人が出ると思いますし、自分の子供にソフトウェアエンジニアになってほしいとは思えません。 現場の人はアジャイルやXPやテスト技術やレビュー手法を独学で勉強して、チームに伝えて、コミュニティで共有して進化させて、、、と本当に頑張っていると思います。 でも、その成果を企業全体にスケールする事は難しい。 だから私はCMMIでなくても良いから、企業側もソフトウェアプロセスを良くしていく事に取り組んで(投資して)ほしい と思います。
さて、CMMIのレベル5を取ったあとはどうなるかというと、技術力を磨く活動に移行します。 最新技術を使うことはCMMI要求にはないことだからです。しかし、どんな最新技術でもそれを使いこなす基礎がレベル5の達成によりできているので、レベル5を取った今、それまでにつくった標準プロセスを最新技術でアップデートしましょう。
以上でCMMIの連載は終わります。次回はALTAの連載に戻ります。