PR
アンケートの回答受け付けは終了しました

 多くの企業において,現行システムのブラックボックス化が進んでいる。ここで言う「ブラックボックス化」とは,システムが大規模化・複雑化してプログラムの構造やロジックが不透明になることを指す。プログラムの度重なる改修や,ドキュメントの不備,担当者の退職など,システムがブラックボックス化する理由はさまざまだ。しかし,それにより新規・保守開発の調査工数が膨らんだり,予期せぬ障害を招いたりするケースが後を絶たない。

 こうしたこともあって,システムの見える化は開発・運用現場が抱える大きな課題の一つになっている。記者は取材を通じてそれを痛感し,日経SYSTEMSの2008年11月号で「現行システムの見える化」に関する特集を担当することにした。ここでは,現行システムの見える化に悩む現場の実態を紹介するとともに,本テーマについて皆さんのご意見をぜひお聞きしたいと思っている。

しわ寄せは現場にくる

 「見える化するよい方法があれば,ぜひ教えてほしいよ」――。取材で訪れたある製造業のIT部門に所属するAさんはこうぼやく。Aさんは最近,生産管理システムの刷新に伴い,現行システムの調査に乗り出した。ところが,過去に各プログラマがソースコードを次々とコピーして修正を加えた結果,同じようなソースコードがあちこちにあった。どれが信頼できるソースコードなのか分からない。これじゃあプロジェクトが始められないと,Aさんらは数カ月をかけて全ソースコードを一つずつ確認する羽目になった。Aさんは言う。「現行システムを見える化する“魔法の杖”はないものか。結局,目視による地道な調査をするしかないのか」と。

 この場合,ソースコードの構成管理を徹底していないのがそもそもの問題である。しかし,長い年月をかけて改修に改修を重ねたシステムにおいて,構成管理を長期間根付かせるのは容易ではない。Aさんのように,不要なコードはどれなのか,どのコードを信頼すべきかなど,頭を悩ます現場は多いはずだ。

 もちろん,リバースエンジニアリング機能を持つ開発支援ツールを使う方法もある。最近のツールなら,ソースコードからクラス図やシーケンス図を自動生成する機能がある。しかし,こうしたツールではコードの“価値”までは見極められない。Aさんの場合も,コストや習熟なども考慮して,開発支援ツールを使うことを見送った。

ドキュメントがない,担当者もいない

 大手ベンダーでプロジェクト・マネージャを務めるBさんは,企業合併に伴うシステム統合プロジェクトで,一方のシステムを他方のシステムに片寄せする作業で苦労した。最新のシステム状況を確認できるドキュメントはなく,開発に携わった担当者も既に退職していたためだ。

 最近では,ゼロから開発するシステムはほとんどないと言っていい。システム間連携も当たり前のようにあるので,プロジェクトでは関連するシステムの調査が必ず発生する。Bさんの場合も,システム統合に伴う影響範囲を特定する作業が発生し,手間取った。具体的には,影響範囲を特定するために関連するエンティティをたどっていく方法を選んだが,ドキュメントの不備や担当者の不在によって,実際のテーブルや画面を地道に確認していかなければならなかった。「開発そのものよりも,現行システムを調査する時間のほうがかかったかも知れない」とBさんは打ち明ける。

 保守開発においては,なぜこの機能が存在するのか,なぜこういう構造やロジックになっているのかなどに疑問を持つことは多い。ソースコードやドキュメントに,その目的や意図が書かれるケースは少ないからだ。保守開発を数多く手掛けてきたSEのCさんは「開発時には明確な目的があって追加した機能かも知れないが,後になるとなぜその機能が必要なのか理解に苦しむことがある」と話す。安易にそれを修正・削除すると問題になる可能性もあるので,手を出せないという。

皆さんのご意見を聞かせてください

 このように,開発・運用の現場では現行システムがブラックボックス化し,それを見える化するために苦労している。そこでITproの読者の皆さんに,ぜひご意見をお聞きしたい。

 お聞きしたい点は大きく三つある。一つは,現行システムを見える化することの難しさや,実際に苦労した経験などだ。現場の大変さについて,生の声をお聞きしたい。

 二つ目は,そもそも現行システムを見える化する目的は何かである。目的には,不要なコードを明らかにしたい,影響範囲を特定したい,目的や意図を知りたいなどいろいろある。そうした目的によって,見える化する方法も変わってくるはずだ。

 三つ目は,現行システムを見える化する方法である。有効な方法をご存知であれば,それをお寄せいたきたい。“魔法の杖”はないかも知れないが,泥臭い作業の中でも工夫はあると思う。皆さんが実践する見える化テクニックで「これは効果があった」というものがあれば,ぜひ教えてほしい。

 お寄せいただいたアンケート結果については,日経SYSTEMSおよびITpro上で公開する予定である。現場の課題を解決するためのノウハウやアドバイスを多くの方にお寄せいただければ幸いである。

●質問1
現行システムの調査において苦労したエピソードがあれば教えてください

●質問2
システムを見える化する最も大きい目的は何ですか?
(例:不要なコードを明らかにしたい,影響範囲を特定したい,機能の目的や意図を知りたいなど)

●質問3
システムを見える化する方法があれば教えてください

■年齢 

■職種