post-2231

ラッパーが無い電話アプリケーションを提供され、納期は3ヶ月遅れの6ヶ月に

職業:組込系システムエンジニア、プログラマー
困った依頼:IP電話試作機の開発 

新OSを実装したIP電話試作機開発依頼

ある通信機器メーカーから新OSを実装したIP電話試作機開発の依頼を受けました。試作機ということで、性能評価を行い結果をみながら進めるのが前提の依頼でした。

ですから、あまりにもハード的に問題があり性能が悪い場合は、途中で開発が中止になる場合もあることを先に伝えられました。

その上で、提示された依頼内容は次の通りです。
1.従来のIP電話のOSから新OSに乗せ換える。
2.新しくなったデバイスTCP/IPチップなどのドライバー開発
3. 電話アプリケーションの実装(アプリケーションはクライアントが提供)

会話はメールでしたいと言う変わり者の担当者

クライアントは社員300名規模の中堅通信機器メーカーです。担当者最初の印象は「暗い」といった感じでした。オタク系というよりは事務的に物事を運びたいタイプで、最初の打ち合わせの時、会話よりもメールのほうが良いと言っていたのが印象的に残っています。

プロジェクトにはクライアントであるメーカー側から2名。依頼側は、弊社から5名、弊社の関連会社から2名の計7名が参加。トータルでかかった期間は6ヶ月です。

担当者が、組込系のOSについての知識が乏しかったので、OSを乗せ換える際の手順や難易度を検討する打ち合わせで、なかなか理解してもらえず困りました。

パソコンのWindowsではどうなんだとか、常にWindowsを意識している思考回路だったので、かなり説明に苦労しました。

また担当者が会話はメールでしたいというタイプで口頭での会話を避ける傾向があったので、些細な相談レベルの会話でもメールや資料を作る必要があり、無駄な工数を使いました。

新OS載せ替えとドライバ変更も無事終了

それでも、新OSの載せ替えが予定通りのスケジュールで終わり、次にドライバー開発を手掛けました。

これは困ったというよりもクライアントの無知のおかげで大幅な工期短縮になったのですが、確かにTCP/IPチップが新しくなったのは間違いなかったのですが、ドライバーはほとんど変更する必要がなく、従来のドライバを少し変更しただけで終わってしまいました。クライアントとしてはお粗末の一言でした。

それから性能試験を始めました。2台のIP電話同士で長時間パケット送受信し、エラーの有無や、送受信のスピードを試験しました。結果は良好で先のステップ「電話アプリケーションの実装」に進むことができました。

電話アプリケーションにラッパーが存在していない事が発覚

そして、クライアントから電話アプリケーションが提供された時、驚きの事実が発覚しました。

アプリケーションは通常、ドライバやミドルウェアを呼び出す場合、ハードやOSの影響を受けないように、ラッパーと呼ばれる関数を介して呼び出します。

しかし、なんとクライアント側から提供されたシステムにはそのラッパーが存在していなかったのです。つまりドライバ、ミドルウェアといった階層のない(あいまいな)システムだったのです。

これにはかなり抗議しました。なぜなら、ハードへの依存が強いアプリケーションを、新しいハードに移植するのは、とても時間がかかる上、バグの原因にもなるからです。

このことをクライアントが知っていて言わなかったのか、知らずに依頼したのか、最後まで分かりませんでしたが、とにかくやるしかないということで、私たちはその発覚した日から連日会社に泊まり込みして、作業に当たりました。

しかし、工期は大幅に遅れ3ヶ月納期の予定が6ヶ月でやっと納品することができました。

このプロジェクトは最初の担当者との打ち合わせのときから、何かかみ合わない印象を受けていましたが、工期が2倍になってしまうほどのトラブル案件になるとは夢にも思いませんでした。

この経験以来、担当者の第一印象を気にするようになりました。