入社6年目エンジニアのドライブレコーダー開発!
この記事はPioneer Advent Calendar 2022の6日目の記事です。
ドライブレコーダー開発業務の紹介を通して、入社6年目の中堅エンジニアが具体的にどういった仕事をしているかお伝えします。
自己紹介
2017年新卒入社で、現在6年目になるソフトエンジニアの石井です。
私は、入社から現在までずっと、通信型ドライブレコーダーの開発を担当させていただいています。具体的には、ソフトの要件定義 / 設計 / 実装 / テスト/ 解析などを行っており、現在は今年の春に発売されたNP1の録画関連機能の設計/実装を主に担当しております。
そこで今回は、そんなドライブレコーダー開発の様子をご紹介していこうと思います。
はじめましてドライブレコーダー
まず、ドライブレコーダーについて皆さんはどのようなイメージをお持ちでしょうか?
一般的にドライブレコーダーというと、運転中の録画をして何かあった際の証拠にする、それ以上でも以下でもない、といったイメージかなと思います。私も開発に入るまでは漠然とそんなイメージでした。
しかし、通信型ドライブレコーダー開発に携わって初めに思ったことは、
「機能が多い・・・!?」
でした。
録画機能はもちろん、事故時の通報機能、事故が起こりやすい地点の警告機能、画像認識による安全運転支援機能、クラウドとの連携機能など録画以外の機能も多く入っていました。
そこでは、現在位置の精度を上げるためのマップマッチング処理やLTE/Wi-Fi/Bluetoothといった通信処理、GPS/加速度のセンサー情報の処理などの技術も使われており、
「スマホみたい・・・・」
という印象を持ったことを覚えています。
開発の概要紹介
●そもそもソフト開発ってどんな感じで進んでいくの?
基本的には、以下の流れで進んでいきます。
①要求分析 / 要件定義:実現したい機能を明確にする
②設計/実装 :機能をモジュールなど小さい単位に分割していき、
その設計をもとにコーディングを行う
③テスト :作成したコードできちんと動くかどうかを確認する
私は、その中でも①要求分析/要件定義を行っていた期間が長いので、その作業を少し深堀りしようと思います。
●要求分析/要件定義って具体的に何するの?
簡単に言うと何を作りたいかを明確にして、細かい単位で実現したい事柄を定義していくことになります。
ドライブレコーダーを例にすると、
“録画機能を作りたい“という漠然とした内容から、録画する画質は1080pでフレームレートは27fpsに設定する、画質はXXとXXに設定できる、常時録画は端末が起動してから終了するまでを録画する、イベント録画は衝撃を検知したタイミングを起点に前7秒 / 後8秒 の合計15秒間を録画する、といった感じです。
こういった内容を以下のような文書を作成して定義していきます。
要件定義書
画面仕様書
画面遷移図
画面割込み仕様書
設定仕様書
エラーコード仕様書
etc.
●要件定義のポイントは?
要件定義書が一番メインの仕様書になりますが、私が担当した製品はだいたい1,000~2,000くらいの要件が記載されていました。要件を作る際は、製品として考えられる動作を網羅的に定義していくことが大事で、検討漏れがあると不具合や予期せぬ動作の原因につながります。
また、仕様書は製品をリリースして保守フェーズに入った後も見られる文書になるため、
1年後に同じ意味で理解できる文章になっているか、担当者が変わっても一意に理解できる記載になっているか、を意識して作成していくことが大事だと感じています。
(実際、保守の際に仕様書の記載が足りないせいで正解動作が分からず、かなり苦労したことがありました。。)
開発での苦労話
●事故発報機能の動作保証
機能の中には、事故が起きた際に自動でコールセンターに通報するものがありました。
必要に応じて救急車の手配まで行うこの機能は、万が一にも通報ができない場合があると、ドライバーの命に直結してしまうため、確実に通報ができるように仕様や設計を考え、動作保証する必要がありました。なかなかプレッシャーのかかる作業だった覚えがあります。。。汗
●さまざまな環境下での動作
車載器なのでさまざまな環境で動作するという点も難しいポイントです。
気温が高い場合やGPS・LTEの電波が受信できない場合の動作も保証する必要があり、検証環境を作ることが結構難しかったりします。
過去の開発中には、GPSの電波が弱い場所でのみ起こる問題があり、その動作確認のために山奥まで車を走らせたことも。。。汗
おまけ
●NP1開発秘話
先日、NP1のOTAで、コエを着せ替えできる機能が追加されました。
NP1の音声案内の声を変更できるという機能になりますが、なんと声優の悠木碧さんの声にも変更することができます。私もこの開発に関わっていたのですが、いつものように開発のためNP1端末を動かしていると、いきなり、「悠木碧で~~~~す!! いよいよNP1の声を変更できるサービスが開始されました~~!!」という元気な声が大音量で聞こえてきました。
その時は、クラウド側でメッセージ配信のテストをしていたらしく、職場も静かな雰囲気の中だったので、ふと笑ってしまいました。笑
関係部署が多いと、開発者でも “こんな機能あるんだ !? 笑” と驚かされる場面もあります。
最後に
今回は、ドライブレコーダー開発の様子をご紹介しました。
エンジニアの仕事についても雰囲気を感じていただけていたら嬉しいです。
Pioneerでは、一緒に働く仲間を募集しています。
若手でも活躍できる機会は多いので、少しでも興味を持った方がいらっしゃれば、ぜひ下記の採用ページをご覧ください。
Pioneer Advent Calendar 2022 の7日目は、人事企画部人財企画課 永田雅子さんの「突撃アンケート!~営業チーム~」です。
是非お楽しみに !