工場サイドから見たITベンダーによるシステム構築の難しさ


SEは忙しい

 お付き合いしたすべてのベンダーではないのですが、基本的にITベンダーは忙しいです。いつも開発に追われていて、生産管理のソフトウエアを販売していても、工場でどのような生産管理をしているかについて勉強できている、基本を理解出来ている会社はなかなかありません。人手不足になっている業界でもありますので、ついこの間まで全く別の業種で働いていた方が一人で営業している方もいます。そのような方はプログラミングの知識がないのですが、所属会社で販売している生産管理のソフトについては説明できるので、疑ってかからないとITに詳しくないことがなかなかわかりません。

 ただ、補助金を使っての開発だと、補助金に採択されるかわからない状態での初回見積りの段階で、開発部門も参加した詳細な見積書を作成しにくく、採択後には計画の大幅な変更は認められにくくなるため、開発が進み仕様の詳細が決まっていくときになって、「これはできません。」「技術的に不可能です。」という事態に陥るのは大変な恐怖です。

見積りに対する考え方が違う

 金属加工の業界では見積金額は最終価格で、受注のときに内容や金額について再度打ち合わせというのはめったにありません。しかし、顧客に合わせてカスタムで設計するソフトウエアは業者によっても違うと思いますが、見積りはあくまで想定する内容についての見積りであって、仕様が確定する契約時が金額の確定タイミングです。しかも契約後も開発内容に変更があれば金額に追加されていきます。

 金属加工の業界だと、図面一枚でおおよそ理解できてるため見積りのあとにごちゃごちゃ言う工場はあまり良い会社と思われませんが、IT業界だと詳細はあとに持ち越されていたりします。

約束事は文書に詳細にまとめる

 契約書の内容は重要とよく言われることですが、(悪意のある業者に騙されないために契約書の文面をまとめるものではありません。)異業種間では契約がとても重要です。

 システム開発では、見積・発注から納品まで半年以上かかったりしますので、細かな約束ごとはお互いに記憶が不明瞭になります。また、よくよく考えると当たり前のことなのですが、IT技術者は工場の生産活動を経験したことがないので、細かい仕様について誤解が多々あります。

 例えば、IoTで管理したい生産状況の更新頻度について同じ計画を説明しても、あるベンダーは1日1回で更新で良いと考え、他のベンダーはリアルタイムで1秒更新でなくてはならないと考えていたことがありました。このような状況で、ベンダー同士で仕様の詳細を詰めてもらうと、イメージと全く違うシステムが完成してしまうか、もしくは「技術的に不可能です。」と話になります。もちろん、これが見積のあとですと、見積よりもシステムの価格が高くなってしまうかもしれません。

 実際には、IoTで生産状況を確認するのが、人であれば、1秒おきに更新されている必要はだいたいにおいてありません。また、在庫の状況であれば一日一回の更新でも良いかもしれませんが、生産状況が一日一回の更新でよい金属加工の工場はないはずです。

 人間として習性として、自分の都合のよいように理解してしまう以上、約束ごとは可能な限り細かく決めて、文書にしておく必要があります。

部材は誰の負担か

 IoTデバイスの設置でかかる電気代は、設置する工場側の負担になるでしょう。ですが、工場で在庫しているケーブル、リレー、スイッチはどうでしょう?リレーは一個1000円はしますが、1台の加工機で7個使うものもあり、複数の加工機にIoTデバイスを設置してもらうと、リレーだけで、数万円になります。

 設置になれた業者だと、必要な部材を持ち込んで来るとは思いますが、IoTデバイスの設置に慣れた業者はあまりないでしょうから、そもそも見積りに必要な部材が入っていないかもしれません。そうなると、設置業者としても追加負担になります。部材がどの程度必要か、誰の負担なのかは契約の時までに文書にしておく必要があります。

異なるデータベースの結合・連携

 生産管理システムであったり、IoTのシステムであったり、基本的にシステムはマイクロソフトのSQLサーバーなどのデータベース管理システムが使われています。データベース管理システムはSQLという共通の言語で操作可能で、他のデータベース管理システムを使っていても、異なるデータベースでも簡単に結合させることができます。したがって、生産管理システム、日報管理システム、在庫管理システムが異なるベンダーのシステムでも連携できます。

 しかし、データベースを他社のシステムから直接操作されてしまうと、問題が発生したときに原因の追求が難しくなることから、保守期間中のシステムであれば、データベースを直接結合することはベンダーが許可しません。

 それでも、IoTのデータを連携させないと、IoTが有効活用できないことから、CSVによるデータの取り込み、WebAPIによる操作など、ベンダーが許容する範囲で連携を検討します。CSVによる連携は多くのシステムで使用可能ですが、CSVだとファイルが更新されても、システムがCSVを見に行かないと更新されたことがわからないので、どうしてもリアルタイムには更新を知ることができなくなります。

 どこまでのデータベース連携ができるかは、計画の段階で明確にしておかないと、あとから計画を大きく変更することになります。

業務時間の違い

 細かいことですが、近年の働き方改革で重要になってきていることにIT技術者と金属加工工場の働く時間の違いがあります。金属加工工場であれば、午前8時や8時半始業、午後5時か5時半で終業がほとんどではないでしょうか?

 IT系ですと、会社によっては10時始業のところもあり、夜遅くまで働く会社が多いです。すると、どうしてもIoT設置工事やシステムの導入が夕方遅く、金属加工工場にとっては残業の時間帯になってしまうことが多くなります。

 加工機への設置工事など、安全性の観点から、現場技術者の立会が必要になることも多いですが、設置に数日を要する場合には設置作業時間をどのようにするかについても、契約時点で明確にしておく必要があります。

技術レベル・開発経験の違い

 例えば、100台を超えるIoTデバイスからのデータをシステムに渡すときに、できるだけ負荷が少なく、安定動作させるために、FTPでCSVファイルを送信するのか、HTTP POSTで送信するか、を決定しなくてはなりません。この時、IoTデバイスの開発側ベンダーとデータを受け取るシステム側のベンダーが同じ意見だと、あまり悩むこともないのですが、どちらのオーバーヘッド(負荷)が大きいのか意見が相違したことがあります。

 意見が相違してしまうと、ITに詳しくなくても発注側がどちらの方法にするのかを決定する必要があります。

 ほかにも、通信時のポートを80にするのか8080にするのか、細かなプロトコルNTPサーバーの設定方法、通信のポート開放タイミング、時間の表記方法など、細かな通信プロトロルの想定の違いから、通信が上手く動作しないというトラブルもありました。

 プロトコルの相違点がわかってしまえば通信できない問題は解決するですが、それよりも問題なのはなぜ通信できないのかわからない場合です。ベンダー間で想定しているプロトコルに違いがあるとは当初は思わないものなので、自社のプログラムに問題がない場合、どうしても相手のプログラムに問題があると考えがちです。プロトコルに違いがあるだけで、プログラムに問題があるわけでないので、通信ができない理由がそれぞれの対応のみだと迷宮入りしてしまいます。

 これは面倒な問題で、相手ベンダーが使用するプロトコルを確認できる技術力のあるベンダーでないと、解決できません。したがって、特に複数のベンダーの協力でシステムを組み上げる場合には信頼できる技術力のあるベンダーを確保しておく必要があります