携帯端末の開発支援をしていると不思議に思うことがある。通信機メーカーあるいは電機メーカーに入って携帯の開発に従事したいと願って叶った結果の仕事に就いているはずの有望な若手が実際の開発に携われないのである。仮にS君という名前にしよう、彼は電機メーカーに入り携帯電話の開発に携わりサンディエゴのQuad社にもお客様トレーニングの一環として訪問された方である。英語も堪能であり、技術的なセンスも中々の有望な若手といえる。そうした彼らを中心として構成された開発チームを見るとピラミッドのよう全体に広がる次の階層のエンジニア達の殆どは制服の違う人たちなのである。彼が実際に詳細設計やコーディングまで手がけたソフトウェア開発モジュールは大きな特色のある通信機能であり、彼はその開発取り組みに燃えているという印象がサンディエゴで会ったときには感じられた。
そんな彼に日本での支援作業の中でお客様として付き合いあるときは深夜に及ぶ作業の中で技術者の先輩としての話なども心割って話したりするような機会にも恵まれた。今、彼は手がけた端末の通信性能担当ということになり主にデータ通信機能について取りまとめをしている。童顔に見える彼ではあるものの実際まだ28歳ということで入社して六年目という脂の乗っている時期ともいえる。六年目であればかなりのソフトウェア開発をこなして実際のドライバーレベルの設計から始まりおそらくシステムあるいはサブシステム開発の取りまとめまでを経験しているというのではないかと想像していた。しかし、実際に彼がソフトウェアのモジュール開発に携わったのは今回の機種の特殊通信サブシステムが初めてということだった。そして彼のはじめてのCプログラミングであり、またシステムプログラミングだったようだ。
ごく日本的なというと、語弊がありそうだが、おそらく技術的に難しく実証確認が必要な通信機能ということで彼に白羽の矢が立ったのだと理解している。そして取り組み性能チューニングや実証確認を通じて目鼻がついたところでお決まりの話であるところの「引継ぎ」が発生してマネージメントに戻されたのではないかと推測している次第なのだが果たしていかなものだったのか。確かに見せてもらったそのコードには、真摯な取り組みの格闘のあとが見て取れるし幾つかの部分にはコーディングスタイルなどが、統一されていなかったりするのもそうした状況から致しかたないことだろう。HLDに終始するのがメーカーの技術者であるにしても、モジュール開発の経験がある程度は必要なことは自明な事と思うのだが、なかなか急成長に立ち上がった部門などでは、実現できない点なのかもしれない。そこまでケアする余裕がないということなのだろうか。
第三世代携帯電話の多岐にわたる通信プロトコルの上にアプリケーションとしての工夫や競争をしているというのが、通信機メーカーの実情でもある。枯れた仕事としてのPDCの上には、I-MODEのアプリケーションが搭載されてきたもののビジネス用に使うという目的には制限が多すぎる。他のキャリアとの端末競争という面でいえば、カメラや動画といった部分に移っているので携帯電話開発という分野での技術者の仕事としてはアプリ屋が増えていくのもいたしかたないことだろう。通信アプリケーションとして利用するEmailやWebを端末に実装するという使い方もあるし、いままでのPCやISPの環境をベースにしてモデムとして使っていくという道もある。第三世代での高速パケットの使い方はピッチよりも速いコネクションということが謳い文句の一つでもある。破格な費用は置いておいてだが・・・。
開発費用を潤沢に掛けられるメーカーが幸せかどうかは、最近疑問に思えるようになってきた。活きた開発費用の使い方という見方をしてみると第三世代の携帯端末開発費用の効率も五倍程度の格差はあるように見える。自社技術の追求をしているという見方をすれば、その掛かる費用は活きるべき投資のはずなのだが、活きるという意味が続いていく開発の効率のなかで見えてくるのかどうかということに繋がってきてこそなのだと思う。広げた風呂敷の範囲で仕事をする限りは、一機種ごとの開発費用は実は変わらずいつも、同じだけ費用が掛かるような気がしてならないのだがいかがなものか。切羽詰ったギリギリのエッジを進んでいる会社では、二桁億の開発費用もままならないのが実情であり、そうしたなかでは制服の色は別にしても一丸となった開発体制を構築できているようにも見える。
S君のモジュールの話に戻ろう、彼の会社では中途採用をバシバシとしている訳ではなく社員育成にはOJTをこよなく追求させつつ強力な外部ソフトウェアハウスを抱え込んでいくという図式で仕事を進めていくさまには互いの仕事のプロとしての範囲を明確にしつつというようにも映る。さて厳しい中である意味、その機能についての一つの開発チームという編成を社内メンバーだけで構成したのは、その機能自体の持つ意味が会社としての一つのキーだと考えてのことだろう。アプリケーション開発という見方でいえば、他社での経験を買われて編成部隊として組み込まれていったソフトハウスで出来る仕事とは異なる部分だから効率の部分などもあってのことだろう。信号処理としての色が濃い機能実現を第三世代の通信機能の上に実装するという取り組みは通信キャリアからの提案ではあったものの実装実現したのは、この会社だけだった。
ある意味では、将来の開発とも言えるし、明確な差別化に繋がるという見方もある。多彩な通信機能のうち確実な通信機能という意味が問われるような事態が発生した場合には有用な場面があるのかもしれない。インターネットが保証しない世界であるので、携帯電話の通信インフラ自体がギャランティするような考えに立っても仕方が無いという意見もあることだろう。いずれにしても既に存してきたISPのインフラを活用できるのであれば、設備の有効活用という見方も出来るので立ち上がりである第三世代の機能として機能を補完するという目的でよいのではないかと私自身は思っている。昔は、この機能性能だけで通信メーカーのメールシステムが稼動していたこともあったのだから・・・。まあ個人という見方をすれば今でもある意味で十分な性能だといえる。
まあ会社の戦略という中で、技術的なチャレンジという意義がとれる開発に携われるのは技術者として楽しみなことであろう。とはいえ開発途上まで携わりあとは、更なる若手に開発を引き継ぎ通信性能全般を任されることになったS君の思いは無念ということだろう、実際ソースコードにもそうしたことが現れているようだ。S君の設計の思いがうまく伝わることなく任された印象のある後輩技術者とのやり取りではS君の設計思想が十二分には理解されているとは思えなかった。システム動作での不具合が残された機能改善の目的でコードレビューやらデバッグデータの取得などを願い出てみはするもののどうも痒いところをリモコンで掻くような感じであった。処理性能が試される中で不具合となっているのか、システム的にリソースをうまく使えなくて動作していないのか・・・。信号処理的なソフトウェア処理の勘所からいえば間に合いそうな感触なのだが・・・。
HLDに追われているメーカーの技術者達が、実務で設計開発を実装確認をしている制服の違う仲間たちとのチームワークで我々の開発コンサルティング能力をフルに活用できるのかどうかという事が一つのカギであるし、そうした効率を限りなくあげるのが私の仕事でもある。実装したい機能をどのようにコードに当てはめていくのかという果てしないコンサルティングのサイクルでもある。初めてのC開発を少し垣間見たS君ではあるが、HLDにあっても深さを増した次への仕事につながりそうな有望な技術者になりそうな感触ではある。ただ私としては、コードや処理時間やタスク設計などの匙加減に踏み込めるようなディープな経験を積むまではモジュール開発を離れずに実践させてあげてもらいたいものだと思うのだが勝手な思いにすぎない。
表面に見えて来る動作だけに追われて本質を見失ってしまうチェンジニアのような技術者にならずに深い洞察を持ちつづけて真の原因追求を進められるようなエンジニアを目指してもらいたいと思うのだ。我々があまり立ち入りすぎて問題解決をしてしまうのは、我々の意図するところではない。我々はお客様にもスキルアップをしていただき我々と同様なスタンスでの議論が出来るようになっていただけるようにと・・・少しは考えてもいるのだから。プライドだけで昼夜をいとわず、場所をいとわず国を越えてサポートに来ている誇り高き仲間達に対峙してほしいのは、やはり誇り高い意識をもつ技術者としてのお客様であると思っている。うまく解決した際に欲しいの感謝メールの一本をお客様のリーダーから我等のリーダーにタイムリーに送ってもらうことだけだ。