◆改修費用の妥当性をチェックするには?

システム開発

◆改修費用の怪
 先のファンクションポイントによる見積もりでは、改修の場合は改修率を乗ずると説明したが、実際にシステム改修を見積もってもらうと、この改修率が問題となる。利用者の視点から見た機能に対して何割くらい改修になるかを見積もってもらえれば、分かりやすいのだが、これがなかなかそうは行かないらしい。ごく一部の機能改修であっても、影響するプログラムの本数が多いとか、影響範囲の調査に時間がかかるなどの理由で、莫大な費用が提示されることがある。

 例えば過去に2000年問題がある。利用者からすれば、その改修には何の付加価値はなく、単に大昔のプログラマが慣習的に年号を下2桁だけで扱ったがための不具合である。しかし、実際には、その改修には、影響する膨大なプログラムを調査し、修正しなければならないということで多大な費用が発生した。

 そもそも、プラグラムを何本に分割して欲しいなどと要求した覚えは無く、本数が多いのは設計者の責任であろう。影響範囲が点在して複雑怪奇になっているのも設計者の仕業だ。また、修正ヶ所や作業自体は簡単であるのに、膨大な試験費用も要した。実際に、プログラムのたった1行の数文字を書き換えるだけであるのに、大規模な単体試験や統合試験が必要であるのか全く疑問である。それにたいして業者がいう事は、万一の時に責任が取れませんから、というものだ。おいおい、時間をかけて試験をしても、これまで、欠陥のないことを保証したためしがないだろう。それなら、2人くらいで、改修ヶ所を目視で相互確認すれば、試験のための実行環境やテストデータを準備する必要はない。そのほうが絶対に経済的だと思う。

 そのほかにも、小規模な改修であっても、実際の修正作業は半日程度であるのに、その事前調査に1週間とか2週間とか必要として総額が大きくなっていることが少なくない。自社で開発したシステムでさえ、開発担当者が不在とか担当換えとかの理由で、高い調査費用が請求されるのだから、改修対象のシステムが他社開発であった場合には、信じられないような金額になる。理由は、作ったものではないので、調査に時間が掛かりますということだ。自動車など、整備工場のどこに持ち込んでも、うちが作った車で無いので整備には高額の調査費用が必要ですなどとは言わない。これはソフト業界の構造的な問題でもある。

 例えば、Java言語で書かれたプログラムなら、Javaを知っていれば誰でも読めるはずではないか。Javaを知らないというなら、まだ分かる。それならJavaを良く知っている他へ頼むだけだ。しかし、これがJavaを知っていても同じ状況だ。まったく不可解、というか不愉快である。

 過去にLinuxで動くJavaのプログラムを、新バージョンのLinuxとJavaの環境に移行し、さらに、通信をSSLで暗号化するという作業において、当初、なんと1000万円もの見積もりが出てきた。驚いて聞いてもみても、バージョン違いによる動作確認の調査に費用がかかりますの一点張りだ。仕方が無いので、自分で環境を作り、Javaプログラムを再コンパイルし実行したら、すんなりと動作したのだ。

 新旧の環境を調査開始してから2週間ほどで、しかも、他の仕事の片手間にできた。さらに、SSLによる暗号化通信は、通信部分のプログラム1本の、しかも、接続先サーバ名を、「HTTP:サーバ名」から、「HTTPS:サーバ名」に変更するだけだ。しかも、この指定は、外部から変更できるのでプログラムは結局、修正不要であった。こういった、調査結果を示し、それでも動作保証に拘るので、万一、不具合があっても全責任を問わない。こちらで問題を切り分けした上で、対応をお願いするということにした。

 その結果、1000万円は、なんと300万円になったのだ。結局、調べて見なければ分からない。不具合が発生した時の責任問題に備えて、時間をかけて試験をしておかなければならない。このようなリスクに対する保険がかけられていたわけだ。確かに、中身が分からないものの改修はリスクが高いので、保険をかけたくなる気持ちもわからなくはない。しかし、それにしても吹っかけすぎではないのか。

 今回の例は、自力で調査できる技術や時間があったからよかったが、そうでない場合にも、もし、改修における調査費用や試験費用が高く、納得できない場合は、一度に契約するのでなく、まずは、必要最低限の初期調査費用を支払い、その調査結果に応じて、さらなる調査費用や最終的な改修費用を見積もり、契約するのが良い。そうすれば、「蓋を開けてみて、思ったより簡単」であれば、最初から訳の分からない高額の調査費用で契約するより、経済的である。また、試験は闇雲に全体をやるのでなく、改修規模に応じて適切な範囲に限定すること。不具合発生時は、改修によるものか、否かを判断してから対応を依頼するなど、なんでもかんでも責任を負わせないようにすること。このように、改修にかかるリスクをできるだけ極小化するように業者と調整する事で、、最小の投資で、最大の改修ができるわけだ。改修費用は、非常に不透明で、怪しい面が多いので注意!

■目次:システム開発する前に知っておくべきこと83項目

コメント

タイトルとURLをコピーしました