社内システム化

IT系の会社に勤めているが、社内システムの導入については、不思議な現象が起きることがあるようだ。以前勤めていた会社でも今勤めている会社でも社内システムが必要になると、部署の責任者などが社外に発注し、高価なパッケージを導入するケースが多いように思える。

以前勤めていた会社では、社員情報の共有、勤怠管理などのため、さまざまなパッケージを購入していた。NotesやExchange Serverなどを覚えているが、他にもAS/400まで購入して独自パッケージも購入していた。たしか数千万はかけていたはず。しかし、購入しただけではアプリケーションは動かないし、自分たちに合ったサービスも提供できないのだが、それ以上は何も進まず、結局誰も使わないサーバとパッケージだけが電源だけ投入された状態で動き続けていた。(実は、それでも誰も責任は取らず、配布経費だけが追加されていた。)

通常なら

  • 要件を聞く
  • 制約条件を聞く(予算、期間など)
  • 要件と制約条件を満たす見積もり提案を行う。

という流れで話を進めていくのだが、アプリケーション受託開発をしている会社はなぜか開発を嫌う。どうも以下のような思考回路がはたらくようだ。

  • アプリケーションの受託開発はコストが高い。
  • コストを抑えるにはパッケージが一番。
  • システム化したい部分はたいした機能ではないので、パッケージで十分できるだろう。
  • 受託開発で作ってもらうほど複雑な機能はいらない。
  • 下手に社内エンジニアに相談すると「アプリケーションを作成します。XXX百万円です。」などというに決まっている。どうせ、かれらはパッケージを使おうという発想がないので、作ると言い出すに決まっている。アプリケーションを受託でつくればコストが大変かかることぐらいボクらは知っている。

このような思考で、社内エンジニアたちに何の相談も無く、自分たちだけでパッケージ導入を試みるようだ。パッケージを購入する場合、業務で使うものなので、まあ数十万から百万円程度のものをターゲットにすることが多いようだ。受託ならその10倍はかかると思っているしね。で、パッケージ販売会社に問合せ、自分たちが望んでいる業務ができるかを確認するわけだ。すると販社の営業が「この機能を使えばできます。」なんていって、あたかも簡単に目的が達成できるように勧めてくるのだ。発注者側は、システム開発のプロではないので、なんとなくできそうに思い、まず、購入してしまうわけだ。不思議なことにたいてい同時にサーバタイプの高スペックハードウエアも購入したりする。それでも百万ぐらいの投資なら安いものだ、と思っているのだ。

しかし、いざ購入してカスタマイズをしてもやはり思ったような使い勝手は実現できず、四苦八苦しているうちに、「とりあえず、間に合わないので、Excelに勤怠情報を入れてもらい、それをメールしてもらおう。DBへの登録はそのメールをみて、総務の人たちで手分けして入力しよう。」となるのである。そしてパッケージもハードウエアもだんだん忘れられ、結局は単に投資しただけ、という状態になるのである。(以前の会社では、社員情報DBだけが、MDBSQLServerAS/400上の独自DBにそれぞれあり、当然同期も取られておらず、担当者のローカルPCのMDBが信頼できる、と言っていたなぁ。)

以前勤めていた会社では本当にこのパターンが多かった。問題なのは

  • なぜ、自社にシステムソリューションのプロがいるのに相談しないか

につきる。前の会社では私はネットワーク管理者も兼任していたので、この手の発注部署に比較的近くにいて、怪しい動きはわりと早く知ることができた。そこで、いろいろな問題を指摘したり、提案書などを書いたりして、説得をしていた。確かに、社内開発案しか出さなかったが、コスト的には、パッケージと大差ないコストを提案していた。それにプラスメリットとして教育、研究部分も加味できると説得したこともあったが、その説得や提案が聞き入れられたことは一度も無かった。(2度ほどは社長にもプレゼンを行い、かなりいいセンまで行ったが、結局採用されなかった。)

社内システムを導入しようとする人はたいていシステム開発については素人だ。しかし、受託が高いことは自分たちの飯の種なので、知っている。(なんか悲しい。受託を勧める会社なのに、受託を嫌うのだ。)だからそういう方向にしたくない。だから社内エンジニアには相談しない。こういうことだ。

社内エンジニアをなめるなよ、と言いたい。

最初に書いたが、顧客の要望はさまざまで予算が少ないのであれば、それを正直に相談すればよいのだ。予算に合わせた最適解を提示するのがエンジニアの能力ではないですか。相談もせず素人が勝手な判断で、「とりあえずハードとパッケージを買おう」と思うところが問題なのだ。エンジニアも予算が低ければ、パッケージ導入を勧めるし、最近ではオープンソースやフリーでもかなりのことができる。

たいてい受託をする場合でも、お見積もりはタダだ。社内のエンジニアであればさらに気軽に聞ける。それなのに、「彼らは高い提案しかしてこない。」と勝手に思い込んで、勝手に素人が不思議なことをはじめ、失敗するのである。

で、今私は転職して、あたらしい会社で開発エンジニアをしている。今の会社はもう少し、広い分野の仕事をしているが、やはり大きな収益の柱は受託開発である。そこで、同僚から聞いたのだが、社内システムのひとつとしてパッケージ導入を考えているようである。しかし、そんなことは社内の掲示板やメーリングリストにも何にもアナウンスされていない。どうやら同じように、開発をしらない管理職の方々がパッケージソフトの購入を検討しているようだ。それがすごい機能らしい。特徴を言うと

こんな感じ。私の会社は社員数はそれほど多くない。また使用する人も、社員全員ではなく、基本的には管理職や営業だけだ。それなのにこの特徴はなんでしょう。

  • 機能のムダ
    • DBレプリケーション機能がは遠隔でパフォーマンスにシビアで大量アクセスがある場合には検討が必要だが、社内システムで必要なほど重要なのだろうか。また、このシステムは金銭に係る部分ではない。
    • パッケージはおそらく、かゆいところに手が届くよう、いろいろくふうされているだろう。しかし、本当にそれらの機能が必要なのか。やりたいことが明確にあり、譲れない機能とあればよい程度の機能と、将来必要になるかもしれない機能程度にわけ、優先度、重大度を明確化すれば、パッケージを導入すべきかどうかは判断できるだろう。
  • 将来性の低さ
    • クライアントがMicrosoft製品に依存している、ということは、将来にわたり、該当パッケージとMicrosoft製品をバージョンアップし続けなければいけない。サーバだけならまだしもクライアントまでバージョンアップを追い続けなければいけないので、将来のコスト増が懸念される。
  • コスト
    • 同様機能ならおそらくXOOPSを使用することで実現できるだろう。新人研修で作るのも面白い程度の機能しか要求されていない。確かに受託で高い将来性を維持するのなら、いくらでも高い見積もりを提示することもできるが、機能的にも低いし、安く作るならかなり安く作ることも可能だ。


しかし、今の会社はへんなパッケージを買ったり、とりあえず明確な用途無くハードウエアを購入したりすることが無い、と信じていたのだが、そんなことは無かったようだ。どうしてシステム会社は受託を嫌うのだろう。特に今の会社の場合、顧客からシステム構築を依頼されたときに、XOOPSを提示して、開発コストを90%カットすることを提案したことさえあったはず。それなのに、なぜ、高価なパッケージ購入を開発エンジニアに相談せず、決めてしまうのだろう。やりたいことが何で、どんな優先度で、制約が何があるかを相談してくれればよいのに。

おそらく、これは管理職が社内SEを信頼していないからだろう。これがIBMのSEなら相談するのだと思う。もちろん、IBMに頼めばそれだけで桁が2つぐらい違うだろうことは彼らも知っているが。

こういうのを意識して相手に伝えるのって難しいのなら、毎日、部署で「朝会」を開くと、みんなが何をしているかがうすく共有できるので、良いのかもしれない。