WirelessCarの革新的なコネクテッドカーサービスを支える技術、ツール、チームワーク

2024年7月23日

WirelessCar社の開発者としての仕事とは? 変化し続けるデジタル環境の中で、トップであり続けるには? この記事では、WirelessCar社の仕事を推進する技術、ツール、チームワークについての一部をご紹介します。当社が開発し、お客様のために運営している革新的なコネクテッドカーサービスと、創造性、好奇心、コミュニティへの参加を奨励する職場風土についてです。

WirelessCarにおける、責任を伴いつつも自由な仕事のあり方

大学で学位を取得した直後、私は研修生プログラム「Rising Stars」の一員としてWirelessCarに入社しました。新しい職場で最初に受けた印象の一つは、会社を特徴づける、自由度の高さでした。

たとえば、小さいことですが非常に重要なのが、仕事にどのOSを使うかということです。自分が最も使いやすいOSを選べれば、仕事がしやすくなり、楽しくもなります。私が使いたいツールを会社が提供してくれるので、生産性をできる限り高められるということでもあります。

さらに重要なことは、WirelessCarでは仕事のプロセス全体において自由度がとても高いということです。創造性と好奇心が大いにかき立てられれ、新しいソリューションに対して本当にオープンです。新しい、あるいは改良されたデザインパターンやサービスをAWSでテストしたいとか、コンセプトの実証を行いたいと誰かが言ったとしたら、その取り組みはほとんどの場合、受け入れてもらえます。

これはプログラミング言語、フレームワーク、ライブラリであっても変わりません。主に使用しているのはJavaですが、他の言語のほうが望ましいとか、より少ないコードで済む場合など、関数によってはPythonや他の言語で書かれることもあります。どのチームも学習意欲が旺盛で、製品ソリューションを開発するために、新しい方法を試しています。

a smiling woman in front of a computer screen

WirelessCarの働き方は、お客様へのビジネス提案をどのように改善するのでしょうか?

最初のアイデアが実現可能かどうかにかかわらず、1つのアイデアからさらに多くのアイデアが生み出されるということがよくあります。(新規でも既存でも) コネクテッドカーサービス を開発する際、私たちはあらゆる手を尽くします。メリットとデメリットが議論され、各チーム内でもチーム間でも厳密なテストが行われます。

熱意をもって新しいことに挑戦し、多様な視点から検証することで、デジタルサービスをより良く、より速く開発できるようになります。そうすることで、私たちは技術開発をリードし、競争力を高めることができるのです。そしてそれは、お客様にとっても同じなのです。

自動車業界を取り巻く環境は、特にデジタルの観点においては急速に変化し続けており、以前にも増して競争が激化しています。一企業として、また業界の一員として、私たちは創造性と好奇心を持ち続ける必要があります。そうすることで、OEMはその創造性と好奇心を市場での自社の優位性に活かせるようにできるのです。

WirelessCarの技術とツール

コネクテッドカーサービスの開発、維持、改善にどのような技術やツールを使っていると思われますか?この仕事のデジタル的な要点について、以下にまとめました。

● クラウドプロバイダーの機能やサービスを利用、または検証することで、新たな知見を得て、常に改善を続けることができます。サービスの構築、テスト、調整がスムーズかつ安全に行えます。特定ののマイクロサービスやパターンを異なるチーム間で共有できるため、新しく開発したり、再実装する必要がありません。主に使用しているのはAWS (Amazon Web Services)ですが、Microsoft Azureを使うこともあります。

● たとえばAWSでは、通常はAWS Lambdaでコードを実行し、SQSとSNSでサービスのさまざまな部分にメッセージを渡し、DynamoDBをデータ保存方法の一つとして優先的に使用しています。

● Javaは私たちの最も一般的なプログラミング言語ですが、他の言語 (Python、Golang、JavaScriptなど)も、取り組んでいるサービスやアプリケーションに応じて使用します。

● WirelessCarのDevOpsチームの多くでは、Cucumberをテストツールとして使用し、スケジュールされた統合テストを実行します。いくつかのサービスをコンテナで実行しているため、DockerとSpring Bootフレームワークなどを使用することがあります。ライブラリでは、Project Lombokがよく使われます。繰り返しの定型コードを最小限に抑えることができるからです。フレームワークとライブラリのどちらにも、同じ原則が当てはまります。一方が他方よりも望ましく、そのフレームワークまたはライブラリでできることをもっと詳しく学びたいのであれば、そちらを選ぶ傾向がある、ということです。

● Infrastructure as Code (IaC) を使ってClickOpsを最小限に抑え、CI/CDパイプラインを使って作業を円滑に進めています。これは、新規と既存のどちらでも、コネクテッドカーサービスの開発をさらに効率化するのに役立ちます。技術面で常に最先端を行くことは、25年前に創業して以来、私たちが企業としてあるべき姿の中核をなしています。

● WirelessCarのコネクテッドカーサービスはクラウドベースで、サーバーレスです。つまり、開発および導入がしやすく、お客様のニーズに合わせて迅速に拡張できるのです。

a man in front of two screens, coding

DevOpsチームがデジタルサービスの品質を保証 - コンセプトから運用まで

WirelessCarでは、サービス開発チームがサービスの運用も行います。この自己管理型のDevOpsチームが、当社のコネクテッドカーサービスの構築、テスト、展開、運用まで行っているのです。重要な点は、これらのサービスのライフサイクルを通じて、お客様であるOEMをサポートすることです。

新しいコネクテッドカーサービスが開発されると、各DevOpsチームは、基本的なアーキテクチャからサービスの継続的な運用性まで、プロジェクトのライフサイクル全体に対して責任を担うことになります。つまり、WirelessCarの開発者として、サーバーレス構造を一から構築し、所有することになるのです。そうすることで自分のサービスを徹底的に知ることができ、ひいてはお客様、ビジネスパートナー、同僚など、関係者全員の利益につながります。必要に応じて迅速に改善を行い、新しい機能を追加し、質問に答え、効率的なサポートを提供することができます。

その中心にあるのは、全DevOpsチームの共同作業です。常に新しい発見があり、そこから議論し学ぶことができます。ある方法をとることのメリットとデメリットは何か? ある作業プロセスから学んだことは? あるサービスをさらに直感的に、あるいは保守しやすくできないか? といったことなどです。私たちが開発するコネクテッドカーサービスには、絶え間ない改善と革新への意欲に加えて、オーナーシップが共有されているのです。

個人的なことですが、こうした働き方のおかげで、私は自分の仕事に大きな誇りを持てるようになりました。自分が携わった車種を見るたびに、「この車種のバックエンドをコーディングしたのは自分なんだ」と実感でき、とてもやりがいを感じます。

WirelessCarの開発者やソフトウェアエンジニアとして仕事をすることに関して質問があれば、下記の私のメールアドレスまでご連絡ください。当社の業務内容DevOps チーム会社の歴史については、WirelessCar インサイト - Blogの他の記事をご覧ください。ここでは、私たちの仕事のほぼすべての側面について取り上げています。AIと持続可能なモビリティ機械学習サイバーセキュリティの脅威インテリジェンスデジタルキーソリューションコールセンターサービスPIプランニングその他にも多数あります