昔、日経コンピューターに「動かないコンピュータ」という連載の事例記事がありました。
なんやかんやの理由で作ったシステムが動かない事例を紹介したものでした。
コンピューターがビジネスに使われはじめ、日本のようにIT企業にまかせるのが常識となっている国ではとくに起きるのです。
自分がいる業界でもある、IT業界。
最近、私がITシステム発注して失敗したので、私の知識と共にシェアします。
少し長いですが、あなたや周囲の人や所属する会社がウェブサイトなどのITシステムを発注する場合に気をつけるべきことを知ることができるように書きます。
他人のうまくいった話より、失敗した話のほうが参考になると思うのがこの記事を書いた動機です。
—-
私はITエンジニアとしてはプロです。
ITという言葉が存在しないころから、この業界で働いてきました。
実力はAmazonで私が書いた本、監修した技術本が数冊見つかりますから、それをご覧いただければわかると思います。
こういう業界で働いていると、主にふたつの嘘に出会います。
1. ローテクで人件費をかすめとる
2. 手段を実現して、目的はおざなりにして逃げる
この手口にひっかからないようにしなくてはいけません。
どういうことか説明します。
1.ローテクで人件費をかすめとる
Unix/Linuxが世の中に出てきたころには、「高水準プログラミング言語」とか「フレームワーク」という便利なものはほとんどありませんでした。
もっぱらC言語でプログラムをゴリゴリ書いていたものです。
しかし技術の進歩はすさまじく、今のウェブで動くプログラムはPHPとかJavaというもので作られています。
PHPもJavaもそうですが、「プログラミング言語」だけではなく「画面に表示しやすくする機能」とか「遠くのサーバーと通信する機能」とか、専門家じゃなきゃよくわからないことをできる「ライブラリー」というものが、標準でもオプションでも存在します。
プログラマーはそういうものを利用して、細かいことまで知らなくても素早く目的のプログラムを作ることができます。
例えていえば、レンガ積みで家を作っていたところに、簡単、柔軟なツーバイフォーとシステムキッチンがやってきたようなものです。
しかし、技術の進歩の勉強をさぼっているエンジニアはそうはいきません。
若いころに学んだC言語しか知らないということもあります。
そういう人が今時のウェブの機能を実現しようとすると、
すごーく時間をかけて、すでに他で実現されている機能をコツコツ書くことになります。
それがキチンと書かれていればいいのですが、もともと不勉強なエンジニアになんでもできるわけがありません。
さらに最新のものは世界中の環境でテストされ修正され信頼性は高いですが、ローテクプログラマーがコツコツ新たに書いたものは信頼性の面でも疑問です。
不勉強なエンジニアは、よくしらないお客さんに「C言語はコンパイラーだから早い」とか「こういう込み入った案件ではパッケージやフレームワークは使えない」と不勉強を棚にあげた誤ったガイドをします。
はっきり言って騙すわけです。
そういう現場を何度も何度も見てきました。
そしてダラダラとかかるバグだらけのプログラム開発の人件費を請求します。
その人件費のほとんどはプログラマーには行かず、会社の儲けです。
ご存知かどうかわかりませんが、今の日本のIT業界のプログラマーの地位は底辺で、一部上場のOLの給料ほどももらっていません。
(小学生にプログラムの塾に行かせるって、こういう仕事につかせたいってことですよ?)
だから、時間を引き延ばすのです。
プログラマーという仕事は実は芸術です。
優秀なプログラマーが書くプログラムは、きれい、短い、実行速度も納期も早い、バグが少ない、のです。
ヘボプログラマーが書くプログラムは、汚い、冗長、実行速度も納期も遅い、バグが多い、という特質があります。
Google, FaceBook, Youtube, Instagram, Pokemon Go, あげればきりがありませんが、世界で使われているプログラムは優秀な才能にめぐまれた少数のプログラマーが書いたものです。
クラウドのサービスなどを利用したら新たに制作する1/10のコストでできるなんてことがよくあります。
日本に目ぼしいプログラムが存在しない理由はプログラマーはバカでもできるという誤解を日本のIT産業界がもっているからです。
プログラミングの特質を無視していつまでも人数x時間でしか考えることができないのです。
メインフレームでCOBOLやPL/Iでプログラムを書いていた牧歌的な時代の残骸です。
今はヘボプログラマーをたくさん集めても短時間でできる代物ではないところがプログラムというものの特徴です。
つまり実力のないプログラマーが書いたプログラムは、徹底的にテストしてバグ出しをするか、一刻も早く捨て去るか、です。
後述しますが、この事実が私の決断に大きく影響しています。
2.手段を実現して、目的をおざなりにして逃げる
機能は満たされていても、目的は満たせないシステムを作って逃げるIT企業は少なくありません。
もっとも身近で見聞するのは「SEO対策」ではないでしょうか。
普通の企業がSEO対策をしたい理由は、お客さんを増やしたいからだと思います。
そこを「アクセスを増やす」と話をすり替えてしまう。
だから、姑息な手段で1ヶ月ほどアクセスは増えたが、まったく売上はあがらないまま費用だけ請求されるなんてことは、しょっちゅう目にします。
ある意味IT業界は他業界と違って、少しおかしいのかもしれません。
だからこそ、近々、民法の改正があり業務委託が見直されるのでしょう。
今回の事件で起きたこと
私はこぎれいなサイトを作る必要が出てきたので、エンジニアではあれどデザイナーではない私はどこかの製作会社にまかせようと思いました。
デザイナーと制作が一体のほうが、間違いも少ないだろうと思ったからです。
昔の職場の後輩に聞いたら、普通のウェブ制作会社でよければ、ということで紹介してもらった会社が茗荷谷にあるH社–ケンシロウとします–でした。
H社は記事の更新などをふくめ、WordPressを母体にしてサイトを作ることを提案してきました。
WordPressとはブログを稼働させるオープンソースプログラムです。
私のこのウェブサイトもWordPressで作られています。
この時、H社の契約書には「納品後の変更については知らないよ」と書いてありました。
ケンシロウの技術レベルを知らない私はOKとしました。
というのも、システムを作ってもらう場合、将来の大きな変更についてはわからないから、上の一筆を入れるのは常識だからです。
システムとして彼らが納品物としたのは4画面でした。
画面単位に簡単、普通、難しいなどの重みをつけて見積もりをする方法はものすごく古い方法なので違和感がここでもありました。
とくに、WordPressのプラグインを利用したメール送信画面だけで1画面と数えるところに疑問はありました。
WordPress自身がすでに10画面以上はもっている代物です。
プラグインという機能拡張モジュールを入れると、設定画面があるのが普通ですから1画面増えます。
しかし、こういう小規模業者の仕事の仕方、実力を見てみたいと思い契約しました。
見積金額は50万円と少しでした。
それから2ヶ月ほどで一応、あがってきました。
2ヶ月ほどかかったということを覚えておいてください。
内容を見ると、かなりのローテクで、無料の画面デザインを入手して、無料のプラグインをいくつか入れたところに、画面デザインのプログラムを変更したものでした。
言い換えるとプログラム開発は、このテーマ変更部分だけです。
ローテクなところで私の危険フラグが立ちました。
彼らが書き加えたプログラムはWordpressのソースコードをいじり、カテゴリーがプログラム内で定義され固定的で今だけ通用するものです。
私が「キーホルダー」というカテゴリーを追加するためには、そのプログラムをユーザーがいじるしかないというものでした。
H社–ケンシロウはWordPressのプラグインにするというパッケージにする力すらなかったのです。
一応受け取って使っていましたが、半年ほどして問題がもちあがりました。
先にWordPressはオープンソースだと書きました。
WordPressは世界中で使われているため、WordPressの開発チームは自動的に最新にアップデートする機能の充実を図っています。
これによりアップデートからおきざりにされるシステムを防ごうとしているのです。
そういう波にこのシステムも飲まれ、ログインしていなくても自動アップデートがかかりました。
それにより、ケンシロウが加えた変更の商品画像を切替える機能が動作しなくなったのです。
ケンシロウにエラーメッセージを伝えても、「バックアップはないのか。納品後の変更については知らないよ」という契約を盾になにもしようとはしませんでした。
WordPressを母体に提案をしておきながら、
WordPressの特性による変更についても契約を盾に動作しなくなったシステムを放置するのです。
一時的に動いて納品できたという手段は達成したけれども、それで商売をするというお客さんの目的には一切知らん顔です。
間違いなく、ケンシロウの無能なエンジニアともっとわけのわかっていない経営陣はなにが起きたかすらわかっていないでしょう。
おそらくエンジニアは自分を守るために経営陣にも自分の都合のいい報告をあげて、客である私を悪者にしてることでしょう。
技術のわからない営業や経営者のいる会社と取引してはいけないのです。
会社に罪の意識がないため、もしホンキで修正させるなら、経営者に合ってなにが起きているか説明しなくてはならないということです。
これが典型的な「動かなくなるITシステム」です。
そしてこの茗荷谷のケンシロウのような会社はどこにでもあります。
どうなったか(どうしたか)?
さて、こういう時、発注者(ユーザー)はどうするのが正しいと思いますか?
普通の場合、たとえば車だったりすると、なんとか治してしてもらおうと、
問題について話しあったり、追加料金を払って修正してもらおうと考えるでしょう。
しかし、私がとった方法は
システムの破棄
です。
経験的にデキのよくないシステムは次々にトラブルを起こすことを知っています。
ヘボプログラマーの書いたクズなコードを追う気にもなりません。
払った50数万円に固執し、被害が広がるのではたまったものではありません。
幸いデザインについてはこちらに所有権がありますから私は、
- 別のECサイトサービスを契約し、
- カスタマイズ機能を調べ、
- SmartyとBootStrapを勉強しなおして、
- プログラムを書き、
- 同等、いやそれ以上の機能を搭載したシステムを作り上げました。
かかった時間は金、土、日曜の三日間です。
(息子とラーメン食べにいく余裕はあり)
彼等がダラダラ過ごした2ヶ月はなんだったのでしょうか。
やはりこの程度の技術力で、プロと称してご飯を食べていけるんだなぁ、と改めて小さいウェブ構築会社の実力の程度を知りました。(これが知りたかった)
ついでながら、この茗荷谷のケンシロウはセキュリティー問題も起こしてくれやがりました。
それも最初は私が怒っている理由を理解していないのです。
苦い経験でしたが、身をもって相場がわかったことは収穫でした。
—
これを読まれている方のほとんどは私のとった解決策は取れないと思います。
したがって、動かないシステムにお金をつぎ込まないように、周辺の人に、依頼しようかというシステム構築業者の評判とおよその金額を複数社に聞いてみてください。
わからない時は比較して決めるしかありませんから。
ネットの広告は自画自賛ですから、まるでアテになりません。北斗社も自社サイトではすごいこと書いてあります。
単なる紹介は今回のように、かえって足枷となることが多いです。
営業だけでなく、できれば制作するエンジニア、デザイナーに会ってみたほうがいいです。
とくに「開発後」の責任の取り方です。
動けばいいんだろうというシステムを作っている会社は逃げます。
普通のECサイトをやりたい人、小さい企業には立ち直れないと思います。
しかし、50万円で作ってもらったというフェアトレードのサイトを教えてもらいました。
これもWordpressの応用でしたが、テーマをうまく作って対応しています。
まともな会社もあるのです。
最後ですが、制作したのは家内のやっているジュエリーショップです。
こういう小さなシステムの背後にも、なかなか苦労があるのです。
よろしければ、ご覧ください。