クルマのプロが本気を出したソフトウェア開発。人生でまたとない機会を掴む
前職のIT企業では、フロントエンドエンジニアとして大手ポータルサイトの開発を担当していた私にとって、トヨタへの転職は異業種へのチャレンジでした。
大規模で複雑な開発案件では、工程を細分化して推進するスクラム開発という手法を取ることが一般的で、私も前職では5〜6人ほどのスクラムチームを持ち、テックリードやマネージメントの立場でチームを牽引する日々にやりがいを感じていました。
7年半という時間を過ごした会社でしたが、ハードウェアは持たず、ソフトウェア開発を主力としている会社だったため、GAFAのような大きなプラットフォームの上で動作するプロダクトをつくる過程では、制約の中でできないこともままあります。限られた条件でどのように進めるかという悩みは常にあり、次第に強いハードを持っている会社の中でソフトウェア開発をしてみたいという思いが強くなってきました。
トヨタの社員の方から「これからはソフトウェアに力を入れていく。その立ち上げを一緒に進めてほしい」という話をいただいたのはそんな折。トヨタが進めるソフトウェアファーストのクルマづくりの創成期で、ソフトウェア開発に関わる大きなプロジェクトが立ち上がろうとしているということを知りました。
クルマという強いハードウェアがある会社で、これまでにない大規模なプロジェクトの立ち上げに携わることができる──こんな機会は、人生の中であまりないのではないかと思い、世界規模のグローバルな仕事ができること、また私自身がクルマ好きということも後押しとなり、転職を決意しました。
入社後に配属されたコネクティッドカンパニーのコネクティッド先行開発部では、次世代車のコックピット(運転席周辺)のUX/UI開発に向き合う日々です。ここでは、メーターやナビゲーションなどに関する様々なソフトウェアの内製化に向けて、複数のスクラムチームが業務を推進しています。
前例を「つくる」楽しみ。スピードと本質の追求で大規模開発を着実に進める
私がテックリードを務めるスクラムチームでは、車両の設定やエアコンの設定、安全機能の設定などを司るフロントエンドの開発を担っています。
IT業界から自動車業界へ、異業種をまたぐ転職でしたが、前職で経験したスクラム開発は入社後も役立ちました。IT企業では一般的な仕事の進め方で、私にとっては馴染みのある手法ですが、今の環境ではこれからチャレンジする部分も大きいです。
スクラム方式で細かくゴールを設定し、確認しながら進捗させる方法は、スピード感をもちながら着実にプロジェクトを進めることができるため、大規模開発を伴うプロジェクトにこそ適していると思います。
また、社内に前例がないものをつくることが求められるプロジェクトでは、技術の面でも、仕事を進めるプロセスの面でも、常に試行錯誤が求められます。
それぞれの業務では、さまざまな要素をもとに仮説を立て、検証しながら前に進んでいるのですが、仮説を細かくつくり込みすぎると、あくまで机上での議論になるため、想定と異なる方向に進んだ時になかなか修正がしづらくなってしまうのです。そうならないために、まずは大きな絵を描いて、実際に進めてみて上手くいきそうだなと手応えがあれば、細かいことを決めていく。
そのような、段階を踏んだやり方をするように意識を持っているのも、スピード感が重要だったIT業界のやり方が身についているからこそなのかもしれません。
もちろん、前職の業界とは勝手が異なると感じることもあります。たとえば、スクラム開発では、設定したスプリントの期間内に業務が終えられないということが起こりえますが、以前は「思っていたよりもタスクを詰め過ぎていたのかもしれない」「次は減らしてみましょう」という対処法に近い対策を取りがちだったところ、トヨタでは、タスクが終わらなかった原因をより分解して考えます。
「この部分が停滞していたからではないか」「タスクの優先順位付けが良くなかったからではないか」となど細かく分析していくのです。
課題に対する考え方ひとつをとっても、トヨタでは、その課題の本質は何であるのかを、腰を据えて考えます。しっかりと振り返ることで、着実な次の一歩につなげていくトヨタのスタイルは、入社後に良い意味で感じたギャップであり、学びとなりました。
「自分」よりも「チーム」を意識。エンジニア以外の目線に立ってUXを磨く
「本質を見つめる」というトヨタの流儀に深く共感できたのは、私自身がテックリードとして大切にしている視点に共鳴したからでもあると思います。
たとえばコードは正しく動くように書くことが絶対条件ですが、私はただ動くだけで良しとせず、どのような意図でこのコードを使っているか、ということを他のエンジニアに伝えることも大切だと思っています。すべてに細かくコメントできなくても、重要だと思うところには、なぜこのコードを使っているかという理由をコメントとして残すことで、後で全体を振り返った時の理解度が全く違ってくると思うのです。
他の人が見ても意図を理解できるコードになっているか、という視点は、自分でコードを書く時も、チームのコードをレビューする時にも意識するようにしています。
また、一人のエンジニアとしての知識や技術力を伸ばす目標を持つことはもちろんですが、エンジニアの目線だけでプロジェクトに携わっていると、偏りが生じてしまうことも意識しなくてはなりません。
エンジニアの目線で実現可否を判断すると、どうしても「技術的にこれは難しいのでやめましょう」という方向に話が行ってしまう傾向があるため、デザイナーやプロジェクトオーナーなど、エンジニア以外の立場の意見を聞き、意図を汲み取りながら仕事を進めていくことを大事にしています。
「この程度で大丈夫かな」と、なんとなくの状態で進めるのではなく、ユーザーにとって使いやすく、最高の品質を届けたいという強い思いで取り組んでいます。
そのためにも、より良い成果を出すためにはチームとしてのアウトプットを最大化させることが不可欠だと思っていて、そこには強いこだわりを持っています。
複数のスクラムで大きな目的に向かって進むプロジェクトでは、自分の能力を高めるだけではなく、チームとしてベクトルを合わせていないと最終的に上手くいかない、そう強く感じたことが以前ありました。
前職で新しいサービスの立ち上げをしていた時、優秀なメンバーが集まっていたため、アウトプットはたくさん出てきたのですが、チームとしてまとまりきれていなかったことから、サービスとして機能させることに難しさを感じたことがありました。
チームワークの大切さを知っていても、それを実現するのは簡単なことではありません。現在の仕事でも、チームの全員が「機能を開発する」という大きな方向性については共通認識を持てていたのですが、「この区切りまでに何をどのようなクオリティで出せばいいか」という細かい認識が個々でバラバラだったと気づくことがありました。
今はチームが一丸となって目指せる中長期のロードマップをつくるべく、みんなで話し合う時間を多く持ち、試行錯誤を重ねながら最高のアウトプットを出すために力を合わせています。
世界にインパクトを与えられるのは、グローバルカンパニーならではの醍醐味
トヨタに入り、「ここなら大きな挑戦ができる」と入社前に抱いていた期待が、実際に試せていると実感する機会は多くあります。
日本だけでなく、グローバル展開でスケールの大きな仕事に関われるという点は入社の大きな決め手の一つでした。現在は北米のチームと一緒に開発をする毎日で、ルールや認識が日本と異なることで難しさを感じることもありますが、やりがいもひとしおです。国によって開発の進め方や思想の違いを感じることがあっても、お互いの違いを認めて少しずつ調整し、プロジェクトが形になるように進められていることに手応えを感じています。
認識の違いでいえば、私自身、トヨタに入社する前は、歴史の長い会社ゆえに古風な文化も残る風土があったりするのかと思っていましたが、実際はいい意味で期待を裏切られました。年次が浅いなどの背景は関係なく、入社後まもない私の話にも上司は真摯に耳を傾けてくれます。立場を問わずフラットに意見を聞き、それが正しいかどうかを公正に判断してくれるため、キャリア入社でも働きやすさを感じられると思います。
ソフトウェア・ファーストという大きなテーマに対し、国内外にいるエンジニアたちが一丸となって実現を目指す──世界にインパクトを与える仕事ができるというのは、トヨタのようなグローバルカンパニーならではの醍醐味です。
スマートフォンが誕生し、世の中が大きく変わったように、私たちがつくるソフトウェアを搭載したクルマが世に出た時に、人々の生活にどんな影響を与えられるか。私たちのクルマに乗る人たちに、うれしい驚きと幸せを届けるようなものづくりができたら、という思いで開発の仕事に向き合っています。