見出し画像

自動車エンジニアからNissanConnectのITエンジニアへ

こんにちは!日産自動車の小林(達)です。
今回は、10年以上社内で自動車エンジニアをやってきた私が、
文化も技術も全く異なるITエンジニアへとチャレンジした時のお話をさせて頂こうと思います。

ITエンジニアになる前の経歴

2004年に日産自動車に新卒として入社し、生産管理部門で工場の生産ラインの生産性向上のライン改善をするIndustrial Engineerと呼ばれる仕事を約3年、その後、開発部門へ社内公募で異動し、自動車の電子電装システムのエンジニアを約15年しており、
そして、約2年前に、今のNissanConnectのBackendのエンジニアになりました。
さて、ここからは、自動車のエンジニアとして約18年過ごした私が肌で感じた中目黒オフィスの特徴について、
①中目黒オフィスで働かれている人たち、②開発環境、③中目黒オフィスの開発文化の3つに分けてお話ししたいと思います。
IT業界の方にしたら、「あたりまえだよ」と思われるかもしれませんし、自動車業界や他業種の方にしたら、「こんな感じの雰囲気なんだ」と感じ取って頂ければ幸いです。

中目黒オフィスで働く人たち

中目黒オフィスのエンジニアの8割以上は、中途採用者で構成されており、しかも、自動車業界以外で働いていた方も多いです。ゲームアプリや決済アプリを開発されていたり、ベンチャー企業で働いていたり、スマホ開発のプロジェクトマネージメントだったりとバックグラウンドは多岐に渡っています。
厚木の開発部門や横浜の工場で働いていた私からすると、オフィスの雰囲気も違いますし、フランクな格好で仕事されている方が多いので、全く別の会社で働いている感じがします。
特に、この中目黒オフィスの私たちの部署の特徴として、アプリ開発(スマホアプリ、サーバーサイドアプリ)は、基本的に全てこの部署の方が自らソースコードを書いて、プロダクトとしてリリースしている点です。
当然、プロダクトに対して、何か新しい機能を実装したい、性能を向上したいなどアプリへの要求があれば、
自らコードを書いて、実装するといったことを驚くようなスピード感で実現できる方々ばかりです。
また、中目黒オフィスで働くエンジニアは、自分達が仕事で関わるソフトウェア技術の最新のトレンドに対するアンテナ感度が高く、技術検証に着手するスピードが早い点も当時興味深いところでした。
日産の自動車開発では、開発ツールや設備が自動車業界特有のものも多く、また、比較的投資金額が高いため、導入したいツールや設備の技術検証の承認のプロセスに数ヶ月から1年以上かかる場合があります。このスピード感覚で仕事をしていた私からすると、数日、早ければ、気になったその時点で技術検証を開始する感覚は衝撃的でした。
(IT業界では当たり前なのかもしれませんが、、、)ソフトウェア開発を支える環境(フレームワークやプラットフォーム、流行りの言語など)のトレンドは移り変わりが激しいらしく、チームのメンバーとの会話でも、自然とこうした新しい技術に対する話題が出ることが多々あり、なるほどそういう技術を扱う業界なんだなと実感しました。
「1つの技術を身につけたら終わりではなく、絶えず新しい技術に関する知識をアップデートしながら、その時代に即した最適な技術を用いてプロダクトを自ら産み出す」ということが、ソフトウェアの内製化をしているこの中目黒オフィスの文化だと感じます。

開発環境

前談のように中目黒オフィスでは、ソフトウェアを内製化しているからこそ、ソフト開発を下支えしている環境や技術に直接自ら触れることで、自動車の車両開発との違いについて気付く点が多々あります。
ソフトウェアの開発では、SDK(Software Development Kit)と呼ばれるツールキットや、フレームワークと呼ばれるアプリ開発におけるソフトウェア構造の標準的な雛形を使うことで、効率的に必要な機能を開発したり、人による品質のばらつきが少ない高品質のソフト開発ができます。
また、開発プロセスにおいて発生する開発ソフトのバージョン管理や有識者によるレビューのプロセスでは、「GitHub」と呼ばれるソフト開発のプラットフォームが使われており、バージョン毎のソフトの特徴や他バージョンとの関連付けや、誰がいつどのような観点でレビューをしてOK/NGの判断をしたのか透明性が高い方法で運用されてます。複数のチームメンバーで1つの大規模アプリを開発する場合には、このプラットフォームは必須で、各担当のソフト間の整合性をとりながら、1つにまとめ上げていくことができます。
蛇足ですが、私は中目黒オフィスへ異動した当初、このGitHubの使い方に苦しみ発狂しておりました…
誰しも通る壁らしいです…

運用プロセスにおいても、「Jenkins」と呼ばれるサーバーが、ソフトウェア開発における一連のプロセス(ビルドやテスト、デプロイ(※))をバックグランドで自動化し、標準的な運用作業の自動化の支援をしてくれます。
※:デプロイ:中目黒オフィスに来て初めて知った用語で、開発したアプリケーションを、実際に動かすためのサーバー上に配置すること。

図1:うわさのGitHub
図2:GitHubの操作で失敗する度に備忘録として書き連ねていく日々のメモ

加えて、これらのアプリケーションは全てクラウド上で実装されており、各アプリが現在どのような状態(正常/異常、エラー状態やその種類など)なのか監視/通知する仕組みも充実しています。
こうした仕組みにより、例えば、バグ起因の問題だけではなく、障害につながる兆候(直接お客様へは影響ないワーニング発生件数の増加や、動作が安定しない傾向など)なども監視対象にいれることで、素早く検知することができ、開発関係者へスマホやPC上のコミュニケーションアプリ経由で通知がいき、素早く次のアクションへつなぐことが可能になります。
このように、車両開発側にもあると開発効率の向上や市場不具合の解決が早まるツールが他にも沢山あります。

中目黒オフィスの開発文化

中目黒オフィスでは、プロジェクト業務とは別に、新しいサービスの検討のためのPoC (Proof Of Concept)活動を積極的に進めている文化があります。
PoCを初めるきっかけも結構自由で、「単純に自分が面白そうだと思ったから」とか、「周りでこんなことやり始めたから興味あったら参加してみない?」のような感じではじめることができます。当然、予算が必要な規模の活動の場合には、上司と相談しながらになりますが、その場合においても、いくつものレビューのプロセスを経ないと活動すらさせてもらえないみたいなことはありません。
前にも話した通り、中目黒オフィスのメンバーは自らソースコードを書いて、プロダクトをすぐに生み出せてしまうエンジニアなので、全てがヒットするかはわからないけど、とりあえず面白そうなものは、すぐに作ってみて周りの反応見ることができるこのPoCの開発スタイルは中目黒オフィスの魅力でもあると思います。

もちろん、私もプロジェクト業務とは別にこのPoC活動の1つに現在取り組んでいます。
簡単に紹介すると、車両側とクラウドを繋ぎ新たな付加価値を既存サービスに与えたり、今までにない新たなサービスを創り出す取り組みを、最新のIT/Web技術を用いて実現しようとしています。
中目黒オフィスには、IT業界の出身の人だけではなく、私のように社内異動で来た自動車の開発エンジニア出身の方も入っており、定期的な勉強会やPoC活動を通して、自動車のシステムについて学ぶ機会が用意されており、実際に、自分でその技術に直接触れながら、技術を身につけることができます。

最後に

自動車業界とIT業界が融合し、自動車の技術もIT技術にも学ぶことが出来、それを活かすことができる「中目黒オフィス」の働き方に興味を持って頂けましたでしょうか?
もし、興味があるのでは話だけでも聞いてみたい!と思っていただけましたら、気軽にカジュアル面談のリクエストを私達に送って頂けるとありがたいです。