ソフトウェア開発のスピードと品質は、プロジェクトチームの開発能力に大きく依存している。しかし、ただでさえ日々の業務に忙殺されている中、チームの開発能力と作業効率を着実に改善していくためにはどうすれば良いのだろう? V1.3がリリースされ、さらに使いやすくなったCMMIにヒントを探る。
市場競争が激化している近年、企業にはビジネス展開のスピードと品質が求められています。そうした中、業務を支えるソフトウェア開発の品質・生産性向上のために、あらゆる標準モデル・技法が編み出されてきました。例えば、PMBOK、SLCP-JCF、アジャイルのスクラム開発などは多くの方がご存じかと思います。
本連載でご紹介するCMMI(capability maturity model integration:能力成熟度モデル統合)も、そうした標準モデルの1つです。企業や団体、プロジェクトチームなどの組織的能力を「成熟度」という概念で示すことで、その能力水準を判定したり、能力向上を図ったりするために作られました。今ではCMMI はソフトウェアだけでなく、ハードウェアやサービス業など、「あらゆる分野の改善活動に利用できる手引き」として策定されています。
詳細は後述しますが、CMMIにはレベル1からレベル5まで「5段階のレベル」という概念があり、「レベルが上がるに従って開発組織の実力も上がる」という開発組織の段階的成熟の道標として利用できるようになっています。2001年に初期バージョンがリリースされて以降、グローバルでのデファクトスタンダードとして世界中で使われているほか、情報処理技術者試験の「プロジェクトマネージャ」等でも、CMMIが出題範囲に含まれていますから、名前だけは知っているという方も多いのではないでしょうか。
ただ、CMMIの認知度は高いのですが、いざ学ぼう、利用しようとしても、そのドキュメントの記述量は600ページ超と非常に多く、少し取っつきにくいイメージがありました。また、「大規模なウォーターフォール型開発には向いているものの、昨今のトレンドであるアジャイル環境には向かないのではないか」と見る向きも少なくありませんでした。
しかし、2010年にリリースされた最新のV1.3では、IT業界のトレンドの変化を踏まえて、数多くの改良がなされ、アジャイル環境での事例も盛り込まれました。「プロダクトバックログ」「レトロスペクティブ」「ベロシティ」といったスクラム開発用語も散見される点は、アジャイル開発を行う開発者にとって相当なじみ深くなったと言えるのではないでしょうか。これはアジャイル開発の各種コミュニティの意見が、CMMIにフィードバックされた1つの証左でもあります。
また、V1.3ではアジャイル環境への対応以外にも、もう一つ大きな変更点があります。それは「(開発業務の)定量的な改善効果を追求する姿勢」の強化です。
CMMI V1.3では、「ビジネス目標の達成」を目指すレベル5と、「数値で意思決定」が可能になるレベル4を大幅に改善し、改善活動の効果を、数値データを使って見える化するノウハウが盛り込まれました。すなわち、開発業務の効率・品質向上を狙う上で、より使いやすく便利なものになったのです。
ただ、CMMI V1.3は英語版のリリースから1年経った2011年11月の時点でも、まだ日本語版が提供されていません。また、日本語版がリリースされたとしても、前述のように記述量が多いため、知りたいことを探すだけでも時間がかかってしまい、多忙な開発者にとって、やはりおいそれと取り組むことはできません。
そこで、「CMMIの基本的なノウハウにフォーカスし、開発業務の効率的な改善に役立つ情報を簡潔にご紹介できないか」と考えたのが、本連載の筆を取ったきっかけです。特に、CMMIは特定の開発技法に依存しない構成になっており、アジャイルでもウォーターフォールでも適用可能です。きっと多くの開発関係者の方々にとって、有益な情報源になるのではないかと考えています。
ただし本連載では、CMMIの各レベルを順序良く達成することを目指すような、教科書的な構成にしようとは考えていません。むしろレベルを意識せず、皆さんにとって役立ちそうな部分から紹介していこうと考えています。それによって開発の実力が上がっていった結果、おのずとレベルもついてきた、という展開になればベストでしょうか。CMMIと聞いて身構えることなく、ぜひ気軽に役立てていただければと思います。
Copyright © ITmedia, Inc. All Rights Reserved.