国内におけるシステム資産は、20年30年といった長い開発の歴史をもつものが多く、機能の追加・修正に伴って肥大化したり、複雑化したりしているものがほとんどだ。 その結果、改修開発をした場合にその規模やコストが見積りきれなくなったり、レビュー、テスト時間をかけても品質が確保できなかったりすることがある。
こうした時、見積りや品質確保にかける工数やチェックリスト数、指摘数、バグ発見数といったプロセスに関する指標を向上させる改善策が講じられることが多い。しかしながら、こうした対策が恒久的な効果を得ることはむしろ少なくいたずらにシステム現場の負荷を高めてしまうことになりがちだ。
プロセスだけでなくプロダクトの指標も見よう
一般の品質管理において、プロセスを上手くやりくりしてプロダクトの品質を確保するという思想は当然あるべきものだが、プロセス指標にばかり目を向けていても品質確保はうまくいかない。プロセス指標で単にかけた時間の多寡をみるのではなく、IT資産のどの特性に対処しているかを管理しなければならない。
IT資産の特性は、長い歴史を持つものであればあるほど、紐づく業務や開発の経緯により多様化する。また担当者であれば特性が把握できるが、それ以外の人は気をつけるポイントが全くわからないということになりがちである。IT資産そのもの状況を計測する「プロダクト指標」という共通的尺度を用いてIT資産の特性を把握することが望ましい。
<プロセス指標: プログラムや成果物に対する活動量を計測する指標>
- 設計レビュー工数密度、指摘数密度、テスト工数密度、バグ検出数密度・・・等
<プロダクト指標: プログラムや成果物自体を計測する指標>
- SLOC規模、複雑度(McCabe、Halstead、制御文数・・・)、コメント比率・・・等
プロダクト指標で捉えた特性に応じたプロセスを検討することで、効率的な品質確保が可能になる。単純な例としては、モジュール内の分岐の数が多いものは、「分岐数を下げるようなリファクタリングを検討する」、というような対応だ。このような判断指標を組み合わせることで、システム全体としてメリハリの効いた開発計画がたてられるようになる。
プロダクト指標の確認は人間にとっての健康ドック診断
プロダクト指標は数年に一度のペースで保有する資産を棚卸して計測し、プロセスのメリハリ基準や中長期的な整備方針を見直すのが良い。この棚卸しを「IT資産健康診断」と呼ぼう。 人間にとっては、ちょうど普段気づきにくい疾患や異常をチェックする健康ドック診断のような位置づけだ。
資産の特性を測る基礎的な指標はすでに多く示されており、測定ツールも充実している。近年で言えば、NCS&A社AAAやSonarSource社sonarqubeが強力なツールとして挙げられる。これらのツールで基礎的な指標を測りつつ、IT資産に問われる課題(下記例)に対応する指標を設定し計測するのが良い。
「システムの全体像が把握しづらくなってきた」、「改修開発のコストが見積りにくい」、「レビューやテストの時間を増やしてもどうも品質が上がらない」といった感覚があるなら、そろそろIT資産健康診断の時期と言えるだろう。
メリハリのあるマネジメントと将来リスクの防止に繋げよう
システムの肥大化・老朽化により工数や品質のマネジメントが難化する一方で、IT予算圧縮や開発期間短縮ニーズは増加している。このような要請に応える、「日々の開発活動のメリハリ化」や「IT資産の中長期的リスクを予防」の第一歩となることにIT資産健康診断の価値がある。
IT資産健康診断結果と、過去の開発実績やベテランの知見をふまえ、どのようなプロダクト指標の特徴がコストリスク、品質リスクを増加させるかを分析しておこう。データが示す客観的な指標に基づいた判断指標を組織的に定着させていくことが、結果的にメリハリのあるマネジメントや、将来のリスクの回避に繋がるはずだ。