第1回 ソフトウエア改造力が足りない:変更ミスがトラブルの温床に

第1回 ソフトウエア改造力が足りない:変更ミスがトラブルの温床に
2007/11/12
森山 徹=日経SYSTEMS
出典:日経SYSTEMS 2006年8月号  22ページより 
  
 ソフトウエアの改造力が足りない――。そのために,システムの変更作業でミスが生じ,次々とトラブルが引き起こされている。

 2006年5月9日,シティバンク(エヌ・エイ在日支店)で顧客口座の取引処理にかかわるシステム障害が発生。約6万9800件の取引が二重処理された。原因は,追加したプログラムの不具合。シティバンクは,「障害が発生した原因は、新規プログラム導入に際し、口座取引情報処理において間違ったシステム処理が発生したものです。十分事前テストをいたしましたが実際の運用に際し、結果的に、予想しなかった不具合が発生しました。」と発表した。

 2006年6月19日には,プログラム変更のミスによって,労働金庫連合会のシステムにトラブルが発生。総額5億円を超える送金に失敗した。この実例から,なぜ改造が引き金となってトラブルが発生するのかを見よう(図1)。


図1●改造のミスはトラブルに直結する
6月19日の午前中,労働金庫連合会のシステムに障害が発生。郵便貯金口座から<ろうきん>口座への送金処理の一部がエラーと判定され失敗した。当日に入れ替えたプログラムに余計な変更を加えていたことが原因。あるチェック・ロジックを改良する作業において,送金処理には不要だったチェック・ロジックを誤って適用してしまった。テストは行ったが,エラーになるパターンが漏れていた
[画像のクリックで拡大表示]
余計なロジックを追加した
 労働金庫連合会は,郵便貯金口座からの入金,送金を受け付ける「受付プログラム」を6月19日に新たなプログラムに入れ替えた。目的は,あるチェック・ロジックを改良すること。

 ところが,プログラムを変更した際に,本来は入金だけに必要なチェック・ロジック(図1の左)を,送金処理にも適用してしまった。背景には,送金と入金を,同じ電文フォーマットで処理していたことがある。不要なチェックにより,「キャッシュカード発行済み(再発行あり)」と「キャッシュカード未発行」の送金パターンが誤ってエラーと判定されてしまった。

 トラブルに至った原因は二つある。一つは,変更範囲を見誤り,余計な変更を加えたこと。もう一つは,テスト項目から,トラブルになったパターンが漏れたこと。事前のテストは,「キャッシュカード発行済み(再発行なし)」のパターンしか行っていない。ある関係者は「テスト・パターンの網羅性が足りなかった。どこまで目配りできるかが今後の課題」と反省点を挙げる。
「一から作ることが少なくなった」
 改造によるトラブルが増えてきた理由は,大きく二つ挙げられる。まず,改造案件の数が増えていること。野村総合研究所の鈴木昌人氏(エンハンス業務革新推進室 上級専門スタッフ)によれば,「会社の中を見回すとほとんどがエンハンス業務であり,一からシステムを作ることが少なくなってきた」という。

 システムは稼働開始した瞬間から,変更要求が寄せられる。「業務担当者の要望」や「バグ修正」「制度ルールの変化」など様々な要求がある(図2)。住友林業の宮下敬史氏(情報システム部 マネージャー)は,「ITがビジネスに深く入り込んでいるので,ちょっとした環境の変化でも,ITを触らないとビジネスが継続できない」と,要望が増えてきた一因を語る。


図2●保守作業の実態
日本情報システム・ユーザー協会(JUAS)は,会員企業に対して「保守」をテーマに調査を行い,「ユーザー企業SWM調査報告」にまとめた。保守作業が発生する理由の内訳などが明らかになった
[画像のクリックで拡大表示]
 例えば大成建設では,2005年末に緊急の改造を求められた。「合併した三菱東京UFJ銀行のスタートに合わせて,資金システムのカナ名称のけた数を増やす必要があった」(情報企画部 次長 服部正憲氏)。約1人日の工数を費やし,8本のJavaプログラム,およびデータベースの二つのテーブルを変更した。

 改造のミスがトラブルに直結する状況は,システムの使われ方にも関係がある。ジャステックの太田忠雄氏(常務取締役 兼 常務執行役員 営業本部本部長)は,「今のシステムは,変更したそばからリアルタイムで使われるのでミスの影響がすぐに表に出る。しかも,あるシステムのデータを他のシステムに連携させているような形態では,一つのミスが複数のシステムへと広がってしまう」と,最近のシステム事情を話す。

改造作業の1割が失敗する
 トラブルが増える理由の二つ目は,改造ならではの開発方法論がまとまっていないこと。ミサワホームの受発注システムには,年間で約200件の改造案件が寄せられる。案件をさばく松尾昇氏(情報システム部 基幹開発グループ マネージャー)は,「仕様の取り違えなどで,年間に十数件は対応したことによる不具合が出る」と話す。 日本情報システム・ユーザー協会(JUAS)が,保守プロジェクトに関して調査した「ユーザー企業SWM調査報告」を見ても,「保守リリース後1年以内に,10%の確率で欠陥が発生している」。JUASの専務理事である細川泰秀氏は,「システムの信頼性が問われるような最近のトラブルの多くは,保守フェーズで起きているのではないだろうか」と見ている。

 “1割が失敗”というソフトウエアの改造リスクは見逃せない。日本IBM 大和研究所の松本修氏(APTOソリューション開発 第一ソリューション開発 品質企画担当課長)は,「新規にコードを10行書くのと,1万行の中の10行を変更するのでは,リスクに大きな差がある」と,ソフトウエア改造のリスクの大きさを指摘する。

 週末にプログラムを変更し,月曜日の朝に「手に汗を握って」見守っているエンジニアは,少なくないだろう。

 もちろん,これまでもリスクを管理しながら改造してきたはずだ。野村総合研究所の鈴木氏は,「プログラムの変更はこれまでもやってきたし,作業の品質も悪くなかった」と話す。ただし,「標準が無いので,プロジェクトに閉じていたノウハウを整理したい」と付け加える。改造には,新規開発とは異なる“難しさ”がある。新規開発と同じやり方で不足を感じる現場では,改造力を鍛える試みが始まっている。


 
Comments