設計が過去に引きずられる | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

最近、古いクライアント・サーバー(C/S)型のシステムを、Web システムとして作り変えるという仕事が多い。現在の機能をそのままに、Web ブラウザから使えるようにしてくれ、という依頼である。

こういった場合に注意すべきは、新しいシステムの設計が既存のシステムの設計に「引きずられてしまう」ことである。この問題は、特にユーザー・インターフェースについて顕著だ。既存のシステムを使い慣れたユーザーからは、「今と同じ使い勝手にしてくれ」という注文がなされる。また、設計者の中にも、既存のシステムとなるべく同じ設計しようとする人がいる。そのほうが全く新しい「画面」を設計するよりも、楽だからだ。


しかし、プラットフォームが違えば、一般的な操作性も変わる。C/S で使われているファットクライアントな設計が、必ずしも Web システムで使いやすいとは限らない。むしろ、従来の設計をそのまま Web に持ち込むと、不自然な操作性になってしまうことも多い。既存のユーザーは満足するかもしれないが、新しいユーザーにとっては、むしろ使いにくく感じられるだろう。

また、この「不自然な設計」は、一般的に、実装(プログラミング)の手間を増やす。C/S では簡単にできていたことが Web ブラウザでは実現できない、ということも多く、リッチクライアントと称されるような拡張的な技術(例えば Ajax や Flex のような)を導入せざるをえないからだ。最近では、そうした技術もかなり普及し、開発効率もよくなってはいるが、それを使わない場合よりも工数が増加することには変わりない。


このように、システムを全面的に作り直す際には、旧システムの設計を単純に流用するのではなく、いったん、要件定義まで立ち返って考え直すべきだろう。

旧システムを参考にする場合も、その構造がどうなっているかということよりも、旧システムが作られた理由、即ち、そのシステムが解決すべき問題が何であるかということに注目すべきだ。そして、その問題を解決するためのシステムを新しいプラットフォームで作ったらどうなるか、ということを改めて考えるのである。

つまり、それは全く新規のシステムを作るのと同じことである。システム開発者にとって、何も特別なことではないだろう。しかし、旧システムが存在しているとなると、どうしても、人はそれに引きずられてしまいそうになる。そういう意味では、全く新しいシステムを作るよりも、既存のシステムを作り変えることのほうが難しいことなのかもしれない。





■関連記事
一般的な使い方
気の利いたプログラムは顧客満足度を上げ、開発工数を下げる
想定外の使われ方



C/Sシステムの設計・構築―3階層型、Web系にいたるC/S開発のすべて
藤沼 彰久 斎藤 直樹 野間 克司 小川 義明 並河 英二 沼田 薫
日経BP社
売り上げランキング: 461853


Web系の仕事―システムエンジニア篇
友重 卓司
同友館
売り上げランキング: 459653
おすすめ度の平均: 5.0
5 とにかく読みやすい