こんにちは!WAmazingで人事を担当している小島です。
前回、エンジニアインタビュー第一弾を配信致しましたが、「WAmazingさんの開発環境いいですね!」といった声を多くの方から頂き、大変嬉しく思っております!
そんな中で今回Vol.2として取り上げるのは、台湾中心に海外大好き!アプリ開発中心にマルチに活躍するエンジニアの長さんです!
長さんは純粋な日本人ですが、な、な、なんと!英語のみならず中国語も使いこなせる、希少なトリリンガルエンジニアです!(羨まし過ぎる...)
今回もCTO舘野がインタビュアーとして様々な角度から切り込み、WAmazingの開発環境が深く知れる内容となっております。
ぜひ、最後までご覧ください!!
(左:長 右:舘野)
ユーザー体験を考えるためであれば自ら農作業だってする
舘野:長さん、まずは、簡単に自己紹介からお願いします。
長:今年の7月からWAmazingにジョインしている長です。今はアプリ開発チームに所属していまして、基本的にReact Nativeを使って、AndroidとiOSのWAmazingアプリを開発しています。最近注力していることは英語対応なんですが、簡単に説明しますと、これまでアプリは、台湾、香港、中国といった中華圏に向けて中国語で配信をしていましたが、今後はグローバルに展開していくということで、その一環でアプリの英語対応を進めております。
舘野:なるほどー。そんな開発の中で、普段使用するプログラミング言語としては、何を使うことが多いですか?
長:React Nativeなので、基本的にはJavaScriptですね。Babel、Flowtypeを使って開発をしています。それ以外でいうと、React Nativeのライブラリで収まらないような機能を実装したい場合には、iOSだったらSwiftやObjective-Cを使ったり、AndroidだとJavaやKotlinを使ったりということもあります。あとは、アプリ側だけを対応すればいいということは実はそう多くはなくて、サーバーの方も対応しないとといけなかったりすることも頻繁にあるので、サーバーがRubyで書かれているのでRailsを使ったりとか、あとは、一部Scalaで書かれているサーバーもあるので、Scalaも使っていますね。
舘野:なるほど、多岐に渡っていますね。ちなみに今はどういうミッションは担っているのですか?
長:アプリ開発チームであれば、ちょうど取り組んでいることは前述のグローバル対応や、ReactNative周辺技術の改善を行なっていましたが、もう少し広い視野でいえば、今アプリ開発チームが注力していることとして、旅ナカのコンテンツを増やしていくということが挙げられます。訪日外国人向けに、より無料Wi-Fiを使いやすくする機能を実装したり、その他様々なコンテンツを実装していくことを念頭に置きつつ、UI/UXをどう作っていくかをチーム全体で考えながら取り組んでいきたいと思っています。それに付随して、現時点でより最適なアーキテクチャに変えておいた方がいいものについては、リファクタリングで済む程度の物であれば適宜手を加えているという感じですね。
舘野:なるほど、直近取り組んでいることは主に、グローバルに対応に紐づく様々な対応を行ったり、今後の開発をさらにやりやすくするためにフレームワーク周辺の改善を行ったり、中長期スパンでいえば、旅ナカという日本に旅行者が来た時に、アプリならではの体験でどれだけ便利にできるかという部分の機能などを今後は作りこんでいくということですね。
長:はい、そうですね。
舘野:ところで、WAmazingに入社する前はどういうことをしていたのですか?
長:前職は、ご縁あって農業系のスタートアップに最初のエンジニアとして入り、一応肩書きはCTOとして、黙々と一人で農業系のプラットフォームを開発していました。
舘野:なるほど、やっていた仕事はサーバーサイド、フロントサイド、もしくは両方など、どういう感じだったのですか?
長:Webサービスだったので、フロントはReactで書いていて、バックエンドはGo言語で書いていました。サービスローンチにあたっては、PHPのLaravelというRailsに近いようなフルスタックなフレームワークを使って一旦リリースして、その後で、細かい機能を作る時にはReactとGo言語を使って実装していました。あと、インフラ周りはAWSを使ったりとか、諸々大体やった感じでした。
舘野:サービスを作るにあたって、ユーザー体験からUIを考えて実装する部分も長さんが担当してたのですか?
長:当初は、投資家からの要件・納期に合わせるということにフォーカスしてサービスを作っていたのですが、進めていくうちにだんだんそれではまずいなと思い、そこからは、自ら社内にリーンな手法を紹介し、少しずつユーザーインタビューを行いつつ、カスタマージャーニーを作成してUXを考えていくというステップで、まずは最低限のものだけを実装していくやり方に変えました。
ユーザー体験を考えるという点では、エンジニアですが、農家さんの所に行って一緒に農作業をしたりもしましたね(笑)
舘野:普通に考えれば、エンジニアなのでコードに物事を落としていくということが主ですが、実際に農家さんも使うサービスだからこそ、そもそも農家さんがどういう考え方なのかとか、一般的な農家さんって日々どうやって暮らしているのかといったことを知るために、コンテキストをしっかり知るというところも自らしっかり体験されていたわけですね。
長:はい、そうですね。
舘野:いいですね。ちなみに、農業系のスタートアップの前は何をされていたのですか?
長:クラウドワークスという会社で、エンジニアではなく、営業・カスタマーサポートの業務を担当していましたが、これは自分にとってはいい経験でした。いわゆるC2C、ユーザーがたくさん集積するプラットフォームでカスタマーサポートなどをどうまわしていくのかということを学べるいい機会でした。でも最終的には、エンジニアをやりたいという気持ちに勝てなくて転職しました。
舘野:そうなんですね。その時から自分でコードは書けたんですか?
長:書けました。その前からいくつかの企業でエンジニアとしてインターンを経験していました。
舘野:なるほど。コードは書けたけれど、あえてエンジニアリング以外の仕事を体験してみたということですね。
長:はい、私は元々文系出身で、ビジネス中心に勉強をしていたのですが、エンジニアとしてインターンを経験したり、受託を手伝ったりしている中で、いつの間にかコード書くことが手段ではなく目的化してました。こういう実装をしたいとか、こういう技術を使いたいとかが先行してしまっていて、手段としてビジネスは存在するという考え方になってしまっていました。本来、自分自身の考えとしては、エンジニアリングは目的ではなく手段であるべきと思っているので、良くない状態でした。自らが作ったプロダクトが誰にも受け入れられないというのは悲しいですよね。ただ、ふとした時に手段が目的化してしまっていて、これではまずいと思ったので、一旦エンジニアリングを離れ、カスタマーサポートなどを経験し、もう一度気持ちを入れ直そうと思いました。
舘野:なるほど、ユーザーと触れて、ユーザーはどういうことに不満を持っているのか、どういう意見をくれるのかを学ぶ上でも、ユーザーサポートや営業という仕事をやってみて、それはそれで得られたものはあったけれど、やはりエンジニアリングをしっかりやっていきたいということで農業系スタートアップに飛び込み、ユーザー体験を設計する所から実装する所まで一人で一通り全部やってきていたということですね。
長:はい、そうですね。
経験から生まれるバランス感覚を大事にしながら攻めていく
舘野:そうした中で、縁あってWAmazingに入社したわけですが、そもそも転職のきっかけは何だったのですか?
長:もっと高速でPDCAをまわしていきたかったというのがあります。
前職についていえば、農業という性質上、PDCAがまわっていくのが遅かったということが悩ましかった点ですね。米などは代表例ですが、農作物は一年に一回しか実らないものが多い中で、これはつまり、検証できるタイミングが一年に一回しかないという難しい状況があります。そうした状況もあってか、前職でサービス開発に携わっていた際には、確かに前に進んでいる感じはあるものの、スピードが遅いなと感じていました。私自身は、日々改善を重ねながら、サービスが成長していく過程を見たいという思いが強かったのですが、検証機会が限られていて、自らのやり方が正しいのかどうか分からない中、一年とか二年とか長いスパンで頑張り続けるというのは、自分の成長にとって果たして良いのか、もどかしかったですね。
舘野:転職活動においては、WAmazing以外にどういう会社を見ていたのですか?
長:僕は台湾にゆかりがあるというか、台湾が凄く好きで、台湾に関係しているIT企業は特に見ていました。例えば、台湾大手のアプリ掲示板サービスをやっている会社だったり、台湾で流行っているライブ配信アプリの日本法人などですね。
舘野:ちなみに、なぜそこまで台湾に興味があるのですか?
長:こんな場で言うのもあれですが、実は、私が以前付き合っていた彼女が台湾人でして・・(笑)お付き合いするようになって台湾と関わりを持ち始めて、現地でインターンとして働きながら中国語も勉強していました。食事も美味しいですし、現地の人たちも素敵ですし、文化含めいい国だなと思っていました。ただ結局、その付き合っていた子とは別れてしまったんですけど・・(笑)その後は、現地で繋がっていた友人とは継続的に関わりを持ち続けていまして、何度か台湾で仕事を手伝ったこともあり、そうした経緯もあって、ビジネス面でも台湾に関しては少なからず知見がありましたので、少しでもそうした経験を今後活かせたらとは思っていました。
舘野:台湾には合計何ヶ月ぐらい滞在していたのですか?
長:7〜8ヶ月ぐらいですね。
舘野:当社含め、台湾に関係する会社はたくさんある中で、最終的にWAmazingに決めたポイントは何だったのですか?
長:一つは、経営陣含め経験を積んだメンバーが集まっており、会社として意思決定の精度が高そうだと思った点ですね。
あとは、自分のエンジニアとしてのスキルを伸ばす上でも、日本でインハウスでサービスを開発し、日本から海外に向けてサービスを展開できる点ですね。台湾に関係する会社の多くが、台湾に本社がありそこでサービスを作って、日本で展開するというケースが多かったので。私はアメリカにも留学経験があり、台湾に限らず海外全般に興味がある中で、WAmazingだとグローバル対応も進めている通り、海外に広くサービス提供できる点がいいですね。
WAmazingはエンジニアとしてのスキルを向上させたり、エンジニアスキルを持って会社に貢献したり海外に対して広くサービス展開できる、数少ない会社の一つだと思っています。
舘野:なるほど、WAmazingで実際に働いてみて感じる魅力ってどこですか?
長:一般的なスタートアップとは異なる、攻めの戦い方ができる点が魅力の一つかと思っています。私が知っているスタートアップの戦い方は、いわゆるリーン方式で、MVP(Minimum Viable Product)を作り、まずは小さくユーザーに使ってもらいそれを大きくしていくという感じでしたが、WAmazingの場合には、プラットフォームを開発して仕組みを作り、空港やコンテンツを提供してくれる国内の事業者など、営業も行いながら積極的に関係者を巻き込んでいき、その後でユーザーの細かいUXを考えるという戦い方をしています。そういう戦い方って大企業しかできないものだと私は思っていましたが、スタートアップでもできるんだということが大きな発見でした。
舘野:そうですね、普通は大体、ITベンチャーであればソフトウェアを中心にユーザ価値を構築し、その後PDCAをまわしながらどんどんユーザーを伸ばしていくというやり方が一般的ですよね。一方で、WAmazingの場合は、ビジネスモデルがB2B2Cということもあり、まずは日本の良質な観光コンテンツをどうユーザーに届けるかが重要になる中で、創業メンバー代表の加藤を中心にビジネスにおけるネットワークをしっかり持っているので、ユーザーに価値を届ける上でB2B側の力がある点は強いですよね。いいソフトウェアを作る以外の戦略も積極的に取り入れていることが、異なる戦い方ですね。
長:そうですね。他の魅力でいえば、働いているメンバーの多くが、協調性とスピード感の両方バランス良く持ちながら事業推進している点も良いなと思っています。一般的なスタートアップの場合、20代の若い人が多いイメージがありましたが、WAmazingの場合には第一線で経験を積んだメンバーが多く集まっていることもあり、みんな落ち着いていて、前のめりになりつつも、周りのチームメンバーとの協調性も大事にしている人が多いと思います。今のフェイズは足元の数字を伸ばさないといけないものの、それを目指すがあまり、内部の協調性を蔑ろにするようなメンバーは誰一人としていないですね。
舘野:確かにそうですね、WAmazingの場合、経験を積んだメンバーが多いという点が一つの強みになっているかもしれません。そうしたメンバーは過去様々な経験を積んできているので、みんなアクセルとブレーキのさじ加減を分かっているのだと思います。また、ビジネスモデル上、B2B側の観光コンテンツをいかに集めるかというビジネス視点と、それをどうユーザーに届けるかプロダクト視点の両方が大切なので、バランス感覚は求められるかと思っています。ただ、バランスが大事というと、ともすれば「みんなまとまりよくやっていきましょう」といった話になることもありますが、そういうことではないと考えています。例えば、エンジニアリングでいえば、知見のあるエンジニアであれば、フェイズとして開発スピードが求められる中において、技術負債が生じないように後々のことも想定しながら、スピードだけではなくコードのクオリティやテストにおける許容範囲など、それぞれのバランスを考えながら開発できると思っています。WAmazingにはそうしたエンジニアが多いので、どちらかのバランスに倒れるというより、最適な形にまとめてくれる人たちが多いとのかなと。
ロールモデルがたくさんいる中で、裁量を持ってチャレンジしながら成長できる環境
舘野:WAmazingの魅力として、開発環境についてはどうですか?
長:一つ目は、スタートアップならではかもしれませんが、エンジニアとして関われる領域が広いという点ですね。例えば私の場合でいうと、React Naitiveだけをやればいいということはまずなくて、必要に応じてRailsやScalaを使うことも多々あります。Scalaについては、今ちょうど社内でScalaに長けたメンバーが勉強会を開催しているので、そこに参加しながら日々学んでいます。WAmazingでは、SIM関連の制御などの機能が必要なサーバーについてはScalaを使って実装していますが、Scalaに長けたメンバーがいる中でも、経験の浅い私にも関わる機会を提供してもらえたり、自分のドメインはここだと決めずに、自分がやりたいことに希望すればトライできる、裁量の大きい環境だと思っています。
二つ目は、アプリ開発チームの場合は特にですが、仕様書を作成する習慣がある点は個人的にいいなと思いました。
仕様書の重要性については、例えば、新しいメンバーが入った際などにコード見れば分かるから見ておいてというのがよくあることかもしれませんが、ただそれだと、バグがどれかを判断することは難しく、そうした時に仕様書が必要になります。仕様書があるからこそチーム内でコンセンサスが取りやすくなりますし、また、チームで何をやっているのかを他のチームメンバーにも説明しやすくなるのではないかと思っています。
三つ目は、自分にとってロールモデルになり得るエンジニアが多い点も魅力ですね。例えば、私が所属するアプリ開発チームのマネージャーは、ネイティブアプリ開発だけではなく、ハードウェアにも精通しており、他にはネットワークについても知見をたくさん持っているため、非常に参考になりますね。また、Scalaについては目下勉強中なのですが、社内のScalaに長けているメンバーのコードは非常に見やすく、それを参考にしながら、自宅でこっそり写経とかもしています(笑)
舘野:なるほど。中には、深い自分の技術を掘っていく、この領域だけをやりたいと考える人もいます。ただ、ベンチャー初期においては広く何でもチャレンジする必要が生まれるため、良いプロダクトを作るために技術的な方法を含め、手段を広く覚えていきたいという長さんの志向にはフィットする環境かもしれませんね。
長:そうですね、主体性を持って突っ込んで改善をしていこうと思えば、その機会は自ら創り出していくことができますし、一つのサービスしかない会社も多く存在する中で、WAmazingにおいては色んなサービスがあり、レポジトリの数だけでもかなりありますので、意志さえあれば様々なことにチャレンジできる点は非常に良いと思います。
エンジニアの枠を超えていきたい
舘野:最後に、長さんが今後どういうエンジニアになりたいか、目指したいエンジニア像だったり、その実現のために今後どういうことに取り組んでいきたいかを教えてください!
長:私の考えとして、エンジニアのタイプを分類すると、技術を極めていきたいという人、技術をうまく使って良いプロダクトを作っていきたいというタイプの人の2タイプに分かれると思っていますが、私自身は後者を目指したいと思っています。もちろん、最低十分なエンジニアリングスキルは必要だとは思っていますが、WAmazingにはそれを伸ばす環境が十二分にあると思っているので、スキルは今後も伸ばしつつ、アプリ含めたWAmazingサービス全体のUXを考えながら、周囲を巻き込んでいきながらサービス開発に取り組んでいける、エンジニアの枠を超えた人でありたいと思っています。
舘野:話を聞く限りでは、将来的にはエンジニアとしてではなく「プロダクトマネージャー」としても活躍機会がありそうですね。エンジニアリングのバックグランドを持ち、開発のことなどをしっかり理解した上で、どういうプロダクトを作っていく正しいのかを考えていけるようになるというのが、長さんの目指している理想像なのかなと思います。これはエンジニアだからこそできる発想ですね。ぜひ、理想の姿になれるように今後も頑張ってください。
長:ありがとうございます。引き続き頑張ります!