システム開発を客観的な指標で計測する 〜「FP」「EVM」の2つのキーワード
取締役 IT事業部長 高田 淳志私と同じシステム開発に携わる友人が年末から注文住宅の建築を進めているとのこと。その知人曰く、『プロジェクトの進行は実に見事なもの』ということでした。時に億を超える規模のプロジェクトマネージャーなども幾度も任されたこと経験のある彼ですが、ハウスメイキングという点では全くの素人です。そんな彼が、きちんと納得しながら当初の予定竣工日と対して差の無いスケジュールで進められていく様子を、一人の顧客として目の当たりにし感じることも多かったようです。
システム開発業界が建築業界と同じように作業工程を標準化したり、標準単価表を作ったりということは難しいことは事実です。しかしそれでも、最大の利害関係者である顧客が納得のできる客観的な根拠や指標を示しながらプロジェクトを進めていく努力や工夫を続けることは、システム開発に関わる企業に課せられている使命の一つだと思っています。
今年もそれらの思いを実践し、お客様とWin-Winの結果を達成すべく頑張っていきたいと、新年を機に決意新たにしています。今年もどうぞよろしくお願い致します。
客観的な指標を採用するその目的は
一昔前のメインフレーム時代には、プログラム開発はCOBOLが主流で、システム規模は「LOC(Line of Code)」により算出されるのが普通でした。開発するシステムは、大体が比較的単純な画面入力と帳票出力がほとんどであり、過去の実績を基にしたLOC法による算出でも大きな誤差が発生することは稀でした。 しかし、現代では、コンピュータの役割は単なるデータ蓄積・集計だけでなく、メイン業務までを担うようになりました。そして、CRMやSCM、データマイニングなど経営の意思決定にも影響を及ぼす絶対不可欠な道具です。
そのようなシステムを実現するためのアーキテクチャもさまざまで、いわゆるサーバ・クライアントシステム、Webシステム、リッチクライアントシステムなど、さまざまな技術を利用することが出来ます。そのため、見積もり方法や進捗管理方法がそれに追随して発展していく必要性は明らかで、実際、さまざまな方法論が存在しています。弊社では、見積もり手法として「FP法(Function Point法)、進捗管理手法として「EVM(Earned Value Management」を基本としています。弊社での取り組みの歴史は浅く、まだまだ改善の余地を大きく残している現状です。システムの規模や開発の進捗状況を客観的に評価し、より精度の高い情報をお客様と共有できるよう粘り強く取り組んでいます。
システム規模を客観的に表す(Function Point法)
例外にもれず、いろいろなタイミングでシステム開発の見積もり依頼を頂きます。なるべくお客様の意向にはお応えしたいと思いますが、やはりあまり適当なお見積もりは出せない場合があります。概算を知りたいという状況があるのも理解できますが、あまり適当にご提示することがあまりにかけ離れているのもどうかと思うのです。
弊社では、開発システムが使用するデータの量(データの種類や各種類に含まれるデータ項目)および画面の量(画面数や各画面を構成する入力・表示項目数)を入力として、機能(Function)点数(Point)を算出する方法を採用しています。ただし、精緻な数値を算出するには、かなり仕様が詰まった状態に至ってからの計算が必要となります。そこで、更に仕様決定の状況により試算レベルの算出を可能としています。
お客様から見て「一体なんでこんなに工数がかかるのだろ?」と思うこともあるのではないかと思います。
また、機能の追加・削除によりどの程度工数が変わるのかをどのように測っていくのかという疑問をお持ちの方もいらっしゃることでしょう。
これまでの経験値では、いわゆるRFP(提案依頼書:Request for Proposal)までご用意頂いている案件の場合は、最初から誤差の少ない見積値をご提示できているように思います。また、要件定義などの開発工程が始まって以降の要件追加や変更などの際もその影響度を数値で示すことが出来るため、エンジニアの感覚だけでお応えするよりもご理解を頂けているように思っています。
開発進捗を客観的に表す(EVMによるトラッキング)
弊社が大規模なシステム開発で適用するCMMIプロセスでは、マイルストーンを適当なタイミングで設定し、そのタイミングでプロジェクトのパフォーマンスを計ることが規定されています。そのタイミングでは、進捗状況のみならず、リスクの変動状況や開発成果物の構成管理状況など、プロジェクト進行上必要なさまざまな指標を計測し、それに対する分析を加えています。
特に進捗管理に関しては、EVMをベースにしてパフォーマンスを測定しています。おそらく、EVMと言うとかなり負荷のかかる作業を連想されるかもしれませんが、弊社が実際に用いているのはそう複雑な計算式を組み合わせている訳でもなく、非常にシンプルに実施できています(EVMについては、さまざまな書籍もありますので、説明はそれらに譲ります)。
各案件のプロジェクトマネージャーやプロジェクトリーダの全てがEVMを完全に理解している訳ではありません(今後、トレーニングを重ねていく必要はありますが)。
弊社では、プロジェクトの進捗管理にMicrosoft社のMS-Projectを使用しています(右画面)。実際のプロジェクト運営時は、予め用意されているテンプレートに、WBS分割したタスクを記入し、予定と実績を入力していきます。表示項目の中には、「コストの超過状況」などがアイコンで表現されていて、プロジェクトマネージャーやプロジェクトリーダは、そのアイコンの状況を見ていれば、現時そのタスクがどのような状況にあるのかを理解することが出来ます。笑顔のアイコンは順調、怒り顔のアイコンは問題ありと、そんな感じでしょうか。
より正確な指設定を目指して
今回ご紹介したFP、EVMの双方とも弊社固有のデータが数式の中に含まれています。FPであれば、開発サイズを算出してから工数に変換するための生産性データがそうですし、EVMであれば各タスクの予定時間の算出や、タスクの進捗状況にアラートをあげるための閾値などがそれに該当します。
これらの数値は、一度決定すれば良い訳ではなく、案件が一つ完了するごとに、その案件の実績データを入力値の一つとしてデータを更新する必要があります。これらの値をより正確に高めていくことで、より正確な情報をお客様に提供していけるよう努めていきたいと思っています。
Newsletter
メールニュースでは、本サイトの更新情報や業界動向などをお伝えしています。ぜひご購読ください。