グローバルで勝てるプロダクトを作るグローバルなエンジニアリング組織

Autify, Inc.

2021年10月6日、Autifyは約11億円のシリーズAでの資金調達Autify for Mobileの正式リリースを発表いたしました。 それに伴い、Autifyで働くそれぞれのチームが日頃どのような業務をしており、どのような “Aim High” をしているのかをご紹介する「みんなの”Aim High”」を連載形式でお届けします。 今回はAutifyのエンジニアリングチームの “Aim High” を、CTOの松浦がご紹介致します。是非ご覧ください。

“Aim High” とは? わたしたちはコーポレートバリューとして

  • Solve burning needs
  • Aim high, stay grounded
  • Ownership & collaboration

を掲げています。その中でのキーワードのひとつ、“Aim High”をテーマに今後Autifyがどのような飛躍を目指しているのかをご紹介します。

こんにちは、AutifyでCTOをしております松浦(@dblmkt)と申します。当初はいちエンジニアとして入社しましたが、その後CTOとして徐々にエンジニア採用やエンジニアリング組織作りに役割をシフトして今日に至ります。

私は2019年9月に、1人目のバックエンドエンジニアとしてAutifyのテスト実行を担うインフラやバックエンド部分の改善を行うべく入社しました。以来エンジニアの数は増え続け、現在エンジニアリングチームはデザイナーを含み13名になりました。日本を本拠地にしつつもグローバル展開を現実のものにしようとしているスタートアップとして、エンジニアリングチームの半数が非日本語話者であることや、オフィスを持たないフルリモートワークであることなど、私たちのチームにはいくつか特徴的なところがあります。この記事では、それらを交えながら私たちAutifyエンジニアリングチームについて紹介したいと思います。

Autifyのエンジニアリングチーム

チーム構成

Autifyでは、プロダクトの立ち上げ当初、エンジニアが少なかった頃には昨今では当たり前とも言えるフロントエンドはSPA、バックエンドはAPIの提供に徹するというモダンな構成を捨ててRailsのモノリシックアプリケーションに全振りするという決断をしました。このようなシステム構成だと、フロントエンドエンジニアはフロントエンドだけでなくバックエンドの知識も持つことで、フロントエンドが使うAPIやバックエンドロジックを自分で開発すると開発スピードを速めることができます。したがってAutify for Web立ち上げからしばらくは、フロントエンドエンジニアとバックエンドエンジニアの境目は曖昧でした。

しかし、Autify for Webはローンチから2年を経過し、アプリケーションが複雑になるとともにエンジニアの数も増えてきています。そのため、最近ではAutify for Webチームではフロントエンドエンジニアとバックエンドエンジニアの分業が少しずつ進んでいます。現在は、フロントエンドエンジニア4名、バックエンドエンジニア5名、機械学習エンジニア1名、テクニカルサポートエンジニア2名、デザイナー1名で仕事をしています。2021年10月に正式ローンチしたAutify for Mobileは、このうち2名が専属で開発を行っています。

多様なメンバー、公用語は英語

13名のエンジニアのうち、日本語を母語とするメンバーは半分以下の6名、その他のメンバー7名は様々な言語を母語に持っています。共通言語は英語で、日常的な会話は英語で行っています。日本に本拠を置きながら英語を公用語にするのは不自然な気もしますが、なぜこのようなチーム構成なのでしょうか。

Autifyは開発当初から、日本のみで使われるのではなく世界中で使ってもらうことを念頭に、サービスの多言語化をしたりタイムゾーンの考慮を盛り込んだりしてきました。これは、テストに関する悩みは国や言語によらず、ソフトウェア開発を行う人の共通の悩みであり、その悩みを解決するプロダクトを日本だけで展開するのはおかしいのではとの考え方が基本にあります。とすると、世界中の人に使っていただくプロダクトを日本人だけで日本語で作るのは、逆に不自然とも言えるのではないでしょうか。様々な背景を持った人たちが世界中で広く使われる言語で開発したプロダクトだからこそ、グローバル市場で受け入れられるはずです。

会社紹介資料から、ダイバーシティ&インクルージョンのページ

また、英語を共通言語として据えると、採用の対象となるエンジニアの数が一挙に増えます。これまで、「日本国内に居住している、あるいは日本に移住することを前提としているエンジニア」という、現在住んでいる場所を前提としない採用活動を行ってきましたが、これにより日本人に限らず高いスキルを持った優秀なエンジニアたちを採用できています。

ちなみに日本人の採用をしていなかったり避けているわけではありません。技術的には高いスキルをお持ちでも英語が不安という方もいらっしゃるでしょう。しかし実際のところ入社してから英語を勉強していくという決意があれば、問題ありません。会社から英語学習のサポートが受けられる仕組みもあり、入社時にはコミュニケーションが難しい場面があった場合でも、半年ほど経った頃には多くの方がスムーズに英語で会話できるようになっています。なお、実は英語が母語のメンバーは2名しかいない上に、彼らを含めた非日本語話者はみんな日本に興味を持ち日本語を勉強しようとしています。そのためか、言語的な不足をみんなで補おうという姿勢がチームにはあります。例えば、うまく表現できない場合は文字で書いてSlackで投稿するとか、それってこういうこと?と誰かが代弁しようとしてくれるという場面があります。そんなところを見ると、英語を使って仕事の幅を広げよう思う人にはぴったりの職場だなと感じます。

働き方

フルリモート

Autifyでは、コロナ禍が始まった2020年3月ごろからフルリモートで開発を進めています。コロナ禍以前から週1回のリモートワーク推奨日があり、そのためリモートワークに必要なツールなどは社内で一通りセットアップしていたため、フルリモートワークにも比較的自然に移行できました。

フルリモートへスムーズに移行できたことから、採用のギアチェンジもスムーズに行きました。上に書いたように、当初採用のターゲットは「日本国内に居住している、あるいは日本に移住することを前提としているエンジニア」としていましたが、コロナ禍により正式雇用が決まっても日本への移住がすぐには行えないことが明白になってきました。そのため、エンジニアの採用においては日本への移住を前提としないことになり、日本のタイムゾーンにある程度合わせて仕事できるならどこに住んでいても良いという条件で現在は採用を行なっています。この関係もあり、エンジニアリングチームのメンバーの数人は日本国外からリモートで仕事しています。エンジニアリングチーム以外には首都圏以外の地方在住のメンバーも最近は増えており、国外あるいは国内でも地方に住んでいる優秀な人を採用できる(社員も働く場所に縛られなくてよい)というのは、まさにフルリモート体制のいいところです。

開発の流れ

現在、開発チームではスクラムをベースにしたフローで開発しており、スプリントの長さは1週間です。現在のところプロダクトマネージャの2名もエンジニア出身なので、彼らと開発チームとのコミュニケーションもスムーズです。for Web、for Mobileそれぞれのチームでスプリントプランニング、スプリントレビュー、スプリントレトロスペクティブを行なっており、レトロスペクティブではMiroなどのコラボレーションツールを使いつつ、様々な改善のアイディアが出されています。

For webチームにおけるレトロスペクティブの一例

Autify for Webはローンチから2年、Autify for Mobileはローンチしたてと、2つのプロダクトの成熟度、チームの規模、タスクの種類、解決すべき問題といった要素が大きく違います。そのため、For Webチームでは全員参加のDaily Sync(朝会)を行い、For Mobileチームでは非同期でSlack上で進捗共有するといったように、各種取り組みはチームの状況によって違っています。

For Webチームでは、人数が増えてコミュニケーションコストが上がり、打ち合わせがランダムに入りやすくなってしまったことから、毎週水曜日は打ち合わせを原則入れず、開発に集中するというNo meeting dayを実施しています。この日は朝から晩までスプリントタスクの解決に集中できるのでプルリクエストが集中的に作られることもある一方、「No meeting day以外ならいつでも気軽に面接や打ち合わせを入れてくれ」と言えることで開発にかけられる時間を気にせずにコミュニケーションを促せるようになりました。

カルチャー

CTOとして、エンジニアにはスプリントタスクに大きく影響を及ぼさない前提で自由に様々なタスクに取り組んでほしいと思っています。過去にはKonmari Dayのように、スプリントタスクの優先順位に関係なく、エンジニア各人が好きなタスクに取り組んでいい日を月1回設けるなどの施策を行ってきました(Konmari Day自体は欠点もあり、今は実施していません)。現在は、スプリントの中でおおよそ3割を上限として、エンジニアは自分が必要と思う改善など(リファクタリング、アーキテクチャの変更、CI/CDの改善など)を自由に行ってよい、というルールになっています。この辺りは、エンジニアが裁量を持って働き柔軟なアイディアを出せるようにする一方で、新機能の開発などのスピード感を出すのを両立するちょうどいい具合を常に探る必要があり、試行錯誤を繰り返しています。

またエンジニアが学ぶことを推奨する雰囲気もエンジニアリング組織が成長していくには大事なことです。その1つとして、2週間に1度Knowledge Sharing Sessionという勉強会を開催しています。ここでは、最近リリースされた機能の裏側の話やテストの書き方など日々の業務に直接関係のあることから、代数的データ型入門など直接的には関係ないがエンジニアとして面白い話題まで、様々な話題をエンジニアが講義します。毎回たくさんの質問が出るので、時間配分に苦労するほどです。

Knowledge Sharing Sessionでのトピック例

また、社員有志によって本の輪読会(Book clubと呼ばれています)も行われています。プログラミング関連の書籍や、テストの基礎を学び直すべく入門書を取り上げるなど、こちらも様々なトピックを扱っています。

まとめ

今回は、Autifyのエンジニアリングチームの体制、働き方、カルチャーの一端をご紹介しました。テスト自動化というソフトウェア開発における世界共通の悩みを解決するべく、Autifyをグローバルに展開していくため、

  • 英語を公用語とした多様性のあるチーム作り
  • フルリモートを前提としたワークフローの実践
  • エンジニア各人の裁量に任せた上で学習を促すカルチャーの醸成

といった取り組みをしています。こんな環境で働きたい、Autifyというプロダクトが気になる、あるいは腕に覚えがあるので協力させて欲しい、という方はぜひご応募ください!

採用イベント開催のお知らせ

2021年10月18日(月)より5夜連続で「Autify Team Talk Session」を開催致します。 Autifyのメンバーたちが日々どんなことを考え、業務を遂行しているかを座談会形式でお伝えするオンラインイベントです。 この記事を読んで興味をお持ちいただいた方はぜひイベントで、Autifyのことを色々聞いてみてください。ご参加お待ちしております。

Autify Team Talk Session 〜Backend / SRE〜

Autify Team Talk Session 〜Frontend / TSE〜

その他開催中の採用イベントはこちら