ゴミ箱の中のメモ帳

まだ見ぬ息子たちへ綴る手記

なぜソフトウェアを自社開発しないのか

これはプログラミングの勉強を始めた頃から思っていた。プログラマになってからはさらにこの考えは顕著になり、今現在までに「自社開発」をしない事で倒産した会社や、倒産までは行かないまでも経営に影響が出るまでに被害を被った会社を多々見てきた。

金融システムや基幹システムなど、超大規模開発については全てを自社社員で賄うのが現実的でないことは理解できる。だがそれらについても最低限自社でメンテナンスが出来る人員やシステムを作っておくことは最低限かと思う。例えばNTTが電話網を自社設計、開発していないことを考えてほしい。問題が起きても問題の収束を開発会社に依頼することしか出来ず、NTTはその復旧を待つしか無いのだ。いかにそれが怖いことかわかるだろう。

この会社のソフトウェア(システム)を自社開発しないのは世界的なことなのだろうか?少なくとも、私が今までの経験の中や、人に聞いた話では日本独自の要素が強いと感じている。以前に数人のアメリカ人プログラマに聞いた話では、アメリカに「ホームページ制作業者」は無いという事であった。「無い」と言うのではなく、「存在し得ない」と言う事であり、起ち上げたとしても継続は出来ず、すぐに別の業務に乗り換えるであろうという事だった。

理由は単純で、大半の会社が自社に「Web事業部」やそれに関連する事業部を持っており、部としてそれが存在しない規模の会社であっても数人はプログラマを自社に確保しているため、ホームページの製作を他社に依頼することは単発キャンペーンサイト以外には無いという事であった。他社に依頼すると言ってもそこはアメリカで、優れたフリーランサーと契約していることが多く、「ホームページ制作会社」が「ホームページ制作」だけで事業を継続することができない規模であるということであった。


私もまさにこの仕組みに同意できる。逆になぜ日本にはここまで幾万もの「ホームページ制作会社」が存在し得るのか疑問に思えて仕方がない。

ここで「ホームページなんて自社で作るのは大変」、「個人事業の私がホームページを自分で作るのは大変」と思われる方に言っておきたいのは、「ホームページなんて簡単に作れる」ということだ。1ヶ月も暇暇に勉強すれば簡単なWebサイトであれば作れるようになるし、そのほうが自分が作りたいものを作れるようになる。
コンピュータに詳しい社員がいれば社員に任せればいいし、いなければ新たに雇ったほうがいい。コンピュータを利用していない事業が殆ど無いように、コンピュータを理解している人間を雇用していないことがいかに危険かという事を理解してのかなければならない。

ソフトを他人に作らせる日本、自分で作る米国

ソフトを他人に作らせる日本、自分で作る米国


タイトルは「ソフトウェアの自社開発」としたが、理解しやすい例としてまずはホームページを例に出すことにする。

ホームページは自分で作れ

私も今までにホームページ制作業者で働いたことがある。働けば働く程に発注してくる会社に疑問が芽生えてくる。なぜ自社で作らないのか、なぜ自分で作ろうとしないのかと。まず今からホームページの製作を業者に依頼しようとしている人がいれば、それは自社で作るべきであるとオススメしたい。何も難しいことはない。例えHTMLやCSSというものが何か分からなかったとしても、世の中には自分でホームページを作るためのサービスが多々あるし、テンプレートを使えば文字を入力するだけでそれなりのものが出来るようになっている。

これも「自分で作らずに他人の作ったサービスに任せているのではないか」と思われるかも知れないが、これは大きな違いになる。他社に依頼し、他社に製作し管理させれば、そのホームページを運営する実権を全て他社に渡すことになる。自社のブランディングも何も、その他社に握られているのだ。やろうと思えばアダルトサイトに変えることも出来、あなたの会社のイメージを底に落とそうと思えばすぐに出来るのだ。「まさかそんなことをしない」と思われるかも知れないが、あなたはホームページ制作を依頼する会社のことを底まで信用するほどに知っているのであろうか?

実権を渡すという事は、新しい商品やサービスが出来た際や、求人情報、休日情報の更新も全て他社に任せることになってしまう。任せるにしても実権を握られている以上は相手の言いなりにならざるを得ない。相手方が多忙の時期であれば更新は後手後手に回されるし、緊急の更新であれば「更新費用」をふっかけられることになる。そもそもホームページ制作業者の多くはこの利益モデルを採用しており、製作費用は数万円と安いが、運用費や更新費用に製作費用以上の費用がかかるというものばかりになる。
最近はCMSで制作する業者も増えてきたために簡単な情報は自分で掲載できるようになっているが、もしそれが出来るのであれば、同じような作業でホームページの製作も行える。

過去に私が何度も相談を受けたのがこの「実権を握られている」ことが問題になっている。いくつも前例はあるが、多いのが「ホームページの更新を依頼しようと思ったら連絡がつかなくなっていた」と、製作業者が逃げていたり廃業してしまっていることだ。こうなるとホームページは中に浮いた状態になり、「自社のホームページ」と思っていてもそれについては手を入れることができない状態となり、放置する以外に基本的に方法はない。ホームページの更新が必要であれば新たに制作する以外なく、それは古いものと並列して公開されることとなっている。ドメインだけでも保持しておけば最低限の回避策は考えられるが、ホームページ製作を依頼しているような人たちはそのような知識も持ち合わせていないであろう。

私自信も過去に「Webプログラマ養成講座」や大学で情報処理の講座をやっていたため、10名以上は自営業としてホームページ制作業者になっているが、今現在では全て廃業している。それ程に「ホームページ制作業」というものは参入障壁が低く(というか無い)、HTMLやCSSを理解していない人間ですら「ホームページビルダー」やテンプレートサービスを用いて運営できているのだ。それ故に儲からなくなればすぐに手を引いてしまう。だからこそ日本には本当に万の業者があるのではないかと考えている。

私の自宅から徒歩圏内だけで、私の知人がいる(もしくは知人)のホームページ制作業者は8社ある。交通機関で40分以内で到達可能ともなると20件近くになる。それ程に数多くの業者がひしめいているのがこの業界になる。

ソフトウェアも自分で作れ

ここまではホームページを例に出してきたが、ホームページは業者が逃げたとしたら最高でもドメインの有効期間を過ぎると非公開状態になるため危険性は低いと言える。大きな問題になるのが先に上げた社内システムになる。

これもホームページと同じように何度も相談を受けたことがある。原因は同じで「業者と連絡がつかない」や「業者にふっかけられる」ということになる。

最近の相談では、某会計事務所で社員管理システムを構築しているのだが、それは社員が10人程度の頃から使ってきているもので、現在は関連社員が100名を超えておりシステムに問題が頻繁に起こるようになってきたとのこと。「なぜ今までメンテナンスしていた人間に頼まないのか」と質問した所、「社員が増えるたび、事業が増える度にシステムの更新を頼んでいたのだが、継ぎ接ぎだらけのシステムとなり、全改修しなければ手が付けられないとのことで今までの更新費用から2ケタ増の修正費用を請求された」とのことであった。それを断り、今までの契約にならい更新を依頼すると連絡がつかなくなったとのこと。

そこで私にそのシステム確認のお鉢が回ってき、そのシステムについてのレポートを書くことになった。調べてみるとASPのWebシステムであり、さらには社内向けシステムであったために社内にサーバがあり、ソースコードも保存されていたのでなんとかメンテナンスは行うことはできそうなのだが、調べれば調べるほどに恐怖が漂ってきた。まずサーバはPentiumIII世代のマシンで構築されており、バックアップサーバも何もなく事務所の片隅に置かれているだけになる。バックアップが無いのでもちろんこのサーバのHDDがクラッシュすれば全従業員のデータは飛び給与計算も不可能になるという運用形態であった。すぐにバックアップは取ったもののバックアップの最中に壊れては全て私の責任にされると思い一挙手一投足を会計会社の責任者に確認を取りながら冷や汗を垂らしながら行った。

次にそのソースコードを確認するとたしかに継ぎ接ぎだらけのコードになっており、これを改修するには構築しなおしたほうが確実になる。だが、その改修をするにも「機能一覧」や「要件定義」など全ての書類は残っておらず(そんなものはそもそも存在しない)、このシステムを発注した創業者も全く覚えていないとのことであった。これは実運用されているシステムを確認しつつ、ソースコードを確認して再定義するしか無い。さらに、先に「社内向けシステム」と書いたが、実際は「社外からもアクセスできる」ようにされていた。それを伝えると「ああ、i-modeから繋げるよ」と、先ほどと全く違う返答が返ってきた。使っている側の人間も機能について理解しておらず絶望的であった。

私はVBは読めないため知り合いのVBエンジニアにソースコードの解析を依頼することにした。これにももちろん予算は必要で、解析だけで期間は2ヶ月、費用は200万円となった。その結果、「希望の更新はシステムの改修をしなくても付け足しが可能だが、その機能がたまたま分かれていたため更新が可能なだけで、今後別の機能を付け加える時は可能かどうかはわからないから改修をおすすめする。」とのことであった。改修費用の予測は500万円強とのことだが、「意図不明なコードがあったため1ヶ月は実運用を確認しなければわからない」との付け足しもあった。

だが結局、その予算は確保できないという事で現状のまま使っていくという事になった。あのマシンが今も動いているかは私の知る所ではない。


この例からもわかる通り、一度手を離れたシステムの改修には莫大な費用がかかる。改修費用に500万とのことだが、ちょっとしたプログラマを抱えるだけであれば年収500万円も必要ない。それを雇えば社内システムの他にもさらに様々な社内システムを構築していけることになる。更新が必要になっても先のような打ち合わせの時間は必要なく、それを社員に伝えるだけでいい。そうすると社内事情を理解しているプログラマが的確に修正をしてくれる。

その会社はネットワーク環境もごちゃごちゃであったが、プログラマであればネットワークも最適に構築することが出来、その一人の雇用だけでどれほどの予算が節約できるかも計り知れない。

ネットワークやバックアップも自社設計しろ

このハードウェアの知識を持つ人間がいないという面で倒産しかけた会社も経験がある。

その会社は設計会社だったのだが、設計図面を全て共有ファイルサーバに保存することになっていた。その設計会社からすると設計図面は会社の財産であり、それが失われたら倒産であることは想像に難しくない。だが、その会社のいうところの「ファイルサーバ」は単なるNASであった。しかもRAID1等のない単体のNAS

相談内容として「事務員が電源ケーブルに足を引っ掛けて棚からファイルサーバを落としてアクセスができなくなった」というものであった。相談を受けた時には棚に置いているようなNASなのでバックアップデータやファイルの受け渡し程度に使っているようなNASかと考えていたのだが、実際に話を聞いてみると先の説明のとおりである。半泣の女が至極丁寧にお茶や食べ物をくれると思っていたがすぐにその事務員が誰かは理解できた。

そのファイルサーバにデータを保存しているため、新規設計以外の業務が現在全て止まっているとのことであった。インターネットで調べて京都のデータ復旧会社に連絡をすると、まず「データが復旧可能かどうかの判断」に100万円、データを復旧させるとなるとデータ量に応じて数百万円が必要になり、作業期間も1ヶ月は掛かると言う見積りであったという。そこで、データ復旧などの解説記事を辿り私を探ってきたとのこと。正直関わりたくはないが、話を聞いているとデータがなくなれば会社をたたむしか無くなるとのこと。社員30人どうすればいいか。と、社長と専務とその女社員に羽交い締めにあっていた。

依頼を受けるしか無くなったために何とかデータを復旧させた時には胴上げされる勢いであった。

そしてさらに設計会社の社長から「インターネットが遅い」ということや「ファイルサーバへのアクセスが遅い」ということも相談されたのだが、調べてみるとネットワークの設計が腐っていた。「腐っていた」というか、設計というものがされておらずコンピュータが増える度に近場のハブにハブをドンドンと追加していったという状況であった。それゆえにスタック限界を超えていたり、ファイルサーバやインターネットへのアクセスは全て1本のケーブルに収束していたりとネットワークが常に飽和している状態となっていた。リピータハブとスイッチングハブの区別が付く人間もいないというような状態であった。

その結果を伝えると、今回の失敗から社内システムを見直すという事になり島ごとのファイルサーバやネットワークの分割などを行うことになった。それも私に依頼してきたため、私は構築は出来てもメンテナンスを続けることができないため一人管理者を置いたほうがいいと助言し、最低限のネットワーク設計をした後に知り合いの会社にそれを依頼した。



このように、社内にコンピュータやソフトウェア、ネットワーク、ハードウェアを理解している人間がいないと多種多様な危険因子が存在することになる。これらの理由からわかるように、社内で全てのシステムを構築する人材を揃えることができないにしても、最低限それらを統括し管理できる人間を置かなければならないことを理解してもらえるかと思う。そうしなければ、その人材を雇用する以上の費用を支払っていかなければならない。


ホームページは本当に簡単にそこそこの見栄えのものが作れる。それを自社で作らない手はない。簡単にリアルタイムに更新が人件費のみで行え、新製品のホームページを分割するなども柔軟に行なっていける。そして、そのような知識を持っているような社員であれば簡単なプログラムも書けるようになれ、社内システムもまかせることができる。そしてハードウェアやネットワークの知識もあれば社内の全てを任せることが出来るようになる。

自社開発の危険性として「わかるスタッフがいなくなること」を恐れることがあるようだが、そんなことは人に任せることにくれべれば何の問題もない。社内にソースコードや設計書、運用ルールがある以上は新たにわかる人間を雇用することや、最低は社内にソースコードを残している状態で更新しつつメンテナンスを行ってもらえる業者を単発的に探せばいいだけである。そうすれば上のような「手を付けられなくなる」という状態は回避することが出来る。


日本は世界に比べてITリテラシーが低いと言われているが、これはこの業界にいればまさに感じることが出来、低いどころか大半の人間が持ち合わせていないと言えるレベルにまで感じている。



そんなこんなで私もホームページ製作業をやっています。ご依頼は是非とも私までご用命ください。これらの問題点を解決した方法をご提案させて頂きます。

Web制作の基本がわかる本 ~ホームページ制作担当者が必ず知っておくべきこと~ (Web Designing BOOKS)

Web制作の基本がわかる本 ~ホームページ制作担当者が必ず知っておくべきこと~ (Web Designing BOOKS)

作りながら学ぶ HTML/CSSデザインの教科書

作りながら学ぶ HTML/CSSデザインの教科書