トヨタコネクティッド株式会社(以下、TCJP)では、米国テキサスに拠点を置くTOYOTA Connected North America, Inc.(以下、TCNA)と協業し、次世代車載用ソフトウェアの開発を行っています。「グローバル・ワンチーム」で挑む次世代のクルマの開発。仕事のやりがいや成長機会、日米の連携について、TCNAでマネージャー・フロントエンド・エンジニアを務めるAndrew Wellsに聞きました。
顧客にすばらしい「体験」を届けるために、ゲーム開発からコネクティッド・カーの世界へ
——TCNAに入社するまでの経歴を教えてください。
もともとは投資銀行で働きたくて、大学で経済学を専攻していたのですが、2010年に初めてiPhoneを購入してその魅力に取り憑かれたんです。自分でもiOSのアプリを作りたいと思うようになったのですが、プログラミングの方法も、開発の仕方もわかりませんでした。そこで本を買って、独学でプログラミングを学び始めました。
しばらく独学で勉強をしているうちに、インディーズのゲーム開発会社に就職することができました。iPhoneやiPadなどモバイル向けのゲームを開発する、とても小さな会社です。
——ゲーム開発会社で働くことで、どんな学びを得ましたか?
私にとってゲーム開発は非常に重要な仕事でした。ユーザー体験に焦点を当てて、お客様が楽しい体験をしているかどうかを確認する。そこに多くの時間を費やす必要があったからです。
よいユーザー体験ができないゲームは、誰もプレイしたいとは思わないでしょう。これは、フロントエンド・エンジニアとして学ぶべき、とても重要なポイントでした。
この会社ではゲーム制作費を得るために、クライアントワークも行っていました。たとえば、パイロットが勤務時間を記録するためのiPad向けのアプリケーションの制作などです。こうしたクライアントワークを通して、標準的なアプリの開発方法を学ぶことができました。
——AndrewさんがTCNAに参画したきっかけは何ですか?
ゲーム開発会社で仕事をしたあと、Vinli , Inc.というコネクティッド・カーのスタートアップで働いていました。Vinliでは車に接続してスマートカーにするための機器の開発に取り組んでいました。エンジンに機器をつないでWi-Fiやインターネットに接続して、すべての情報をクラウドやインターネットサービスに送るというものです。
Vinliに就職して数年経った頃、私たちの活動に目を留めたTCNAが、私たちを採用したいと誘ってくれました。私たちとトヨタのコネクティッド・カーの理念は、車内でのテクノロジーの体験をよりよいものにしたいという点で一致していたんです。
トヨタグループが持つリソースとアセットを活用しながらコネクティッド・カーの研究を続けることで、自分たちの製品をより多くの人の手に届けることができる。これは非常に理想的だと思いましたね。
TCNAはトヨタ自動車傘下にあるため、影響力が大きいのも魅力の1つです。新しい技術を駆使する機会を与えてくれる場所であり、人々の生活をよりよくすることができる。これがTCNAで働くことの醍醐味だと思っています。
アジャイル開発で行う次世代車載用ソフトウェアのプロジェクト
——現在どのようなプロジェクトに携わっていますか?
現在は、車の操作用画面やメーターにかかわる次世代車載用ソフトウェアのプロジェクトに取り組んでいます。地図や音楽を操作するアプリや、速度を表示するディスプレイなどを開発していますね。
——プロジェクトにはどのような立場で臨んでいるのでしょうか。
私はマネージャーとしていくつかの責任を負っていますが、トヨタコネクティッドではマネージャーも手を動かすものだという哲学があります。ただチームを率いるだけでなく、機能の設計と開発、画面の見え方、ユーザーがボタンをクリックしたときのアクションなど、さまざまなことを考え、実際にコードを書くこともあります。
ほかに、別のチームが行っている日々のコーディングやデザインの作業にも深く関わっています。
たとえば、音楽再生機能チームのプロダクトオーナーが「アプリケーションに新しい音楽機能を追加したい」と言ったとしましょう。私たちはプロダクトオーナーから要件をヒアリングして、そのためには何が必要なのか、ユーザーフロー、ユーザージャーニーを確認します。
そして、デザイナーと一緒にイメージを膨らませて、「これは技術的に実現可能かどうか」「こうすればうまくいくのではないか」といったことを話し合います。最終的なデザインができたら、FigmaやSketchといったツールを使って、デザインをアプリケーションに落とし込んでいく、といったことをしています。
——要件定義、設計、実装などの各フェーズで、どのような人が関わり、どのような意思決定をし、どのようにプロセスを進めていくのでしょうか。
私達はアジャイル・プロセスを採用しています。最初にプロダクトオーナーがお客様とのやり取りからユースケースを考え、製品に追加する新しい機能を決めます。
ユーザーストーリーができたら、設計フェーズに入ります。デザイナーが、製品がどんなふうに見えるのか、グラフィックやプロトタイプのレイアウトをします。
私はその段階で、デザイナーが考えていることが正しいか、技術的に実現可能かどうかを確認してフィードバックを行います。デザイン案に合意したら、それをもとにスプリントプロセスをスタートします。
——仕事の中では上司や他のステークホルダーから承認を得る必要があるのでしょうか?
一般的にアジャイルのチームは、プロダクトオーナーがやるべきことを定義し、それをどうやるかチームで考えるという形を取ります。ですから、本来は作業が始まれば承認の必要はありません。
私たちが重視しているのは、アジャイルでいう「反復」です。設計と開発の両方を迅速に進めたいと考えているんです。
通常、プロダクトオーナーがアイデアを持っていて、設計と開発の1つのフェーズを素早く行い、フィードバックを得ます。前もってドキュメントにするのではなく、まず、うまくいくかどうかを試す。試してみてうまくいかない場合は、なぜなのか、どこを修正すればよいのかを考えます。
意見の相違は立ち止まって考えるよい機会。オープンコミュニケーションでつながるグローバル・ワンチーム
——TCJPとはどのように連携していますか?
私たちは「グローバル・ワンチーム」として、お互いが緊密に連携して一緒に仕事をします。
ふだんはメッセージングツールSlackを使ったり、同時接続のミーティングを行ったりして、常に連絡を取り合っています。グローバルチームとして機能するためにはどんなコミュニケーションを取るべきか、いつ、どんなステップを踏むべきか、プロセスを改善するための努力を続けていますね。
同じコードベースで作業してレビューし合うこともあれば、プロトタイピングの最終段階でアプリケーションやサービスの特定部分をどう構築するか、長時間かけて議論することもあります。
たとえば、私たちが開発したLoomというデザイン言語への取り組み。Loomとはフォントやボタンの形、リストの形など、アプリケーションの基本的な構成要素を説明するものです。この数ヶ月間TCJPとTCNAのメンバーは、これらのデザインに連携して取り組んできました。
日米の開発者は同じバックログから作業を進めていて、あるチームが1つのボタンを担当し、別のチームが別のパーツを担当しています。このように、同じコードで一緒に仕事をしているのは意味のあることだと思います。
グローバルな機能については日米が一緒に取り組んでいますが、プロジェクトの大きなパーツとして日本固有のものがあれば、日本文化や日本のユーザーの期待を理解しているTCJPが、アメリカ文化にかかわる部分はTCNAが担当します。
——TCJPとTCNAの違いについてはどのように感じていますか?
TCNAのデザインや開発の多くは、スピード感のあるスタートアップの世界から来ています。TCNAが迅速に行動したいと考える一方で、TCJPはプロセスや計画に集中したいと考える。プロジェクトがスタートしたばかりの頃はその点で少し意見の相違がありましたが、最終的にはバランスが取れてとてもうまくいっていると思います。
ゆっくりとしたペースでプロセスに取り組んでいくことで、ただものを作るというだけでなく、チームとしてどうコミュニケーションを取り協力していくか明確なイメージを持つことができ、お互いの理解を深めることができましたね。
私は違いをネガティブなことだとは思っていません。お互い多くを学べましたし、TCJPやこのプロジェクトで一緒に仕事をしたほかのメンバーは素晴らしい人たちばかりでした。本当に親切で、勤勉で、熱心で、情熱的で……。ですから、全体的にとてもポジティブに受け取っています。
——お互いの違いを受け入れるためにどんな努力をしましたか?
オープンコミュニケーションを推進しています。何か問題が見えたら、それを報告して、一度止まって話し合おうというものです。
私がトヨタの「カイゼン」で気に入っているところは、どうすればものごとをよりよくできるか、考える機会を与えてくれるところです。
物事の進め方について意見の相違は、多くの場合コミュニケーションミスや計画性の欠如、仮定の違いなどに起因しています。意見の相違が明らかになったときは、立ち止まって話し合うよい機会なのです。
優秀なメンバー、新しい技術に触れる機会。成長のチャンスは無限大
——現在の仕事で最もやりがいのあることは何ですか?
間違いなく「人」ですね。トヨタコネクティッドのエンジニアはとても優秀です。自分よりも知識が豊富な人たちと一緒に仕事ができて、さまざまなプロジェクトに携わることで新しいことを学べる。これはとても特別なことです。
トヨタコネクティッドの開発者は、幅広い知見を持ちながら特定の分野を極める「Tシェイプ」と呼ばれる考え方を気に入っています。メンバーの多くが様々なタイプの開発を経験していて、ある人はユーザーエクスペリエンスについて、別の人はコンピュータ上で低レベルのシステムをどのように動作させるかについて、より深い知見を持っています。
最先端の技術を用いたプロジェクトに携わることができるのもおもしろいですね。単にアプリケーションを作るだけでなく、世界中のすべてのクルマから得られるデータを使って、どうやって人々の生活を豊かにするようなものを作るか。とてもクールで、やりがいのある仕事です。
——このプロジェクトに携わることで、キャリア形成にどのような機会を与えてくれますか?
現在取り組んでいる次世代ソフトウェアのプロジェクトは非常に規模が大きいので、これまでに使ったことのない技術を学べるなどさまざまなチャンスがあります。
今回のプロジェクトでは、モバイル開発ツールやフレームワークとして使われるFlutterを、通常とは異なる方法で使っています。Flutterの仕組みや自動車の組み込み型システムの連携など、新しい分野を学んでいますが、技術的にも興味深い課題があっておもしろいですね。
——このプロジェクトのビジョンは何ですか?
クルマの体験は、今後10年で大きく変わろうとしています。最近では自律走行車やコネクティッド・カーも増えています。私たちは新しいユニークな体験を生み出せる転換期に立っていると思っています。
先ほども述べたように、私たちはアジャイル・プロセスで製造に取り組んでいます。反復し、改良を続けていくことで、クルマの体験はいまよりもよくなっていくでしょう。今後もお客様からの反応やフィードバックを確実に得られるようにしていきたいと思っています。
——トヨタコネクティッドに新たにフロントエンド・エンジニアが入社してきた場合、どのような成長やキャリアを積むことができると思いますか?
トヨタコネクティッドではクルマという非常に需要が高い技術製品について学ぶ機会がありますし、大きな規模で作業をすることになります。そうした経験を積みたい人にとっては最適な場所ですね。
開発者としては、フロントエンドアプリケーション、バックエンドアプリケーション、設計、機能要求、プロダクトオーナーとの共同作業など、さまざまな仕事をすることができます。製品を作るすべての段階で、自分が興味のあることは何でもできますね。
優秀なエンジニアが集まっているので、そうしたメンバーから学ぶ機会もあります。成長するチャンスは無限にあるでしょう。
人々の生活に幸せをもたらす体験を一緒に作っていきたい
—— これから新しく入社するエンジニアと、どのような文化やスタンスで仕事をしたいと思いますか?
トヨタコネクティッドはアジャイル文化を持っています。とてもフラットで、あまりレイヤーがないのが特徴です。若さであったり階級の違いであったりで意見やアイデアをないがしろにしませんし、話し合いの際には誰もが発言できるようにしています。
ほかにも、よりよい開発者、よりよい人間になるために、自己学習などの努力をすることを重視しています。会社はそれを支援してくれていて、カンファレンスに参加するための奨学金であったり、プログラミングに関する書籍の費用だったりを負担してくれます。学習したい人にとって、とてもいい環境ですね。
——これから、どんな人と一緒に働きたいですか?
意欲があって自己学習欲が高く、人々の生活に幸せをもたらす体験を作ることに情熱を持った人ですね。
ソフトウェア開発の多くの分野では必ずしもユーザーのことを考える必要はありませんが、フロントエンドのUX/UIはそうではありません。ほかのメンバーと協力して、何かすばらしいもの、自分1人では成し遂げられないようなものを作りたいと思っている人が採用候補になるのではないでしょうか。
——今後、TCNAとTCJPはどのような仕事を一緒にすることになると思いますか?
私たちはこれからもずっと協業していくでしょう。「自動車体験」は、すべてのチームが一丸となって取り組むグローバルなプロジェクトだからです。
これまでのTCJPとのプロジェクトは、すべて単発のものでした。数ヶ月、あるいは1年ほど協業して、それが終わったらまた別のプロジェクトに戻っていく。
でも、これからはずっと協業していくことになるでしょう。すでにお互いを理解しているので、新しいプロジェクトを簡単に始められるようになりました。今後のコラボレーションに大いに期待しています。