20歳台の10年という時間は、長いようで短い。
30歳になった今の視点から、その時間をまとめてみようと思う。
仕事という観点から見ると、10年という時間は大きく2つに分けることができる。
仕事に追われていた4年と、仕事を楽しむようになった6年だ。
システムエンジニア(兼プログラマ)であることは間違いないのだが、一般的に認知されている仕事の内容、例えばアプリケーション開発とはまったく縁が無く、むしろ回路図や測定器とにらめっこしているようなハードウェアエンジニアリングを担当していたり、プラットフォームの基礎的な解析、メモリやLCD、音声ICなどの各種デバイスのドライバ作成と動作検証をやっていたりする。ファームウェア系ソフトウェアエンジニアとしては異質な感じである。
(かといって理系な人間ではない。数学や物理は苦手である...。)
諸事情により美大進学を諦めて今の仕事を始めた最初の頃は、常に何かに終われていた。
なんせ1プロジェクトに関わる開発人数が少ないので、素人同然の自分も戦力として数えなければならなかった事情もある。
当然、教育なんてそんな悠長なことをしてもらえる暇はなく、上司が書いたソースコードとデバイスの仕様書から、いやがおうでも覚えるしかなかった。「技術を覚える」というよりは「技術を盗んで消化する」という表現が一番似合うかもしれない。
そうしてもがいた4年。この期間はPHSの実証実験〜商品化までの期間に相当する。
当時の開発体制というのは、今の大規模開発からみると牧歌的なものである。その時のプロジェクトのソフト開発は4人から5人。これで親機と子機の開発を行っていたのだ。分業制が進んだ今の開発現場から見ると信じられないが、初期の通信系ファームウェアはみんなこんな感じだった。
プロジェクトの人数が少ないということは、担当個所の技術的な密度は極めて高いことになる。
自分の例で言えば、μITRONベースOSのチューニング、物理レイヤから通信プロトコルレイヤ、そしてMMIチップとの通信制御を担当していた。つまりほぼ一人で通信系ファームウェアを開発していたことになる。
しかも、回路図をみながらロジックアナライザやオシロスコープによる動作確認が必須だった。
クロックに同期しながら、Z80ベースのカスタムICおよびRFやMODEMの動作をデバッグしていたのだ。
こんな感じで最初の約4年間は、仕事と重圧に追われていた。精神的に追い込まれることもしばしばあり、今思えば冷や汗ものの状態だったこともある。
けれど基礎的な技術はすべてこの4年間で身についたことになる。この年齢でこれだけのことを経験しているシステムエンジニアはそんなにいないだろう。
この4年間のことを思えば、その後の6年間は余波みたいなものだった。無線プロトコル制御の開発業務から、他社から購入した無線通信プラットフォームの解析と動作確認および新規デバイスドライバの組込中心の業務が中心になったからだ。
最初の4年間に比べると、あまり特筆すべきことはないように感じる。
...無我夢中で思考錯誤していると、目の前に広がっていた靄が晴れてきて意識が広がり、その中に開発対象のモノがあるように感じる瞬間がある。その瞬間を迎えると、今まで理解できなかったことがわかるようになってくる。
ブレイクスルーの快感を味わうことが意欲的なものつくりにつながると思っている今日この頃である。
(text at 2003/12/01)