【「エンジニア生活」・技術人 Vol.15】“当たり前に動く”テレビ視聴ソフトを作る——アイ・オー・データ機器・加藤真透氏 | RBB TODAY

【「エンジニア生活」・技術人 Vol.15】“当たり前に動く”テレビ視聴ソフトを作る——アイ・オー・データ機器・加藤真透氏

IT・デジタル その他

アイ・オー・データ機器 開発本部エンターテインメント開発部デジタルホーム開発課の加藤真透氏
  • アイ・オー・データ機器 開発本部エンターテインメント開発部デジタルホーム開発課の加藤真透氏
  •  「“きちんと動くもの”を作れる人になりたい」。アイ・オー・データ機器の加藤真透氏の語る目標は一見当たり前のことに聞こえる。だが、当たり前に動くものを作るには、さまざまな能力が必要になるという。
  •  「“きちんと動くもの”を作れる人になりたい」。アイ・オー・データ機器の加藤真透氏の語る目標は一見当たり前のことに聞こえる。だが、当たり前に動くものを作るには、さまざまな能力が必要になるという。
 「“きちんと動くもの”を作れる人になりたいですね」。アイ・オー・データ機器の開発本部エンターテインメント開発部デジタルホーム開発課の加藤真透氏はそう語る。その横ではまさに氏が手がけたテレビ視聴・録画用ソフト「mAgicTV Digital」がデモ動作している。「もう動いているじゃないですか」と言いかけると、加藤氏がさえぎるように続けた。「ユーザーにとってきちんと動くものを作るというのはそんなに簡単じゃないんです」。
 
 「mAgic TV」はPC用のテレビ視聴ソフト。同社のテレビキャプチャーボードやワンセグチューナーなどに付属し、録画を始めとしたさまざまなテレビ用機能が備わっている。地上デジタル放送対応製品のリリースに合わせ、mAgic TVもデジタル放送対応の新バージョン・mAgicTV Digitalが登場。1080iや電子番組表(EPG)などデジタル放送に必須の機能はもちろん、キャプチャー製品の増設による最大8チャンネルの同時録画への対応など、PC用ソフトならではの機能も追加されている。
 
 加藤氏は同社に転職してすぐ、mAgic TVの担当になった。そしてその後、mAgic TV Digitalではデバイスの管理や番組予約を行う「mAgicマネージャ」の開発に携わることになる。「正直にいうと、前バージョンのソフトを見たとき『これなら俺が一から(ソフトを)作れば、(クオリティで)勝てる』と思っていたんです。なめていましたねえ」と振り返る。「それで、0から作り始めたんですが、実際に開発を始めたら、すぐに簡単にこれに勝つなんて絶対無理だと気づいて。『参りました!』という感じでした(笑)」。加藤氏が目の当たりにしたのはノウハウと経験の差だったという。
 
■経験がものをいう開発
 同社へ転職してくる前は、さまざまなソリューションのソフト開発を手がけていたという加藤氏。転職のきっかけはUSBオーディオや、小型スキャナ付名刺管理ソフトなどの製品に触れたことだという。「これからは、ソフトだけでは受けないんだなと思ったんです。ハードと一緒になったソフトでなければダメなんじゃないかと」。周辺機器メーカーとしてハードを数多く扱っており、おまけに加藤氏自身の地元企業でもあるアイ・オー・データ機器は、そんなときにピッタリの転職先候補だったというわけだ。
 
 だが、ハードに絡んだソフトの開発は、想像以上に勝手が違ったという。「たとえば、単純なソフトの開発なら、20パターンのテストをしたいと思ったら、仮想PCソフトで20台分のテストを一気に実行すればいい。クラッシュしたら、そのデータをみんなで共有すればみんなで一斉にデバッグもできる。でも、ハードウェアと一緒になっている場合は、20パターンのテストを一斉にするにはどうしても20台のPCが必要になる。どれだけ考えてマクロを組んでも、PCIバスにカードを指すには人間の手が必要です。さらに、1時間の録画テストをやるとなったら、どんなに短くても1時間かかってしまうわけです」。そのほか、クラッシュした場合も、実際のマシンを見てみないと原因は特定できない。そのマシンが海外にあれば、当たり前だが海外まで行って調べなければならない。

 「テストをするだけでも効率的で的確なプランニングをしなければいけない。クラッシュしたデータにしても、本当に現地まで行って調べるべきかどうかを的確に判断する必要がある。ハードウェア屋さんっていうのは、そういうノウハウや経験がすごく蓄積されているんです。そういう部分に触れると、ソフトしか触れていない自分はまだまだ“ぬるい”と思います」。加藤氏はそう指摘する。
 
 また、ソフト開発の面でも、経験やノウハウの差を痛感することがあったという。mAgic TVで「予約の追加と削除」機能を作り直していたときのことだ。加藤氏は独自のアルゴリズムを適用してプログラムを開発。従来バージョンよりかなり速く動作するようになったという。「それで、『よしよし、やった』と思っていたんですね。それからマルチチューナーという同時録画機能に対応するために、予約の重複がないかチェックする機能を付けていったんですが、これがうまく動かない。そこで、前のバージョンの開発担当者の方に相談に行ったら、過去のバージョンの技術をいろいろ教えてくれるんですね。そのアドバイスを受けて、『なるほど!』と作っていったんですが、『それなら最初から前のバージョンをベースに作ればよかった!』って気づいて(笑)」。加藤氏は、これを今回のmAgic TV Digitalの開発で一番あきれた出来事だと振り返る。「俺のプログラムは、ノウハウも知らずに、ただ速ければいいだろうという感じで作っていただけ。やっぱり長く続いているソフトには、それだけのノウハウが活かされているんですね」。
 
■直接行って直せないジレンマ
 変わったのは扱うものだけではない。ソリューションを納めていた前職との大きな違いは顧客だ。「ソリューションというのは特定の顧客がいます。その顧客に製品を納めて、その後何かトラブルがあっても、『すみません!』って謝って、相手のところへ行って直せばいい。でも、コンシューマ相手の場合はそうはいかない」。

 たとえば、「動かない」という声がユーザーからあげられても、1人1人のところへ行って直すというわけにはいかない。正しく動くように、汎用性のあるパッチなどを配付する必要がある。しかも、そうしたユーザーからの情報には、必要な動作環境の情報が足りていないことも多い。限られた情報から問題を切り分けて、原因を突き止め、修正しなければならないのだ。それも、重大な不具合であればあるだけ早急に対処する必要がある。「『この情報さえあればすぐにデバッグできるのに』ということもあります。直ってないバグがあると夜も眠れないですよ。申し訳ないと思う相手もたくさんいます。本当は僕が分裂して一斉に直しに行ければそれが一番いいんですけど、そうもいかないので……」。ユーザー数が桁違いに多いパッケージ製品は、個別ではなく、一斉にバグをフィックスしていくしかない。加藤氏は「そういう意味では、もしかしたらパッケージ製品の方が、どういうトラブルが起こるかを予想する能力が要求されるのかもしれない」と感じているという。

■“動くもの”を作るのに必要なものは?
 「ただ動くだけならプログラムを作るのは難しくはない」。加藤氏はそう言う。「単体のプログラムなら、難しいと思ってもどうにか作ることはできる。でも、たとえばmAgic TVのように大きな製品となると、それだけでは作れない」。
 
 プロジェクトが大きくなれば、当然自分1人だけでは作れない。違う行程を担当している人と協力しなければならない。言葉の通じない海外の人ともやりとりする場合も出てくる。さまざまな環境でのバグをフィックスするために、問題の切り分けや情報整理が必要になる。加藤氏がいう“きちんと動く”プログラムを世に出すためには、結局そういったさまざまな能力が必要になってくるのだ。「当たり前だけど、当たり前にいろいろなものを作っているメーカーやエンジニアというのはすごいですよね。仮に細かいバグがあっても、『バグはあるけど、ちゃんと使えるじゃん』って言われるとしたら、それだってすごいことですよ」。

 私たちの手に届く“当たり前に動く製品”の影には、膨大な“当たり前に動かない失敗作”がある。多くのエンジニアの経験やノウハウ、そして技術力が、製品が動く“当たり前”を支えているのだ。
《小林聖》

関連ニュース

特集

page top