システム奮闘記:その6

ネット販売システムの導入



(2001年12月21日に掲載)
(2003年11月4日に改定)

  2000年9月、社長の号令で会議が招集された。
  呼ばれたのは、役員、購買関係の部署、そして総務だった。
  内容は「消耗品の販売をインターネットでしよう」だった。

  社長はネット販売をする目的を言った。
 そして以下の内容の会議になった。

会議の内容
システム化する個所について
第1段階 消耗品の販売
受発注、発送など、全てを自動化するシステムの構築
第2段階 在庫管理
倉庫の棚に、どの品があるのか誰でもわかるようにして
いつでもコンピューターで在庫数を確認できるようにする。
ネット販売に伴って改善したい点
電話受注をネットに移行させて、人手がかからないようにする。
営業マンは、消耗品販売に手を取られず、主力商品の販売に力を入れる。
定番商品以外は扱わないように進めていく。
今、やるべき事
納期はいつまでなのか、はじき出す。
何をしないといけないのか調べ上げて、できない物を洗い出す。
営業所とお客さんの関係は、どうなるのか。

 うちの会社、ある消耗品の販売をしているが、営業所・本社で電話やFAXで
注文を受けているため、事務員の負担がかかる。
(実は、私も注文の電話をとっては受注伝票を書いたりしている。負担は大きい!)

  そのため、ネット販売の第1段階の目的は、事務の効率化だった。
  受注から配送までの一連の流れを全て自動化しようという計画だった。

  それと業務見直しの意味合いもある。
  営業所は少しでも売上を上げるため、定番商品以外の商品の注文があったら、
断らずに注文を受けてしまう。
  だが、これをしてしまう問題点は、仕入関係で例外処理の発生のため
仕事効率が低下する上、一度、例外を作ってしまうと、お客さんからの
2度目の注文を断る事ができなくなる。

  在庫管理の問題。消耗品などを営業所などに分散させて持たせるよりも、
配送センターに、一極集中させて管理させた方が良いという考えがある。
  どこの企業でも頭を抱えるのが在庫問題。棚卸しの時、在庫が合わない。
  伝票漏れがあるため、コンピューター上の在庫と実際の在庫とが合わなくなる。
  受注から納品までの流れを自動化させて、伝票漏れをなくす事により、
在庫精度を上げる目的もあった。


  最後に上層部から

 外注だったら、2〜3週間あれば、20〜30万でできるやろ

  よく巷で言われる話で、複雑な機能がある、MS-Officeが5万円で買える。
 そのため、見た目が簡単なWebシステムなどは、本当に簡単にできると思い、
上のような発想が出てくる。


  会議の後、しばらくして上司と私が部長に呼ばれた。

 どんなシステムになるか、案をまとめてくれ

 だった。

 上司と私は、何を、どうまとめれば良いのか、わからなかった。
  そもそも、ネット販売にしたら、受注から発送までの業務の流れが
どう変わるのかなど、全く決まっていないどころか、話し合われていない。


  システムは、業務の流れが決まらないと、設計なんぞできない。
うちの会社の上層部は、みんな最初にコンピューターありきで、物事を考えるため
AS/400を触っている上司と私に、丸投げされるので頭を抱えてしまう (--;;

  そこで、上司と私が頭を抱えながら、ネット受注のシステム案を書いてみた。

ネットでの受注から出荷までの流れ図
ネットでの受注から出荷までの流れ図

 部長に提出。部長は「なるほど」と言って受け取った。


  システムを誰が構築するのかだが、外注する方向に決まった。
  私自身、とてもWebサーバーから、AS/400でデータの自動転送するシステムを
組むことなどできないからだ (^^;;


業者から相見積りを取る

さて、外注。予算は安くと上から圧力がかかっている。そのため安く仕上げたい。 値引き交渉。ここが限界というのが、わかっていても、やらねばならない。 うちの会社の経費削減と、私が交渉能力がないと烙印を押されるから (^^;; 相見積もりをとるため、昔から付き合いのあるJ社。 公的機関の紹介のS社。社長の知人関係のU社。 私の知人がいるH社とB社の連合体。 合計4社から見積もりを取ることになった。 最初から、4社から見積もりをとろうと考えたわけではなかった。 ある成り行きからそうなってしまった。成り行きは後述しています。 ここまでの内容だと「普通やん、どこが奮闘記やねん」となる。 しかし、これで終わらなかったから、奮闘記を書く事ができました。 システム導入までの道程が2転3転、紆余曲折。 ではでは、紆余曲折の物語の始まり始まり。パチパチパチ (^^)

J社とのやりとり編

まずは、昔から、AS/400でお世話になっているJ社に依頼する事にした。 上司と私がJ社と話をする事になった。 しかし、業務の流れが全く決まっていないので、見積もりを出す側も  どうしましょう・・・  J社の人に「菅さんは、ご存じですが、この間の、当社のセミナーで、 T社さんの講演がありましたでしょ。T社さんをご参考にしてみてはいかがですか?」 と勧められた。 打ち合わせが終わり、早速、J社のセミナーの資料を取り出した。  セミナーであった、T社のネット販売システム導入事例の資料だ。
T社のネット販売システム導入事例の資料の内容
 単なる業務効率化だけではなく、悪習を断切るための目的があるという。

 そこの業界独特の習慣で、手形支払いの場合、相手が本来の金額から
1000円以下のケタを勝手に切り捨てた金額を手形に書いて送るという。
  営業マンは、ギリギリの価格を出しているのに、その上、勝手に値引かれては
たまったものじゃない。その上、手形の場合、不渡りを出せば
売掛金が回収できなくなる問題がある。

そこで勝手な値引きと手形決裁という2つの問題点を解消すべく
ネット販売を導入した際の支払い方法を現金決済にし、
勝手な値引きを防ぐ。
その一方でネットでの利用促進を促すため、ポイント制を導入し
ポイントを溜れば、ポイント値引きという形で、顧客にも利益がある事を示す。

食いっぱぐれや、変な値引きという悪習を断切るという仕組みだ。
業務改善という事で、ネット販売システムを導入したという。

  どんなシステムか見てみたい。

  そこで、T社に連絡をとって、見学させてもらうことになった。
  T社は中小企業だが、IT大好きの若手社長さんが率先して、
システム化を進めている。
  IT関連の責任者の人は、社長さんが大手ベンダーさんから引き抜いたというから
IT化に対しての熱の入れ方が凄いと思った。

  社長さんとITの責任者の方から説明を受ける。
  ネットでの注文だけでなく、在庫確認もできるという。

  それだけでなく、i-modeでも注文が可能だという事で、実演していただいた。
 そして利用状況を尋ねた。

T社の人とのやりとり
月に何件ぐらい、ネット注文があるのですか?
T社の人 だいたい1、2件ぐらいでしょうか

  まだまだお客さんには浸透していないという。

 セミナーでネット販売を強調されていただけに
利用者が多いと思ったのだが、そうではない事を知った。
 T社の方は見栄を張らず、本当の事を教えてもらったのだ。


  その日は直帰して、翌日、報告書をまとめて提出した。

報告書の内容(1部抜粋)
表紙 訪問目的
表紙 目的
システムの概略 導入に向けての重要項目
システムの概略 導入に向けての重要事項

 見学前は、全て自動化された物だと思っていたのだが
ネットでの受注があった場合、メールで担当者に連絡がくる仕掛けで
担当者が手入力している。

 構築費用は1000万円を越えているが、全自動でない!

  実は、ここが、この後、重要な鍵になるのだが、この時は、
「まだまだ、全自動化は進んでいないのか」という感じにしか思わなかった。 


  さて、J社との打ち合わせ。
  こちらの希望としては、Linuxと基幹業務のAS/400との連動システムを言った。
 Linuxと言った理由。こちらでも管理できる上、仕様変更あっても
自社で変更できれば費用はかからないという意図があったからだった。
  しかし、J社はAS/400の技術があるが、Linuxは、ほとんど実績がない。
そのため、T社と同様な、AS/400でシステム構成の提案をしてきた。

J社の提案してきたサーバー構成
J社が提案したネット販売システムの概略

  見積書に書いてあったAS/400(Webサーバー)の値段を見たら280万近くする。
 なので、私は

 PC-UNIXの方が安いのでは?

 と思った。

 そこでJ社に以下の事を尋ねた。

J社に尋ねた内容
どうして、AS/400をWebサーバーにするのでしょうか。
御社はUNIXのRS6000でも立派な技術をお持ちだし、RS6000が扱えましたら、
Linuxでも扱えると思います。素人考えかもしれませんが、RS6000でOSがAIXか
LinuxでPCサーバーを使ったら安くなるかもしれないのに、
どうして AS/400にこだわるのか、教えていただけませんでしょうか

 業者にとっては、私はとても嫌な奴なのだ (^^)

  担当者から「AS/400には、こだわっていません。RS6000がベストでしたら
それをご提案しますので、詳細はお待ち下さい」と返事がきたものの、
2週間くらい音沙汰がなかった。

 メールで「詳細はまだですか」と送ってみたものの連絡がなかった。


  J社から返事が来くるの待っている間、あるLinuxのベンチャー企業から
営業の電話がかかってきた。D社という会社だった。
  現在、ネット販売システム構築の話があること、J社と交渉中の話をしたら、
「是非、J社と共同でできたら、ありがたいですので、そのようにできないでしょうか」
と言ってきた。

  ここで私は思った。

 J社を揺さぶれる!

 D社が入れば、安いシステムができるかも。

 ウフフ。だんだん私に尻尾がはえてくる ← FreeBSDのマスコット・キャラか!

 こんな悪魔がユーザーにいるものだから、SEの友人達に「悪魔」、「極悪人」とか
「ベンダー泣かせ」と言われる。

  さて、実際に、D社がどんな所から確かめるため、訪れてみることにした。
  今、うちの会社でネット販売システムを構築する話や、できれば、
ネットでの受注データを基幹業務システムと連動させて自動化する話をした。


  そして、J社に以下の提案をしてみた。

J社にした提案内容
実は、D社が共同開発をしたいとおっしゃっています。
私は、御社に仕事を依頼しておきながら、D社を入れるという話を持ちかけるのは
御社に対して失礼だと承知しておりますが、D社はLinuxのプロ集団。
御社には、AS/400のプロ集団がおられます。もし、共同開発になれば、
お互いの技術力が向上しますし、当社としても、より良いシステム導入ということで、
3者にとって利益になります。もし、よろしければ、協同開発はいかがでしょうか

 相手を持ち上げながら、話を上手にもっていく方法

 我ながらワルだと思いつつ、これだと相手も反論はできない。
 J社の人は慌てて「慎重に対応したいです」と返事がきた。


  着々と、D社はシステムのプランを考えた。
  そして、D社の人が「J社と一度、お話がしたい」と言ってきた。

  そこで口実を考えた。そしてJ社に電話をかけた。

J社とのやりとり
御社がお考えのシステムに関して
よくお話が聞きたいですし、D社の方が会いたがっていますが、
お時間をとっていただけませんでしょうか
J社 あの、D社の人が来られるのは・・・
でも、企業秘密はないでしょ。D社の、お話を聞くだけですから。

 顧客という立場を利用して、見事に寄りきった私。
 そして、J社とD社の面会になった。

 しかし、私の予想は大幅に外れた。
 D社の方から「最初は、Linuxを使うと安くできると思ってましたが、検討した結果、
AS/400とLinuxとの連動システムだと、SNAのプロトコルの問題もあり、
ツールがないため開発費用が2000万になるか3000万になるかわかりません。
そのためJ社のプランが良いでしょう」だった。

 ぬぬぬ。私の思惑が外れた (--;

 J社とD社の共同開発は白紙になった。

 だが、J社からは「弊社がLinuxに力を入れていくためのキッカケを
作ってくれました」と言ってもらえた。
 また、D社から「AS/400関係の注文が来たら、J社に依頼できるようになりました」
という電話を頂いた。
  この世界、人と人との結びつきが大事なので、私のしたことは無駄ではなかった。

 まぁ、私の目論見は外れてしまったが (^^;;


H社とのやりとり

J社との交渉中に、相見積もりを取る必要がある。  そんな時、ふと次の事を思い出した。  LinuxベンチャーのB社のセミナーで知り合ったH社のKさんだ。  そこでLinuxとAS400の連動したネット販売システムができないかと H社のKさんにもちかけた。 早速、H社のKさんが、B社の方を連れてきて話が始まった。 私が「やはり、Windowsはダメですね。あんな不良品は」と言った。 Kさんは「最近のwindowsは、デバドラの問題がほとんどですから」と言ったが Kさんは、私が希望したシステムを素直に聞いてくださった。 しかも、TueboLinux社がSNAのプロトコルの通信できるツールを導入するため、 独自に開発する必要がなくなり、費用もある程度、押さえられる。 話は円滑に進んだ。  ところでLinuxにこだわる私だが、システムについて 詳しい知識があるかと問われると  ありませーん (^^)  の私だった。  なので、H社とB社の連合体のシステム案は以下のように 思い込んでしまった。
私が思い込んだH社とB社の連合体のシステム案
私が思い込んだH社とB社の連合体のシステム案
上図のような簡単な概略図の認識しかなかった。
その時は、システムに関する知識がなかったので、仕方ないのだ (^^;;

 あまりにも単純に形で把握したので

 Linuxだと私もで仕様変更に対応できる!

 と楽観視してしまった (^^;;

 だが、実際は以下のシステム構成図なのだった。

H社とB社の連合体の提案してきたサーバー構成
H社とB社の連合体の提案してきたサーバー構成
当時、Oracleどころかデータベースすら触った事がなかった私。
そして言語がPHP4になっているが、当時はPHP3が主流でPHP4は
出たばかりのバージョンで安定性の問題などもあった。

だが、Linuxなら大丈夫という根拠なき楽観論だけで
進んでいたのだ

 そしてOracleを使っている事は、有償のデータベース。
 だが・・・

 Linuxシステムだったら安くなる (^^;;

 という事で、システムの詳細まで見ていなかった。
  この見積もりで、同時接続が10ユーザーになっていた。
 そして、データベースの価格の比較が載っていた。
同時アクセス数10ユーザーの場合の、OracleとSQLserver7.0だった。

データベースの価格の比較(10ユーザー)
ただし、2000年12月の時の価格です。
Oracle8i 900,000
SQLServer7.0 250,000

 オラクルの方が遥かに高い!
 WindowsNT4.0とSQLserver7.0(共に10ライセンス)の方が安いシステムができる。
 しかし、当時は、データベースなどの周辺ソフトの事など全く見ていなかった (^^;;
 「Linuxシステム=安い」というので思考停止していた。


 我ながらズサンな外注管理だったのだ (--;;


U社とのやりとり

 次にU社だった。 早速、話を聞くことにした。U社の人は3人やって来た。 U社の人の肩書きを見ると、奇妙な3人だった。  会長秘書のオバちゃん、なぜか東京支店長、そして営業マンだった。 業務内容が、システムコンサル、建設資材、健康食品。  なんだか怪しい感じがした (--;;  そしてU社の人とのやりとりが始まった。
U社の人とのやりとり
U社 なんでも、任せてください
Linuxでも、UNIXでも大丈夫ですね
上司 AS/400との連動システムは?
U社 大丈夫です
システムの説明書など、お借りしてよろしいでしょうか

 そこで上司と私がAS400を置いている場所へ案内した。
 そしてU社の人が携帯を取り出して、会社の同僚に聞いていた。
 なんだか不安な感じがしてきた。

U社の人とのやりとり
U社 システムの説明書など、お借りしてよろしいでしょうか
上司 どうぞ
会長秘書 相見積は、どんどんとってくださいね。
キチンと選定する必要がありますから。

  最後に会長秘書のオバちゃんの自信ありげな発言。
  でも、上司と私は「大丈夫かいな、この会社で」と思った。
  U社から見積もりがやってきた。

U社の提案したサーバー構成
U社の提案したサーバー構成

  これを見て、目が点になった。
  AS/400の所に「?DBプログラム言語?」と書いてあった。
  しかも、データベースに何を使うかが書かれていない。
 単に「DB」と書いているだけ。

  この会社に任せて大丈夫かいなという不安がよぎる。

S社とのやりとり

残りのS社。 実は、このS社がネット販売システムの運命を大きく左右したのだった!!  公的機関に「システム構築の会社を紹介して欲しいのですが」と 話をもちかけ、そこの公的機関の紹介でやってきたS社。 そして、S社の人がやってきた。 S社はWindowsNTシステムを提案してきた。 WindowsNT + VB + MS-Accessで構築する話をしだした。  私が「Linuxで、できないのか」と尋ねると、なんとS社は客に対して 「知ったかぶりをするな」と言わんばかりに高圧的な態度に出てきた。  そしてカチンときた私。そのやりとりを紹介します。
S社とのやりとり
Linuxで、できないのか?
S社 Linuxは信用性がない
学生時代、大学にWindowsNTシステムがあったが
ボコボコ落ちた。安定性に問題がある。
S社 それは、まだ不安定だったNT3.5だ。NT4.0になってから安定している。
私達が提供しているシステムは落ちた事はない。
だいたい、Linuxに信頼性があれば、もっと普及しているはず。
WindowsNTのシェア─が80%あるのは信頼性があるからだ
うちはLinuxを導入している。
S社 誰が、管理しているか、知りませんが、あんなもの信用できない
今まで、日本のシステム会社が、ようやらんかっただけだ。
それに、WindowsNTにしてきた理由は責任逃れができるからだ。
欧米ではLinuxのシェア─は高い。日本も数年後には追い付く。
それに、日経Linuxの記事に成功事例があるだろ。
S社 そんなもん、知りません。
WindowsNTだと、Windows98を触っている人なら
誰でも扱えるが、Linuxは誰でも扱えるわけではない。

 顧客を見下し、高圧的な態度丸出しのS社。
 それに応戦する私。完全に水掛け論になった。

S社は平気でウソをつくベンダー
WindowsNTを知っている人だと、NTの管理も相当知識が必要だと思うが
知らない人が聞くと「NTは簡単に扱える」と思ってしまい
安心感からNTシステムを選択してしまう。

これで一般ユーザーを騙したベンダーは多いと思う。

 上司が「まぁ、話を聞こう」と言ったので、黙って聞くことにした。


  内容は、WindowsNTシステムで、AS400との連動はしない。
  それが一番安いという提案だった。
  確かに、AS400との連動を外すのは現実的な提案。

  VB + MS-Accessを使う理由を、語り出した。
  データベースで、Oracleなどを使うとライセンスの問題が出てくる。
同時アクセス数の問題で、もし、50ユーザーだと200万円以上、
開発費用だけでも100万はかかると言った。
  しかし、MS-Accessだと、同時接続数の問題がないため安くできるという。

Linux推進する場合でも、MS製品の知識は必要
この時、私は、何が問題か知らなかった。
そのため、突っ込みを入れる事をしなかった。
今なら「オッサン、あんた、MS-Accessは同時アクセスに弱いで。
もし、データが破壊されて修復できへんかったら、アンタ、責任とるんか?
それに、同時アクセス数は、いくら想定しているねん?
大量のアクセスがあった場合、ライセンス的にも問題あるんとちゃうか?」
と突っ込みを入れる。

今、思えば、MS製品の知識は必要だと痛感する (^^;;

 他にも、S社が、MS-Accessを勧める理由を説明した。
 それは、他のデータベースだと専門知識がないと使えないが、
MS-Accessだと誰でも使えるので、商品変更などの際に
変更が簡単にできるという。

S社提案してきたサーバー構成
S社提案してきたサーバー構成

  さて、ここでS社との打ち合わせで、システムの仕様が1つ決まった。

 商品の写真は載せないという事だった。

 うちが想定している顧客は、固定客なので、お客さんが商品知識があるという前提。
そのため、商品名だけで検索できるだけで良いという方向だった。

 もちろん、J社、B社とH社の連合体、U社も商品の写真掲載はしない方向だった。
  これが後になり、重要な意味を持ってくるとは、この時は想像もしなかった。


  2週間して、S社が、パートナー企業を連れて、見積書を持ってきた。
  私は「絶対にWindowsNTシステムだけは、入れさせないぞ」と意地になっていた。

S社とのやりとり
WindowsNTシステムだと、社内に管理できる人がいません
S社 管理する必要はないですよ。
うちのユーザーで管理している所はありませんよ。
放置した状態ですが問題なく動いています
だったら、セキュリティーの対策は、どうするんですか
S社 どんなシステムでも完璧はありません。
やられたら、やられた時です。

 平気でメチャクチャな事を言うS社だった。

Linux推進する場合でも、MS製品の知識は必要:その2
今だったら次のように言い返せる。
「おたく、パケットフィルターリングをキチンとしてくれるんかいな?
サーバーを放置しとったら、ウイルスやワーム対策はでけへんやろ?
SPやHotfixを当てへんかったら、マズいんとちゃうか?
Hotfixは、ソフトの依存性などの問題もあるで。俺、ようやらへんで。
オマケに、セキュリティー対策がゼロやったら、踏み台にされたため、
訴えられても、うち、裁判で勝てる自信、おまへんねん」という風に。
しかし、当時は、そこまで知識がないため、何も突っ込めなかった (--;;

 そしてS社の次のウソも平気で言った。

 Accessはメンテ不要!
 
 一般のユーザー企業の人なら、それで騙される。
 そして、畳み掛けるが如く、次の事を言った。

これを聞けば、その気にさせられる言葉
S社 WindowsNTを勧めている理由ですが、うちでもLinux部隊はいますが
動作検証を行なったりして手間と時間がかかりますが
WindowsNTですと開発期間が短くなります上
例え、何かトラブルがあっても、すぐに人の手配はできます。

 私は「こいつら、なかなか手強いぞ」と思った。
  思った通り、すっかり同席していた2人の上司が丸め込まれていた。
  なぜなら、公的機関の紹介。S社の人の発言を鵜呑みにしても、おかしくない。

 私は直感的に・・・

 ヤバい! ここになるかもしれない!!

 と思った。

  S社の人が正式な見積書を出すと言って帰った。


自社開発案も出してみる

そして、4社の見積もりがとれた。
見積りの概算
J社 約800万円
H社とB社の連合 約800万円
U社 約250万円
S社 約250万円

 うちの会社に限らず、普通の中小企業では

  システム会社は、プロだから大丈夫

 という迷信を持っている。

 免許制の医者でも名医とヤブがいるのは周知だが、システム会社となれば
無免許営業ができるのにプロ集団で任せれば安心という迷信がある。

  そのため、相手の技術力などは考慮せず、価格で決めてしまう。
  このままだと、U社かS社のどちらかになってしまう。
  まともなJ社、H社とB社の連合が負けてしまう。

  U社だと技術力が怪しいし、S社になれば、自社で管理できないサーバーな上
いい加減な物を買ってトラブルがあっても問題だ。
  その前に、S社の態度が気に食わないので、何が何でもS社は避けたかった。

  そこで、CGIを使えば、貧弱だが自社でも開発できる事を示すために、
4社の見積もりの横に、自社開発した場合の費用も書くことにした、
  
私が提出した自社開発案の資料
表紙 システムの概略
表紙 システムの概略
自社開発の利点と問題点 私の意見
自社開発の利点と問題点 私の意見
予算について
予算について

 データベースには頑丈なサーバーが必要だと思い込んでいた私。
 なので、サーバーモデル機を考慮して、構築費用が50万円以上という
メチャクチャな事を平気で書いていた (^^;;

  実際は、10万円のパソコンをサーバー機に使っても問題ない上、
書籍代などを追加しても、20万にはならないのだ。

 しかも「納期未定」と書いた (^^;;

 納期未定と金額メチャクチャという、とんでもない提案をしたなぁと思う (^^;;

外注先の選定までの過程

早速、社長に報告しにいった。 J社、H社のシステムは高いということで即、却下となった。 自社開発だが「いつ完成するのか、わからん」という事で却下になった。 見積もり金額の安いU社とS社で話が進むことになった。 しかし、U社の技術力が非常に怪しい。 そこで、思いついたのが、7つの質問状だった。 さすがに、7つの質問状の内容は残っていない上、もう覚えていないので、 公表できないのが残念・・・。 さて、U社の人に電話をかけた。そして、7つの質問をぶつけることにした。 1つ目の質問を言うと「大丈夫です」と答えた。 2つ目の質問で、AS/400の簡易言語のRPG400について触れた質問をしたら、 すると、U社の人が慌てて「RPG400について技術担当と話をします」と言った。 数日後、U社の人が「そこまで技術力がありませんので、 今回は、システム構築の案件はできないです」と言ったという。 U社は降板したが、問題は、システム構築依頼はS社に傾いていた事だ。 なにせ、U社とS社の中から、どちらかを選ぶ方向になっていたからだ。 ガンを選ぶか、心臓病を選ぶかの究極の選択で、ガンは嫌だと拒否したため、 必然的に、心臓病と選んでしまうという結果になった。 しかし、まだ決定ではなかった。 S社が正式な見積もりを出していないからだった。  正式な見積りを出してもらうため、S社に電話をかける。  するとS社の人は、笑い声で  今回の案件はどうやら、うちになりそうな話をお聞きしています  と余裕の発言をした。 私はムカついたが、ここは押さえて、正式な見積もりの依頼をした。

S社との戦い。そして水面下で自社開発へ

窮地に立たされた私だった。このままだとS社に決まってしまう。 恫喝まがいで、顧客に強引にWindowsNTシステムを押し付ける上、 「Windows98を扱えたら、WindowsNTも扱える」と、いい加減なことを言って 売り込む会社のカモにされて、一生、うちの会社が見下されて良いのか・・・。  中小企業を、ナメてかかる奴等は断じて許さぬ! しかし、開発日数もなければ、自社開発するための予算もない。 散々、悩んだ挙げ句、次のように結論づけた。  既存のサーバーを使って自分で構築するしかない  基幹システムのAS400とWebサーバーとの連動がないのは、S社も同じ。  そしてネット販売システム見学のために訪れたT社の システムを思い出す。
見学へ行ったT社の構成
見学へ行ったT社の構成

  1000万円かけて構築したT社だって、完全にはデータ連動していない。
  受注データをメールで受信して、手で基幹システムに受注入力している。
  うちだって、AS400との連動にこだわる必要だってない。

  AS400との連動もなければ、写真の掲載などもない。
 それだったら、CGIを使えば、S社と同じ物が、自社でも開発できる。

  T社の先進的なシステムだって、ネット受注が来たら、担当者にメールで伝えて
手入力してるやないか。
  それだったら、CGIを使えば、なんとかできると考えた。

私が行き着いた構成
私が行き着いたネット販売のシステムの構成

 完全に意地になっていた私。
 S社のように中小企業を舐めてかかるベンダーは、一度、
ギャフンと言わせる必要がある。

 カモはカモでも、ネギを背負わず

 バズーカー砲をぶっ放すカモになる!

  そこで、上司「社長の最終判断がでるまでは自社開発の道を模索します」と言って
他の人には極秘で、システムの開発に取り掛かった。
 
  Perlで開発すると、負荷が重くなると思ったので、C言語で開発を考えた。
 今、思えば、我ながら安易で無謀な決断と思ったが、
 その時は、稼働中のWebサーバー(Pentium150MHz RAM48M)で動かすと思えば、
C言語でないと対応できないと思った。

本当にPerlは重いか?
システム奮闘記が世に出た時、「Perlが重たい」という内容に、
姉崎さんがMLで「perl使ったことがないので、実感が分からないですが、
参考までに、(テキスト処理とかなら?)Cに比べ遅くないとの話も
聞いたことがあります。」と突っ込みがやってきた。

Sambaの太田さんが「CGIとしてPerlを使う場合、Perlのモジュール等を使うと、
イニシャライズの所でかなりの時間をついやします。素のPerlで書けば多少は
改善されるのでしょうが、それではコードを書く手間がたまらない。
で、高速に動かす時には mod_perlを使い、perlを常駐させる形で使います。
が、こうすると、今度はperlのプログラムをリエントラントに作らなければならない、
という難関(でもないかな)があったりします。」と答えてくださった。

Perlが重たいと書いたのは、当時、私がCGIでPerlを書いた時、
結構、動作が遅いため、重たいと書きました。
mod_perlのように、apacheのモジュールとして取り込めるみたいなので、
実際には、モジュールで取り込むと早いかもしれません。
ただ、検証を行なっていないので、私からは何も言えないのですが (^^;;

 しかし、C言語でCGIの開発は初めて。書店で本を探したがなかった。
 ところが人間、意地になったら、結構、なんでもできる。
 インターネットを探しまくって、東大の渡辺氏のページにC言語で
CGIを書く方法やソースが書いてあったのを発見。
  さっそく、渡辺氏にメールを書いてソースの使用許可を求めた。
  幸い、快く承諾の返事がいただけた。

  秘密裏に自社開発を進めている時、S社から上司宛に念押しのメールが届いた。
そのメールは社長、他の上司、私の所へ転送された。

S社から上司に届いたメール
  ○△様

 先日は有難うございました。

 早速ながらLinux云々の件ですが
 当方開発スタッフとLINUX版をリリースするかどうか検討しました結果
現段階ではやらない方向に結論しました。●●様と菅様にもご説明させて
頂きましたのでお聞き及びかと思いますが簡単にまとめますと
 ご存知の様に単なる専用Webサーバやメールサーバの様なマシンは
キューブも含め10万円以下で販売されたりしています。NTを使うと
それだけで15万円はしますから価格的には勝負になりません。
それとWEBだけで使うならLinuxの優位性はありますが受発注や
在庫等システムが絡んで来ると汎用性の有る(開発要員やメンテナンス要員が
容易に確保出来る)マイクロソフトベースの開発環境を優先せざるを得ません。
 つまり200万円〜数百万円のシステムコストの中でNTの15万円を
節約する方向を考えるより世の中の趨勢で人を確保しやすい方を選ぶということです。

 貴社ではNTのシステム管理者が居ないのをご心配のようですが、
何十社ある当社のユーザは総て管理者は居ません。いったん稼動したら
基本的にサーバに触れる必要はありません。
 また社内での配置転換など考えたとき、NTの方が安心ではないでしょうか。
ソフト会社もNTを知らないところは無いでしょうがLinuxとなると
限られてきます。えてして業務系に弱かったりします。

 運用管理の面からは、むしろデータベースの知識が必要になります。
その点、アクセスなら誰にもわかりやすく安心です。EXCELと
りンクするような使い方もやりやすいのです。
 将来的な改造、機能強化を考えたとき、当社の提案が一番発展性があり
安価にすむのは明白です。
 私どもインターネットを使った受発注システムではBe to BeではNC社様、
Be to Cのアウトドア用品のNA様を始めトップクラスの実績とノウハウを
持っています。コンセプトから細かい点まで貴社にご提案させて頂けると
自負しています。
 ぜひとも当社にご発注頂きますよう宜しくお願い致します。

                                      S社

 Windowsなどの知識がある人が読めば、S社のメールの内容は
墓穴を掘っているため、撃退できる内容だ。

 知識のある人なら以下のように撃退するだろう。

S社のメールの内容だと、次のような撃退ができる
「貴社ではNTのシステム管理者が居ないのをご心配のようですが、
何十社ある当社のユーザは総て管理者は居ません。」について

アホか。管理せんでもええサーバーがあったら、セキュリティー問題は
今頃、あらへんわ。踏み台にされたら、誰が責任を取るねん。
それにウイルスを撒き散らすサーバーになったら、アンタが責任負うのか?
裁判沙汰になったら、うち、この文章を証拠として法廷に提出するから
その時はアンタも道づれやで。
「また社内での配置転換など考えたとき、NTの方が安心では
ないでしょうか。」について

元々、誰もWindowsNTは触れへんのに、なんで安心やねん。理解できへんなぁ。
アンタらが全面保守してくれるんやったら、話は別やけど、
そうでなかったら、WindowsNTの方が不安や。
Linuxやったら、俺がおるけど、WindowsNTは誰もおらへんで。
これに関して、どない反論するねん。
「将来的な改造、機能強化を考えたとき、当社の提案が一番発展性があり
安価にすむのは明白です。」について

改造って、誰がするねん?  商品の変更ならAccessを触るだけで、できるけど、
仕様変更があったら、プログラムの変更が必要やろ。
ソースコードはくれるのかいな?  その前にVBを触れる社員、おらへんで。
それに、今のままやと、商品の画像は掲載できへんやろ。将来、掲載したくても
Accessには画像データを格納する物があらへんやろ。機能強化できへんやん。
数年後には、新しく構築し直す必要があるやろ。どこが発展性があるねん。

 だが、この時の私には、S社の人を墓穴に閉じ込めて
埋めてしまうほどの知識も手段も知らなかった。

  しかも、WindowsNTシステムを押し付けられという焦りと、
S社の態度に相当、怒りを感じていたため、上司宛のメールを見た時

 このヤロー、ふざけた事しやがって!

 と怒り心頭だった。

  このままではS社に決定してしまう。そこで、私は反撃に出る事にした。
  早速、私は社内にS社のメールに対して反論を書いた。

私が社内に出した反論のメール
 関係者各位

 S社の■■さんからのメールの内容や、WindowsNTに関して、
私の心配事など、思っていることを素直に書くことにしました。
 (■■さんからのメールの内容についての、私のコメント)

>  ご存知の様に単なる専用Webサーバやメールサーバの様なマシンは
>キューブも含め10万円以下で販売されたりしています。NTを使うと
>それだけで15万円はしますから価格的には勝負になりません。
>それとWEBだけで使うならLinuxの優位性はありますが受発注や
>在庫等システムが絡んで来ると汎用性の有る(開発要員やメンテナンス要員が
>容易に確保出来る)マイクロソフトベースの開発環境を優先せざるを得ません。

  S社の■■さんは、Linuxに関して認識不足のように思えてなりません。
 ご存知だと思いますが、日経新聞に取り上げられているだけでなく、
いくつかのシステム会社では、Linuxで実績をあげています。
 S社の意見は、単にLinuxを扱いたくない、既存のものを使って、
楽して、システム構築を考えているように思えてなりません。

>つまり200万円〜数百万円のシステムコストの中でNTの15万円を節約する
>方向を考えるより世の中の趨勢で人を確保しやすい方を選ぶということです。
>貴社ではNTのシステム管理者が居ないのをご心配のようですが、
>何十社ある当社のユーザは総て管理者は居ません。いったん稼動したら
>基本的にサーバに触れる必要はありません。

 NTサーバーは、一つの仕事(今回の場合は、受発注システム)のみで
稼動させる分には、不安定になる確率は少なくなると思います。
 ただ、同時に、NTサーバーに色々な作業をさせますと、不安定になります。

 そのため、システムの安定性を優先させるため、
NTサーバーが目の前にありながら、システムの勉強ができないことになります。
 システムの勉強だけでなく、ワード、エクセルを使った作業なども
避けなければ、いけなくなります。

 色々、調べてみましたら、NTサーバーは一つの仕事しか、
させないケースが多いです。
 うちの会社のネットワークサーバー(Linux)ですと、不安定になる心配が、
ほとんどありませんので、今も、Web上のソフトの開発などは、
サーバーを使って行なっていますし、開発などを行なっても、支障がでてきません。

 NTサーバーを放置した状態になるのでしたら、
 もし、NTサーバーを利用して、何を行なう際には、
新たに購入する必要がでてきます。

 もし仮に、NTサーバーの勉強のための利用ができたとしても、
私自身、能力的にパンクしてしまいます。
 私は、進歩が早いため、技術に追いつくのが大変です。
 まして、LinuxにプラスしてNTになりますと、能力的にパンクは確実です。

>また社内での配置転換など考えたとき、NTの方が安心ではないでしょうか。
>ソフト会社もNTを知らないところは無いでしょうがLinuxとなると
>限られてきます。えてして業務系に弱かったりします。

 配置転換した場合、NTの方が安心というのは、おかしな論理だと思います。
 NTは画面こそ、Windows98 に似ていますが、実際は、全く別物です。
そのため、社内で管理できる人がいません。

 もし、私が交通事故で死んだ場合、Linux の保守・管理は誰がするのかが
問題になりますが、NTですと、社内で誰も、保守・管理ができないです。

 上に書きましたとおり、目の前に、NTサーバーがあっても
触ることができないため、技術力アップができない状態になってしまいます。
 そのため、仕様変更の都度、業者に依頼しないといけない
可能性が高くなってしまいます。

>運用管理の面からは、むしろデータベースの知識が必要になります。
>その点、アクセスなら誰にもわかりやすく安心です。
>EXCELとりンクするような使い方もやりやすいのです。

 実際は、LinuxやUNIXのデータベースでも、エクセルなどとリンクできます。

  相当不備な点のある反撃のメールになるのだが、当時は、
自分の知識を全て活用した内容だった (^^;;

  社長が「うちで管理できへんのは困ったもんや」と頭を抱えた。
  なんとか反撃のメールのお陰で、社長を一歩、踏み止ませる事ができた。
が、しかし、社長にしたら、システムを早く完成させたいという気持ちがある。
  社長は「最悪、S社にするのは止む得ないかも」と判断した。

  上司が私に対して「社長が外注でも、ええと言っている事やし、
無理せんと、早くシステムを完成させた方が、ええで」と言ってきた。
  私は「でも、いい加減なシステムを入れるわけにはいきません。
ギリギリまで粘ります」と言った。

  しかし、自力でのシステムの開発は難航した。
折角、使用許可を頂いたソースだが、ポインタがあった。

 私はポインタが使えない!!

  もう、時間がない。ヤバイ。万事休すだった。

  そこに救いの神がやってきた。昔から付き合いのあるJ社だった。
往生際悪く「もう一度、再見積を出させてください」との申し出だった。
  大抵なら「諦めが悪いなぁ」となるが、この時ばかりは違っていた。

 よっしゃ、時間稼ぎができる!  (^^)

  野球で例えたら、1点リードされた9回裏ツーアウトで、追い込まれながらも
フォアボールでなんとか同点のランナーがでた感じだった。

  ねじり鉢巻。C言語の本をとってきて、1から勉強となった。
  思えば、学生時代、if文、for文などは触ったことがあるが、
ポインターが全く理解できなかった。でも学生時代だったから、それでも良かった。
  今は違う。中小企業の意地と面子が、かかっている。
  時間の関数を扱えるようになるため、構造体も勉強。
  お陰で、ポインタと構造体が理解できるようになった。(注意)

実は、この時、本当はポインタを理解していなかった (^^;;
この時、必死になってC言語の本を睨めっこで、例文のプログラムを打って
コンパイルをかけて動かして、ポインタや構造体を理解しようとした。
そして、理解できたと思ったのだが、だいぶ後になって、理解してない事が発覚した。

中学時代の友人Y君に、ポインタ変数に値を代入する時は「int *a = 4」を使って
代入するのやろと言うと、Y君曰く「全然、わかってない。」
と言われてしまった (^^;;
  ポインタを理解してなければ、構造体も理解しているわけがない。

  ポインタと構造体については、「システム奮闘記:その36」
(C言語入門:ポインタ、構造体)を
とり上げましたので、よろしければ、ご覧になってみてください  (^^)

  J社のお陰で時間が稼げても、悠長に勉強しながら開発している時間がない。
そのため、データベースを使ったシステムなど構築している余裕がない。
  そこで知恵を絞った。

「商品データなどは全てファイルにしよう。全部、fscanfで読み込もう」

商品ファイルの形式
0 ケーキ 0 0
32754 モンブラン 1 350
54234 ティラミス 1 450
商品No、商品名、数量、価格と並べています。
ただし、一行目は商品のカテゴリを表す行で、商品Noは0にして
数量、価格はダミーの数字の0を入れています。

  上のように、商品カテゴリー別のファイルを作成した。
  そして、C言語のプログラムの中で読み込んで、上手にカテゴリーと
商品名と価格の表示をわけるため、次のプログラムソースで場合分けをした。

場合分けする部分のプログラムソース
while( fscanf(fp2,"%d %s %s %d",&shohinno,shohin,suuryo,&price) !=EOF )
 {
 if ( shohinno == 0 )
         {
         printf("<TR><TD COLSPAN=5 ALIGN=CENTER><FONT SIZE=5><B>%s</B></FONT></TD></TR>\n",shohin);
         printf("<TR><TD>商品</TD><TD>商品名</TD><TD>数量</TD><TD>価格</TD>");
         printf("<TD ALIGN=CENTER>個数<BR><FONT COLOR=RED>お客様入力</FONT></TD></TR>\n");
         }
      else
         {
         printf("<TR><TD>%d</TD><TD>%s</TD><TD ALIGN=RIGHT>%s</TD><TD>%d</TD>",shohinno,shohin,suuryo,price);
         printf("<TD ALIGN=RIGHT>");
         printf("<INPUT TYPE=HIDDEN NAME=shohin%d VALUE=%d>\n",kazu,shohinno);
         printf("<INPUT TYPE=TEXT NAME=kosuu%d SIZE=4></TD></TR>\n",kazu);
         }
      }
読み込んだ商品名ファイルで、商品No(変数:shohinno)が0の場合
商品カテゴリーを表示するようにする。
それ以外は、ファイル中のデータを読み込んで表示させる方法を使った。

  データベースを一切使わず、ファイルを使った処理。これこそ立派な知恵!

  もちろん、商品ファイルだけでなく、顧客ファイルなど、
全てのデータはデータベースでなく、ファイルにした。

  次に、文字列の操作の必要が出てきた。
  お客さんが選んだ商品を「買い物かごファイル」に落とし込む場合で、
どのお客さんも共通のファイル名だったら、かち合うのでマズイ。
  そこで、ファイル名を顧客IDとKAGOという名前を連結した
ファイル名にしようと考えた。
  そのため、顧客IDとKAGOという文字列を合体させる必要があったが、
その辺も全然、知識がなかった。
  そこで、本を片手に「strcat(ID,"kago")」というように命令文を使いながら覚えた。
  意地になれば、結構なんでもできる!

  顧客ファイルでも、文字列操作が出てきた。
  顧客のパスワードだった。そのままの物を保管するわけにいかない。
  そこで、パスワードにある細工を行ない、それを文字列操作を行ない、
その上で、暗号をかけた物にする事にした。
  これである程度は安全が保たれる (^^)V

私が行き着いたネット販売システムの構成
ネット販売システムの構成

  特定商取引法が6月(2001年6月)から施行される。
ネットでの注文の明細はメールでお客さん送信しないとダメ。
  幸い、渡辺氏のソースにあったので利用させていただいた。感謝 m(--)m


  メールを送るためには、日本語の文字コードを統一しないといけない。
  問題は、お客さんはWindowsでメールを読むため、EUCコードを使うと
文字化けする。メーラーの文字コードを変更しなくても良いように、
SJISにする必要があった。(注意)

メールで送信できる日本語文字コードについて
実は、このページを公開した時に、上記の内容はおかしいと指摘された。
メールはJISコードで送るのが正しいとのこと。
これに関しての、詳しくは「システム奮闘記:その14」
(メールで送信できる日本語文字コード)で触れています。

 だが、この時はSJISだと思い込んでいた私。
 SJISで送信しようと躍起になっていた。

  SJISの文字を含んだソースのコンパイルとなれば、厄介なことが起る。
  文字によって、文字化けを起こしてしまうのだった。それだけではなかった。
  なんと、前後のタグにまで文字化けし、Web上の表示がメチャクチャになる事もある。
  原因がわからなかった。その上、原因究明している余裕などなかった。
  そこで、また、知恵を絞り、文字化けするものはソースの中に入れずに、
ファイルに格納して、fscanfで取り込む。文字化け問題は、ひとまず解決した。

  文字の問題が完全に解決したわけでなかった。コンパイルの時、
warningを吐きながら、強引に通していたからだった。

warningを吐きながら、強引にコンパイルを通していた
warning: unknown escape sequence: `\' followed by char code 0x97

 このエラーについて、LILOの川添さんから理由を
教えていただきました。

川添さんからのアドバイス(2003/11/10追加)
Shift-JISでは、日本語などの文字の一部に、`\`
と同じコード(0x5c)が含まれることがあります。

たとえば、
$ echo -n 表 | nkf -s | od -x
0000000 5c95

なので、そのようなワーニングがでるわけです。
最悪、コンパイルできない場合もあると思います。

日本語EUCにはそういうASCIIコードとの重複部分が無いので、
そういう問題はありません。

  川添さん、アドバイスありがとうございます m(--)m


  文字の問題。当時、文字コードに関してはEUCとSJISがある事ぐらいしか
知らなかった。そのため、外字をも取り込んでいた。

外字を取り込んでいた私
取り込んだ外字

  幸い、コンパイルが通り、エラーが起こらず助かっているのだが、
我ながらメチャクチャな事を、やっているなぁと感心してしまう今日この頃。


  よくよく考えてみると、gccもオープンソース。
  無料でシステム開発環境があると思うと、凄いと思う。
  Windows上で開発となれば、開発環境を購入しないといけないからだ。

  私は、次のように思った。

こんな事を考えた
今回、開発したソフトをオープンソースにして
公開すれば、誰かが改良してくれるかもしれない。こちらに利点がある。
その上、資金的に余裕がなくネット販売ができない中小企業や、
いい加減な業者に振り回される中小企業を救う一つの手段になるかもしれない

  別に、誰にも指図されていないのに、使命感が沸いてきた。

 俺が中小企業を救うぞ!

 という感じだった。

 J社が見積を出す数日前に、なんとか、デモ画面が完成した。
 ギリギリの所で間に合った。

 あと、数日、遅ければ、自社開発の道が断たれたからだった。まさに綱渡り。

 社内には「こういう操作画面でいかがでしょうか」と通達した。

J社から2回目のシステム構成案と見積りが出た J社から2度目の見積もりがやってきた。
J社が再提案したネット販売システム案
ネット販売システムの案:その2

 Webサーバーの部分がAS400からWindowsNTになっていた。
 だが、J社に何も突っ込みをしなかった。
 なぜなら・・・

 見積内容の点検を怠っていたのだった (^^;;

  J社はAS/400が得意なので、AS/400の構成で提案してきたと思い込んでいた。
  その上、見積もり金額を見て「こりゃ、100%却下される」と思ったため、
見過ごしてしまっていた。
 この原稿を書く時に、気づいたのだった (^^;;

 最初の見積りは800万円だったが、2回目の見積金額は

 それでも550万円だった!

 PCサーバーにして250万円も安くなったのだが、S社の250万円には
程遠い金額だった。

自作のネット販売システムが採用される!

そして、S社とJ社の見積を社長の所へ持っていった。 社長がJ社の見積を見て  こりゃ、高い。アカン!  と即、却下になった。  そして社長と私との会話になった。
社長と私のやりとり
社長 これだとS社になるなぁ。
ところで、デモ画面を見たけど
どこまでが、うちで作業して、どこからS社になるんや?
全て、自社できます。
社長 じゃぁ、自社開発で行こうや

 なんとか自社開発を勝ち取った!

  早速、上司がJ社とS社に、お断りの電話。
  J社は「やっぱりなぁ」と思ったらしく、すぐに諦めた。
  S社は完全に注文確実だと思い込んでいたため

 お断りの電話は青天霹靂の事態!

  そのため、ショックは甚大。
  大慌てで「こんなソフトがあります」などと勧めたりしたが
上司がきっぱり「もう、自社で開発が決定しました」と答えてくれた。

  切れ味最高の自社開発という『伝家の宝刀』

  この時ばかりは

 ざまーみろ (^^)V

 という気分だった。


  さて、自社開発が決定して数日後、どういう仕様にするか会議が行なわれた。

ネット販売システムの概要
システムの概要
システムのデータの流れ
利用者の購入手順

  上の仕様のようにプログラムする必要がある。

  上のように商品購入の際、選択だけでなく明細確認や選択した物の変更や
取り消しができる機能が必要になってくる。
  ここで、一つ厄介な問題が出てきた。
  それは、お客さんが買い物をした時、買い物かごに入れるのだが、
そのデータは、やはり「買い物かごデータ」として、ファイルに落とす事にしたが、
もし、買い物かごに入っている商品の数量変更や、取り消しなどがあった際、
どうやって書き換えるかだった。
  データベース(SQL文)を使えば、該当の部分に対して、
UPDATEやDELETEを使って簡単にできるが、ファイルだと、そうはいかない。
  そこで、また知恵を働かせた。

買い物カゴのデータの変更・取り消し方法
買い物カゴのデータの変更・取り消しの仕組み

  さて価格の問題があった。
  ネット販売を使う利点をお客さんに示さないと誰も使ってくれない。
  早速、競合他社のネット販売のカタログを見て、重役達が決めることになった。
  しかし、全然決まらない。理由は業界のシガラミにあり、下手に価格設定できない。
  価格が決まらないと商品ファイルの作成ができない。

  社長が「値段が決まらへんかったら、値段を省いて載せる事はできへんか」と
言ってきた。
  私は「プログラムを大幅に改良することを迫られますので、無理です」と返答した。
  「単純に考えないでよ〜。現場の苦労。理解してよ〜」と思う瞬間だった (TT)
  色々あった末、5%値引きに決まった。

  価格が決まり、商品ファイルを作成できるようになった。
  手入力で作成するため、どうしても誤字、脱字が出る。
  一度目は自分で点検した。結構、入力間違いが見つかった。
そして、他人の点検を入れるため、上司に点検に依頼した。まだ、間違いが見つかった。
  上司が「菅くん、アカンやん」と言ったが、念には念をということで、
他の同僚に依頼したら、まだ、間違いがあった。
  上司が「俺も、見落としてた」と苦笑い。


  私の方は、バグ取りや機能追加に追われていた。
  トラブル発生を防ぐため、購入商品の確認画面の出力や、確認後、
取り消しができる機能などを追加していった。

ネット販売システムの完成

 2001年4月下旬に、ネット販売システムが完成した。  技術の結晶ではなく  知恵の結晶のネット販売システム!  完成したシステムを披露します。
ネット販売のログイン画面
ネット販売のログイン画面
IDとパスワードで認証を行い
会員のみが購入できるようにしている。

 ログイン後、商品の種類別の欄が出てくる。

商品種類別の選択画面
商品種類別の選択画面
ここで該当の商品の種類を選択する。

 そして個別の商品の購入を行う。

購入する商品数を入力
購入する商品数を入力の画面
商品の明細の右側の枡目に、購入数を入力する。

 そして購入数を入力した後、画面の一番下まで進める。

一番下の画面
一番下の画面
赤く囲んだ部分を押すと、購入数を入力した商品だけが選択される。

 下図は選択された商品の明細の画面。

選択された商品明細
選択された商品明細の画面
赤く囲んだ「買い物かごに入れる」を押せば
購入商品として反映される。

 すると最初の商品種類別の画面になるのだが
買い物かごにデータが入っているため「レジ」という選択肢が
表示される。

「レジ」が表示される
「レジ」が表示される画面
ここで「清算します」を押せば、レジの画面に移る。

 商品の清算画面になる。

商品の清算画面
商品の清算画面
赤く囲んだ「購入します」を押すと、以下の画面に移る。
商品発送先の登録画面
商品発送先の登録画面
桃色で囲んだ「購入します」で全てが終わる。
購入明細が担当者と、お客さんに届く仕掛けになっている。

 これの便利なのは、レジで清算する画面で、商品の購入を
取り消す事ができるのだ。

レジの画面
画面
「購入品の訂正をします」を押せば
買い物かごに入った商品の変更ができる。
変更画面
変更画面
買い物かごに入っている商品の数量の変更と
商品そのものの購入中止ができる。

 CGIで作ったネット販売システムだ。
 プログラムのズブの素人でも、意地になれば、ここまでできる (^^)V

ネット販売の促進

システムができても宣伝しないと誰も使ってくれないので、 末日締のお客さんの請求書発行日に合わせて、ネット販売のチラシを作成。 請求書と共に送付した。 さぁ、どれくらいお客さんが使ってくれるか。 ワクワクしていたが、1ヶ月たっても誰も使ってくれない。 社長が「なんで使わへんのやろ?」と首をかしげた。 役員が大号令  営業マンは一人一件、ネット販売の会員を獲得! 役員の大号令のお陰で50件ぐらいの登録された。 そして、ネット販売開始から1ヶ月半。初めてのお客さんが来た。 キッカケは注文が、ある営業所長の携帯にやってきたので、所長が  ネットでしはった方が、安いでっせ  と勧めたためだった。 社内の反応は様々だった。「ようやく来た」とか「使うお客さんもおるんやなぁ」 そして、ポツリ、ポツリと利用者が増え、運用開始から半年で18件。  運用開始して2年半後の2003年10月末には、のべ98件の利用。  まだまだ少ない感じがするが、地道に増やしていくのが着実だと思う。  (注意)  今回のネット販売の話は、あくまでも第一弾です。  その後の改良などの話があります。

ネット販売システムをオープンソース化する話

さて、ネット販売システムをオープンソースにする話。 BLUEのMLに流したら反響を呼んだ。  IT先進企業として良い機会だと思った。 しかし、うちの会社はオープンソースがわかっていない。 その上、ネットの世界を知らない人ばかり。  なので、上司達の間では衝撃が走った。  そして次の3点が言われた。
上層部から言われた事
(1) 著作権の問題はどうなるのか?
(上層部はGPLを知らない)
(2) 競合他社が使う可能性がある。
(これには反論できない)
(3) 宣伝効果がない。IT業界に宣伝しても無駄
(思わず納得)

  と上層部から言われ、あっさり却下されてしまった (TT)
  でも、ソースを書くのが下手な私は、今にして思えば、
恥かく所だったなぁと思ったりもする (^^;)


私の軍門に下ったS社  自社開発を勝ち取り、S社を撃退した私だが、 これだけでは腹の虫が収まらない。 なのでS社には、嫌味も込めて、ネット販売システムがスタートした後に、 次のような丁寧な文面でメールを送った。
私が送ったメール
無事、システム運用開始をしましたので報告いたします。
これからはLinuxの時代でしょう。
バグだらけのMSシステムは淘汰されていきます。
MSのバグのために、品質向上を目指しているソフト会社の製品にまで影響し
品質が悪いと思われることを考えますと、かわいそうに思います。
実際、私の友人・知人でVBで開発している人はMSに不満を持っています。
数日後にS社からやってきた返事
菅さんと私達とは若干の考え方は違いますが、大筋で共感しております。
おっしゃる通り、Linuxは、どんどん伸ていくでしょう。
我々もオープンソースに非常に魅力を感じています。
今度、Linux搭載マシンを販売することを決意しました。
何かありましたら、ご教示願います。

 なんとまぁ、ここまで主張を変えるかよと思いつつ、Linuxによって、
S社がオープンソースに目覚めた事は、良かったと思います (^^)

  ちなみに、2003年現在、netcraftで、S社のホームページサーバーを
見ましたら、Linux + Apacheでした。それだったら、最初からLinuxシステムを
素直に提案しておけば、うちの会社の依頼がとれたのにと思ったりする。


まとめ ネット販売システム。 CGIの知識さえあれば、自社で開発できます。 最近では、ECサイトのソフトもオープン・ソースで出ています。 それらを活用すれば、低コストで構築可能です。 中小企業に多いオフコン。受注データなど、オフコンと連動させて 自動化できたら便利ですが、費用は莫大になってきます。 うちの会社のように、最初はネット販売のWebページだけ作成し、 受注データを手動でオフコンに入力するというのも一つだと思います。 一気に進めると費用も莫大ですが、ステップを踏みながら、 問題点などを洗い出して、徐々に進めていくのがリスクが少ないでしょう。 多額の費用をかけたが、注文が来なかったとなれば、落胆度合も大きい上 失敗と思いこんで、今後のIT化にたいして、及び腰になりますが、 うちのようにCGIの活用で、費用をかけないで構築すると、 例え、失敗だったとしても損失が低いです。
まだまだ終わらないネット販売の話  2001年5月から運用開始したシステムも綻びが出た上 商品の説明がない、商品の写真がないの問題点があるため 顧客にわかりやすい商品展示を考え、2004年4月に刷新しました。  (ネット販売システム大改装)  しかし、そのシステムにも綻びが出てきましたので オープンソース版のネット販売ソフトEC-CUBEを利用して、 2007年1月に刷新しました。  詳しくは「システム奮闘記:その65」をご覧ください。  (EC-CUBEでネット販売システム構築)

次章:「データベース PostgreSQLの導入」を読む
前章:「グループウェア導入」を読む
目次:システム奮闘記に戻る