2013年12月6日金曜日

USBデバイスを単独実装してるペーペー開発者の戯言


某USBデバイス開発をスクラッチから担っているものです。
揺りかごから墓場まで、設計からサポートまで。
一貫して全部やらせてもらっております。大した能力もないのに。
つまづきながら覚えていくことは多かった。
# ちなみにまだ実装は 終 わ っ て い な い。絶賛炎上中。
今日は今までのおさらい。

========= 回想 =============

ある日、何やらUSBデバイスを急に作れという話が偉い人から降りてくる。
こんな感じの仕様で、こんなことを実現して欲しいと淡々と言われる。
開発の下っ端の自分はNoというチャンスはなかった。
決まってるから実装しろ、ただそれだけ。
コンセプトレベルからこうやったら売れるみたいな話まで提案できないし、
どう考えても魅力的ではないプランを、とにかく実装させられるだけ。
ものすごい違和感が、ざわざわと音を立てて湧き上がった。
って感じでしたが抑える。

その後、評価面談なるクソみたいな形式的なものに付き合わされた際、
どうしても問題提起したくてこの「天から舞い降りてくる素晴らしい全自動奴隷システム」について、
会社のヒエラルキーのなかでのいわゆる偉い人に言ってみた。
端的にいうと、「誰かが決めたことに文句言わずについてけ、ペーペーなんだから」
って返答がもらえた。
この人、この間までこのプロジェクトに反対していませんでしたっけー。
諦めがついた、この会社で偉くなってもこの程度なんだから。
偉くなる人はたぬき。
上に行くために必要なことをするだけの人。
ペーペーは考えるチャンスを奪われる。
能力が育たない。
結果、会社に買い叩かれる。
この違和感は忘れちゃいけないと思った。
一種の洗脳かと思った。
絶対に忘れない。

次の日、自分は考え方を変えた。
「これはビジネスじゃない、おべんきょうだ」
スクラッチからデバイス開発なんてなかなかできない。
ましてやいっぱい数が出るデバイスだ。
まぁいい、やってやろうじゃないか。
おべんきょうでお金貰えるなんてサイコーって気持ちで。
貴重な人生をこんな製品の実装に費やすのは少し残念ではあるが、
金無しスキル無し人間なので、これはいい意味での踏み台だと解釈。

意識が変わった、仕事が面白くなった。
USBにはプロトコルとかいうのがあるんですね。
こんなデバイスにはこんなプロトコルがいいよ!
こんな転送方式がいいよ!
みたいなのをこの本から学ぶ。



こんな感じの専門用語使えばベンダーさんと対等にお話できるのね!
って要領がわかったあとはこんな仕様で作ろっか!ってFW開発の会社におんぶにだっこ。
面白かったのは通信モデルの策定。
USBからこんなコマンド送ったらこう対応してね、みたいなのを取り決めるんです。
通信フロー図みたいなの書いて、パケットフォーマットも策定したり。
合意がとれた後はひたすら開発。

既存のソフトウェアスタックを流用するだけな感じだったけど、
ソフトウェアスタックの実装を見て、
あーよく出来てるなぁーって納得しながら作業するのは楽しかった。
一昔書いた

Callback関数を知らん人がまず理解すべきことのまとめ。


にあるような知識がこの時も役に立った。
結局USBデバイスでもイベントドリブンなソフトウェアスタックの実装が求められるんすわ。

眠くなったのできょうはここまで!




つづく。

0 件のコメント:

コメントを投稿