品質が何より大切
安さを基準に選ぶと大変なことに、、、
普通のソフトなら、安さを基準に選んでも、だいたい問題はありません。なぜなら、必要な技術がそんなに高度でなくても大丈夫だからです。言い換えると、一般的な技術で開発できるので、どの会社でも開発できるからです。
このような場合には、楽天ビジネス等で、相見積もりをとって、安いところに発注するというやり方でもいいでしょう。
でも、テレメトリシステムの場合は、委託先を間違えると、とんでもないことになります。いつまで経ってもシステムが安定しない、あるいは、完成しないことだってありえます。
システムが安定していないと、大切なデータを失ってしまうことがあります。そして、そのデータは永久に手に入らないことさえあります。例えば、アラームを受信し損なったら大変です。
私自身の経験ですが、別の会社が開発した検針システムの品質が悪く、システムインテグレータの会社が大変苦労されていたことがあります。
結局、そのシステムは、その開発会社では、もう手に負えないということになり、私が品質向上を図ることになりました。プログラムソースを見ると、唖然とするくらいの保守性の悪いものでした。修正するのも一苦労でした。稼動中に次から次へと、かなりの量の不具合が発生し、逐一修正して行きました。一から開発し直した方が良かったかもしれないぐらいです。
システムインテグレータの担当者の方は、不具合がある度にユーザさんに頭を下げられていたので、精神的に本当に大変だったことと思います。私から見ても、本当に頭が下がる思いでした。
テレメトリシステムのむずかしさ
なぜ、このようなことが起きるのでしょうか?
それは、テレメトリシステムは、ネットワークプログラミングや、通信機器についての、専門的な技術が必要なシステムだからです。
では、テレメトリシステムと普通のシステムとは何が違うのでしょうか? それは、端末機器との通信を制御する、「通信サーバーソフト」が中核にあるということです。
サーバーソフトとは、例えば、Webサーバー、メールサーバーのように、多数の利用者に対して、並行にサービスを提供するソフトのことを言います。「通信サーバーソフト」の場合は、その相手は端末機器であったり利用者であったりします。
Webサーバーソフトとして代表的なものとしては、Apacheがあります。Apacheで動作するコンテンツやCGIを開発することは、多くの会社ができますが、Apache自身を開発できる会社はそうそうないでしょう!
残念ながら、Apacheのような、テレメトリシステム用の汎用的なサーバーソフトは、私の知る限り存在しません。
サーバーソフトは、経験のない技術者が、一から開発して、安定したシステムにするのは、至難の業なのです。
テレメトリシステム用の汎用的な通信サーバーソフトが、どのようなイメージになるかをお知りになりたい方は、「汎用テレメトリエンジン」を、ご覧ください。
「汎用テレメトリエンジン」は、私が理想とする通信サーバーソフトの姿です。少しずつ近づいてゆこうと思っています。
どの会社に頼んだらいいの?
では、この会社に頼んだら大丈夫だということは、どうしたらわかるのでしょうか? 以下に、その要点を書きます。
- 1.同種のシステムの開発経験があるか
- やはり、経験ですね。同種のシステムの開発の経験があるか、聞いてみてください。 そして、過去の苦労話を聞いてみてください。サーバーソフト開発の怖さを知らない場合、安くできると言ってきたとしても、できあがりの品質の面でかなりリスクがあります。
- 2.色々な通信機器を使用したシステムの経験があるか
- どのような通信機器を使用したシステムの経験があるかも聞いてください。色々な通信機器を経験していれば、通信機器の変更・追加を柔軟にできるように、開発時に考慮できます。
- 3.アプリケーションのつくりが、きちんと多層アーキテクチャになっているか
-
アプリケーションのつくりが、きちんと多層アーキテクチャになっているか確認してください。
きちんと設計されたアプリケーションであるなら、最低限、ユーザーインターフェイス、ビジネスロジックおよび永続化部の3階層のアーキテクチャにきちんと分けられているはずです。
- ユーザーインターフェイスとは、入出力画面のことです。
- ビジネスロジックとは、業務をモデル化した部分です。
- 永続化部とは、データベースの部分です。
- 4.オープンな標準技術を使用しているか
- 例えば、データ定義・データ交換にはXMLを利用、ビジネスオブジェクト部とのやりとりには、XMLWebサービスを利用するといったようなことです。特定の製品に依存するようなインターフェイスはやめた方が良いでしょう。