リプレース案件のジレンマ

最近周りでリプレース案件が多いです。VBや.netなどのシステムをWeb化するみたいなやつです。ひょっとしたら新規開発より多いのではと思うほどです。

リプレース案件の場合はお客さんに必ずといってもいいほど、現行と同じにしてと言われます。実際、作る側としても現行踏襲の方が動くものがあるという意味でリスクが少なく開発出来るという側面もあります。

とはいえ、VBや.netで構築されたシステムを再現しようとすると実現するのが困難なことが多々出てきます。例えば、ブラウザについている×ボタンが押された時に入力していた内容をDBに保存するとか(IE限定ならbeforeUnloadか何かのイベントで取れなくはないけど)、Windows Formsで作ったお洒落な図とか(JFreeChartとかdojoとかその他有償のライブラリもあるけど多種類だと過不足が往々にして発生する)、プルダウンで本体より中身の文字数が多くても全て表示するとか大小さまざまな問題が発生します。あと、データグリッドも難しい(最近はJavaScriptのライブラリが色々あるけど重たいし細かな設定がしにくい)。
これはそれぞれの技術に歴史があるので当然のことと言えます。

そもそも画面設計からして、VBなどは1画面に詰め込めるだけ詰め込むという場合が多いです。Webの場合はどちらかというと全部をいっぺんに出さずに関係する必要な情報を入力しながら画面遷移していくというのが、一般的です。例えば、ショッピングサイトとかだと最初にログインして、ほしいものを選択して、支払い方法を入力して、配送方法を選択するといった感じです。それは、Webの特性としてセッションで情報を保持できるとか、レスポンスサイズが大きくなると動作に影響するとかがあるためです。

現行踏襲となるとおのずとWebでありながらVB的な設計手法を取り入れる必要があります。技術にはそれぞれ特性があり、得意不得意があります。別の技術で構築したシステムを単純に同じように構築し直すということは必ずしも最適な方法でないことは明らかです。

そこで技術の特性を生かして、最も現時点で最適だと思われるシステムを作ったとします。そうするとどうなるでしょうか?

最も顕著に結果に現れている例があります。マイクロソフトWindows VistaやOffice 2007(WordやExcel)です。マイクロソフトはUIなどを思い切って、ガラッと変更してきました。Vistaについては、さすがに遅いのでアレですが、Office2007に関しては、画像が立体でおしゃれとかファイル自体の完成度は間違いなく、以前のバージョンをしのいでいます。複雑すぎると問題だったファイル形式もXMLベースとなり、シンプルになりました。Office 2007は以前よりも良いものを提供しているにも関わらず、利用者からの評判はいまひとつでした。

それは、皆さんも感じているとおりですが、UIが変わりすぎてどこに何があるかわからなくなってしまったからです。皆さんもExcelなどを使用していて、罫線の引き方すらわからず、「ふざけんなよ!余計なことしやがってマイクロソフト!つかえねぇな。」とか暴言を吐いてしまったことがある人もいるのではないでしょうか?

システムの場合も同じで開発に携わるメンバーとしては、当然良いものを作りたいと思うわけですが、必ずしも利用する技術の特性を考慮せずに無理やりにでも現行の動作を再現することがお客様に求められてしまうという複雑な悩みがあります。本来論で最適なものを求め過ぎるとマイクロソフトのようにお客様に暴言を吐かれるようなシステムが出来てしまうかもしれません。ここら辺のバランスが技術者としての腕の見せ所なのかもしれません。