システムのつくりかた

 システムをどのように作るのかはとても大事だが難しい問題だ。私も数多くのシステムに関わってきたが、いまだこれは100点というシステムを作れたことはない。ただ漠然と見えてきたことはあり、それは、事業の戦略・戦術に従ってシステムを作ってはだめだということだ。

ではどうすればいいのか。事業コンセプトを向いてシステムを作ればいいのだ。

 事業の戦略・戦術とは事業の目指す姿・事業の価値を実現するためのものなのだが、実は戦略・戦術はころころ変わるし変えられる。実際変わってしまう。だがシステムはそうそう変えられない。事業コンセプトを理解していないトップに限ってそれに対して不満をいうがそれは酷だというものだ。システムの位置づけは企業によって異なり、システムそのものが商品である場合(ネット系企業の大部分はこれだ)、システムは商品ではないが当然に戦略的要素として存在する場合(メーカーとか流通はこれだ)によっても多少異なるが、本質的には同じことだ。(ただし、長く惰性で事業を続けている企業の場合には、この事業コンセプトの理解自体が混乱しているケースもあり、その場合にはそもそもシステムを作るどころの話ではない。新しいリーダーが必要とされる場面だ。)

 事業コンセプトを向いて作られたシステムは基本設計を変更する必要がないから総じて寿命が長い。実際ある大規模な商用サイトで20年近く前に作られたシステムがその基本設計を変えないまま機能追加・規模拡張を続けながら今も使い続けられているという実例を知っている。(設計自体は大丈夫なのだがC言語で作られているためライブラリが読める人が少なくなり、しかも償却が進んでいるため寿命が来つつあるという幸せな大往生を迎えようとしているが)

 また、事業コンセプトを向いて作るということと同じくらい大事なのがアーキテクチャだ。美しいシンプルなアーキテクチャは、寿命が長く、柔軟に機能追加や規模拡張に対応でき、かつ安定性もメンテナンス性も高い。

 すこし分かりにくいかもしれないので例え話を。
ある衣料の小売チェーンがあったとする。事業戦略は「新規出店により売上を伸ばし、取り扱い品目を増やすことで既存店売上を伸ばす」というもので、戦術的には「効率のよい大都市圏への資源集中」というものだったとする。この時どのようなシステムを作るのか。普通のSIerと普通のSEは「在庫管理の効率化とPOS機能の充実、そして端末数(=店舗数)の拡大と取り扱い品目の柔軟な拡大が可能な統合システムをマルチベンダーのクライアントサーバー、運用時間は8-23時程度で作る」と考えるはずだ。これはもちろん正しいし、その結論にすばやく到達し短納期で高品質なものを作れること自体は賞賛されるべきものだ。

が、数年後何が起きるか。(もしかしたら作っている最中かもしれない)

 戦略が変わるのだ。ネットの普及や競合環境の悪化など、いろいろな環境変化によりお店というリアルの場だけでは思うように売上が伸びないという事態になり、「よーし、ネットでの販売や、卸売り、販売委託にも取り組もう」となる。これ自体も柔軟な事業運営であり経営者として正しい。

 ここで、システムが一夜にして陳腐化する。そんなことはもともと想定していないシステムだからだ。

 だから事業コンセプトを向いてシステムを作らなければならない。この会社の事業コンセプトは「低価格・高品質な衣料をいつでもどこでも提供することで社会に貢献する」というものだから、作るべきシステムは、「基本的な受発注システムと在庫管理システム、POSを中心にシステム全体をブロックに分け、上流側には直接の製造管理システムとのインターフェイスを実装し、仕入れのシステムを仮想的に考えておく、下流側には店舗・卸し・ネットの各インターフェイスを仮想的に考え、店舗部分だけを実装する、データベースやネットワーク周りは当然にクライアントサーバーのような単純な階層構成ではなく、ネット経由でのアクセスも考慮した階層構成となるし、運用時間も当然最初から24時間に近い運用を想定したもの」となる。

 実は経験的にいうと、どっちの考え方で作っても実際のコストはそんなに変わらない。システムのコストというのは実は何を作るかではなく「誰が作るか」で大きく変動するものだから、ならば最初から後者のシステムを作ったほうがいいに決まっている。

 では、だれがこういったシステムを作ることができるのか。能力的にはもちろんSIerの一部には可能なのだが、顧客の短絡的な要望(戦略と戦術にあうもの)を無視するわけにはいかず、かといってあからさまにコンサルするのも時間がかかるのでSIerの出番は少ない。しかもSIerで偉くなっている人たちの多くは仕様書原理主義という考え方に犯されており、ここで活躍すべきなのが社内にいるSE・IT担当者だ。彼らは表面上は戦略・戦術に従って言われたものを作っているように見せかけ、実際には事業コンセプトを向いた、しかし予算管理者から見ればオーバースペックなものも含まれるシステムを作ることができる。どうせ多くのマネジメント層は実際作られているものを理解することも正確な評価を下すこともできないのだから、社内にいる限りはやろうと思えばそれができる。そして、それができるSEを私は知っている。

 「こういう機能を追加したいんだけど、どのくらいでできるかな?」と聞いたときにいかにも誇らしげに「その機能はもともと仕込んであります」とさらっと答えられた経験はあるだろうか。私はそんな幸せな経験をしたことがある。彼には未来が見えていたのだ。そしてそれができるSEを大事にしていきたいと思っている。

 じゃ、どーやったらそんなSEに成れるのか、育てられるのか、という話はまた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です