前回(https://qiita.com/Cente_mw/items/e3cec7e4bc9a39ea1c29 )からの続きです。
> すべてを自社で開発できた時代ならよいのですが、、、やっぱり長期に信頼できるパートナーと組むんですかね。
問題となるのは「長期に信頼できる」という点です。何も「長期供給」「10年保証」と謳っている会社・製品を探す訳ではないのです。前回のFree沼に陥ることなく、つまり、自社の技術レベルを落とすことなく、限られたリソースの中で、開発を継続できる環境を準備したいですね。
はい。そこで問題なのは「自社の技術レベルを落とすことなく」という条件です。
前回書いた様に、部品の代替を考えると「この部品の代替パーツはどれでしょう?」ってSNSで聞いても的確な回答が得られるはずもありません。無責任な情報なら得られるかも。結局はデータシートが読めないと、どんなコントローラが代替にマッチして、代替試験に値するのか判断もできません。
この例で言うと、「データシートが読める事」という技術レベルは落としたくないですね。データシートには、データアクセス幅が書いてあったり、アクセス速度が書いてあったり、DMAの条件が書いてあったり、、、ソフト屋、ハード屋のそれぞれの知識が必要ですよね。そうです、もう「ソフト屋」「ハード屋」という垣根を取り払った「組込屋」である必要があるんです。
さて、一方で、TCP/IPって細部まで知っている、開発できる必要あるでしょうか? もちろんそのスキルがあれば越したことはありません。が、RFCを理解してTCP/IPをバグなく動かすところまで勉強する労力は必要でしょうか?
逆に、そんなもの(TCP/IP)はもう枯れてるから、どこかに転がってるFreeや安い製品を組み込めば良いのでは?っと考える考え方もあるでしょう。本当にそれでよいでしょうか?
対極的な2つのスタンスを示しましたが、どちらも問題だと思います。
「組込屋」がフォーカスすべき技術は「本業」の部分です。「餅屋は餅屋」です。キャパが大きいエンジニアであれば守備範囲を広げていくことは良い事ですが、やはり限界があります。自分の本業を「餅屋」にするとした場合、それ以外の部分、今回の場合TCP/IPはどうしたらよいか?
ミドルウェア屋が言うのだから、眉唾モノではありますが、「実績のある【ソースコード】を手に入れる」という事だと思います。そして、【サポートが確実なメーカーを選ぶ】ことだと思います。更に【そのソースコードは改変権、所有権、二次配布権が(ライセンスとして)提供される事】が必須だと思います。
実績のあるソースコードがあり、サポートを受けながら中身を少しでも理解できる(可能性のある)契約条件を選ぶ事が、その後の(最初はパートナー会社のソースコードを購入するという形になりますが)自らの開発工数を「購入」という形でお金で解決することにより、実績に裏打ちされた「安心感」と、早期の開発成果の製品化を実現するのだと思います。ですから、ライセンスは「実績の使用権」を買ったので、その後、そのソースを自分のモノにしていく必要があります。動いているコードがあるので、後から追いつくことは可能ですよね?
そしてもし、そのメーカーが販売を止めてしまっても、改変権を持ってさえいれば、そのソースを何とか解析して自社の製品のサポートを続けること(バグ修正)は可能と思います。全くのブラックボックスで扱う様な、例えばライブラリで提供されるような形で製品化していたら、もう手が出せなくなるのです。なかなか安定的な製品を見つけ、見極めることは難しいですが、開発のパートナーとして実績のあるメーカーの選択をお勧めします。
「ソースコード」「技術サポート」(できれば、動きを追える技術力のあるサポート)、そして「使用権の確認」でしょうか。
あれ、、、、ミドルウェア屋の記事でした。(笑)
■今日の閑話
さて、なんでこんな話をしてきたか、、と言いますと、やはり「技術の空洞化」が進んできたと肌で感じるからなのです。若手のエンジニアに「基板」を渡すと、「動くソフト環境はどこにありますか?」と聞かれることがあります。「この基板で動いているソフトがどこかにあるはずだ」が基本なんですね。 では、そのソフトが無かったら、どうやって動かす?どうするの?っという答えを持っていない、見積もりすらできない、、という状況に陥っていると感じます。ですから、「動くソフトが乗っている基板を買う」という行動になってしまい、「自分で世の中にない基板を作ろう」なんて、思う事もないわけです。ん十年前からの「組込屋」としては、少し悲しい現実です。嘆いていても何も前進しないので、経験を積むこと、チャレンジしてみる事はとても大切です。自ら調べて苦労して施策したコードが動いた瞬間の感動をバネに、どんどん実績を積んでください。ただ、全方向を同時に埋めていくことは難しいですので、どこから空洞化した技術を埋めていくか?っと考えたときに、ミドルウェア屋の私からの助言としては、ミドルウェアを組み込んだ部分は「安心感」を持てる製品を選んで後回しにしても良いと思っています。既に代替が世にあるわけですから。
(本文中にも書きましたが)後から中身を見てみて、ここどう動いているの?っとサポート質問が来ることを楽しみに待っています。そんな中身の質問、実装の質問もウェルカムです。そんな皆様の隙間を埋められる安心感を与えられるミドルウェア屋でありたいと思っています。
Cente:
https://www.cente.jp/
お問合せはこちら:
https://www.cente.jp/otoiawase/
■次回
私たち「組込屋(エンジニア)」はどこへ行く?(その3)
https://qiita.com/Cente_mw/items/5646277edd1c912568ce