![見出し画像](https://assets.st-note.com/production/uploads/images/89253976/rectangle_large_type_2_75faf74132cbd5d1c5e284936771cdbb.png?width=1200)
仲間を愛し、自ら考える。創業エンジニアとCTOが語る、YOUTRUSTの技術と組織の変遷(Meetup イベントレポート)
この記事は2022年7月21日に作成されたものです
2022年5月、コーポレートビジョンを「日本のモメンタムを上げる偉大な会社を創る」に刷新した株式会社YOUTRUST。新たなビジョンを実現するべく、各チームのメンバーはどのようなイシューに取り組み、どんな魅力を仕事に見出しているのか?
YOUTRUSTの現在地と目指す未来が分かる、メンバー登壇のミートアップイベントを連続開催しました。本記事では、創業エンジニアとCTOが登壇したミートアップの模様をレポートでお届けします。
登壇者
・創業エンジニア / キャリア事業部エンジニア 山田 昌弘
・CTO zoo(インタビュアー)
代表もプログラミング経験者。YOUTRUSTエンジニア組織の変遷
zoo:創業したときについてまずは聞きたいです。岩崎さん(YOUTRUST CEO)からMessengerで連絡が来たんですよね?
山田:はい。前職のDeNAに所属していたときに、「サービス開発を手伝ってもらえないか」と岩崎から連絡が来ました。サービスの概要を聞いて、面白そうだなと。岩崎はもともとエンジニアではないのですが、3ヶ月間、Progateでプログラミングを勉強したらしく、そのプロトタイプのURLと合わせてメッセージが送られてきたんです。コードを見ると「頑張ってチュートリアルを終わらせたんだな~」という感じでほっこりしたのを覚えていますが、一方で自分の手でサービスをちゃんと形にしていてすごいなと感心しましたね。
zoo:独学で勉強して、自分で作る経験を代表がしているって、エンジニアとしては話しやすさにつながるなあと感じています。そんな経験からか、岩崎さんはエンジニアをすごくリスペクトしてくれている感覚がありますね。
山田:コードはその後、すべて書き換えてしまったんですけどね(笑)。こんな行動にはなかなか出会えないなって、感激しましたね。
zoo:逆に岩崎さんからは「やまでぃ(山田の社内での呼び名)は、サービス名とかもすごく積極的に提案してくれた」とよく聞きますね。互いに熱量を持って向き合っていたことが、YOUTRUSTのスタートがうまくいった要因のひとつなのかもしれないですね。
次に、創業エンジニアとして一人で開発をしていって、その後、エンジニア組織がどのように変遷したか教えてください。
山田:サービスのリリースが2018年4月で、僕以外に初めて業務委託でエンジニアがジョインしてくれたのが2019年の秋頃。1年半くらいは一人で開発を行っていましたね。これまでは主にサーバーサイドエンジニアとしてキャリアを積んできたため、フロントとインフラは勉強しながら構築していました。その後少しずつ仲間が増えてきて、2020年の秋頃にはアプリエンジニアを含む合計3名の方にジョインいただき、翌2021年春にはiOSアプリをリリースすることができました。久しぶりのチーム開発を楽しみつつ、ちょうど同じ頃に、zooさんのカジュアル面談もしましたね。
zoo:僕が面談を受けたときは、まだフルタイムのエンジニアは3名しかいなかったんですよね。それが一気に増えて「チームだ…」と感激の声が社内でもあがってたな(笑)。
山田:2021年秋にさらに多くのエンジニアの方にご入社いただいて。同時期に1チームだった開発チームを、社内体制の変化に合わせて3つに分けました。
zoo:採用活動にご利用いただいている企業様の管理画面の開発などを行うキャリア事業部、ユーザー様にキャリアSNSとして楽しんでもらうための機能開発などを行うSNS事業部。そして僕が所属するインフラやセキュリティなどの共通基盤の管理を行っているCTO室ですね。
山田:副業の方なども含め、現在では16名のエンジニア組織にまで増えましたね(2022年5月時点)。そのうち7名がフルタイムメンバーです。
zoo:「日本のモメンタムを上げる偉大な会社を創る」というビジョン実現のためには、会社を大きくして、サービス開発を進める必要があります。エンジニアも増やして、強いプロダクトにしていかないといけない。具体的には、2023年春には20名、その1~2年後には40名以上のエンジニア組織にしようと考えています。
将来のサービスの形を想像し、開発する
zoo:続いて、技術・設計構造の変遷ついて聞きたいです。YOUTRUSTはサーバーサイドはRails、フロントはReact、インフラはAWSを使っています。技術の選定理由を教えていただきたいです。
山田:最初は一人で開発をしていたので、開発スピードを重視して僕が使い慣れていている技術を中心に選定しました。あとは、世間的にメジャーであることも意識しました。メジャーであれば技術の知見も溜まっていますしね。また、前職では大規模サービスの開発に携わっていたので、その規模にも耐えうる信用性もありました。
zoo:サービスのスタート時はいかに仮説検証を早く繰り返せるかが鍵となりますから、自分が使い慣れた技術を用いるというのは大切ですよね。そこから意識して変えたところはあるんですか?
山田:大きくは2つありますね。1つは、SPAへの取り組みです。もともとのYOUTRUSTは、ウェブサービスということで、素のRailsといいますか……SPAではない設計だったんですね。画面遷移するときは、画面全体を読み直して、コントローラーで情報を集めて、Slimと言うテンプレートエンジンでHTMLを作って、それをブラウザがダウンロードしてビューを描画するという普通の使い方をしていました。途中から徐々に、SPA化を見据えてReactを導入していったんです。最初は一部だけだったんですが、範囲を広げていって、現在は画面側はすべてReactからAPIリクエストを送信する形に変わっています。
zoo:「ウェブでSPAをやる意味はあるのか」という議論はたびたび起こりますがなぜ途中からSPA化の推進をしたんですか?
山田:SNSというプロダクトから意外に感じられるかもしれないのですが、YOUTRUSTでは当初は意志をもって「すぐにはアプリをリリースしない」と決めていました。僕が経験がなかったということももちろんありますが、当時から岩崎はTwitterなどネットでの影響力が大きかったので、「SNSで拡散→利用→反響」をもらう、というテストマーケをはやく回したいという狙いがあったからです。
そのため、当初はSPA化は不要と考えていたのですが……いつかはアプリリリースをするだろうとも思っていたので、APIを共通化したかったんです。Webでも、フロントとサーバーを独立させておくことで、いざ、ネイティブアプリを作るとなった場合も、ネイティブアプリ用の新しいAPIを作る必要がなくなると考え、先を見据えてこの選択をしました。
zoo:将来のアプリ化を見越してSPAを進めたというのは初めて聞きました。すごいですね。
山田:なんとなくかっこいいからSPAということもあるかと思いますが、今回は結果として大成功だったんじゃないかなと思います。
もう1つはかなり具体の話になってしまうんですが、リファクタリングへの取り組みですね。もともとは、Railsあるあるで、コントローラーやモデルにユースケースのビジネスロジックを詰め詰めに書いていて……ビジネス層がどんどん肥大化していったんですね。if文も多くどんな動作をするか分かりにくくなっていました。それを、独自にAppディレクトリ配下にコマンドとクエリ、ユースケースというディレクトリを設置するようにしました。更新系のビジネスロジック、参照系のビジネスロジック、そしてそれらを組み合わせるユースケースという形で責務を分離してファイルを分割することで見通しをよくしています。そういった内部的なリファクタリングも随時行っていますね。
zoo:このあたりの話は僕も初めて聞いたのでおもしろかったです。エンジニアって失敗したことは目につきやすいですが、先回りしてうまくいったことは意外に外からみえなかったりしますもんね(笑)
「今日も開発している」変わらず前線で活躍する上で大切なこと
zoo:開発に向き合う姿勢で、まずは創業時から「変わっていないこと」を教えてください。
山田:一番変わらないことは「今日も開発している」ということですかね。一人で開発していたころから比べると、頼れるエンジニア仲間も増えました。環境としては大きく変わっているものの、それでも前線でがっつり開発に携わっているのは変わらないですね。zooさんにマネジメントを担っていただいているからこそ、僕は今日も変わらず元気に開発に集中できています(笑)
もうひとつは、エンジニア主体で発信して動いていく姿勢ですね。業務構造として、やりたいことを企画職の方が決めて、デザイナーがデザインし、エンジニアが形にするという流れが一般的だと思います。ただ、実際にはエンジニア目線でやりたいことは無限にあると思っています。とはいえ、慢性的なエンジニア不足の現実があって。目の前に置かれる業務にばかり時間を割いてしまう状況に悩まれる方も多いのではないかな、と。それってエンジニア本来の力を発揮しきれていないと思うんです。
「これやりたいけど、難しいよね」とか「めんどくさそうだからやめよう」とか思われていることでも、エンジニアの知識があれば、簡単にできる道筋が見えることは多々あります。なので、エンジニアからも主体的に発信していくことが大切だと思います。これまでの経験と知識が蓄えられているわけですから、目の前の仕事にとらわれず色んな形でスキルを発揮する環境にしていきたいですね。
そのような思いから、YOUTRUSTでは、月に一度のKAIZEN Dayを設けています。その日は通常業務を一切せずに、新しい技術にチャレンジしたり、普段は手が回らないリファクタリングを行ったり、CSの方と一緒に業務改善したりとエンジニアとして主体性を発揮できる日を設けています。昔から思っていたことが、組織が大きくなった今も実現できていることは大きな変わらないポイントだと思います。
zoo:会社としても、チャレンジに投資していくことは今後もやっていきたいですね。最近では、半年ほど研究開発として機械学習にも力を入れていました。技術からサービスを良い方向に変えていくというのは組織で守っていきたい姿勢です。
逆に、変わったことも教えてもらえますか?
山田:変わったところは3つほどあります。まずは、僕個人のマインドです。長く一人で開発をしていたこともあり、以前は「俺が!俺が!」という思いが強かったのですが、いまは仲間の活躍を支えていきたいというマインドになりましたね。自分でも驚いているのですが、今は素晴らしいエンジニアの方たちに囲まれていて、みなさんに気持ちよく働いていただき、賞賛を受けてもらって人生の満足度を上げてほしいという思考に変わりました。
zoo:やまでぃさんのその変化は、僕も感じていました。エンジニアチームに対しての眼差しというか、仕事しているときの雰囲気が柔らかいものになって、自然とサポートする側にまわられているのが印象的です。最近、20代前半のエンジニアにジョインしてもらったんですけど、「どんどん成長してほしい」という話を僕らでよくしていますよね。
山田:チーム全体として、成長していこうというあたたかい空気感が作れているのは嬉しいことです。2つ目は、開発スタイルの変化ですね。今までは目の前の依頼を最速で打ち返すスタイルだったんですが、きちんとスケジュールをひいてリリースする体制へと変わったというわけです。
チーム開発でステークホルダーも増えたので、きちんと足並みを揃える必要がでてきました。現在、キャリア事業部のエンジニアチームは、スクラムを導入して、1週間スプリントで開発スケジュールを決めて取り組んでいます。当たり前のことかもしれませんが、大きな変化を感じています。
3つ目は体調管理です。気持ち的には、長時間でも開発し続けたいんですけど……スタートアップで働くのは長いマラソンのようなものなので、ペース配分を意識して、サステナブルな働き方を実現したいなと思っています。昔はめっちゃハードワーカーでしたが、いまはそんなことないのでご安心ください!
KEEP THINKING. ART OF LOVING. バリューを体現するエンジニア
zoo:YOUTRUSTのエンジニアに共通項はありますか?
山田:YOUTRUSTのバリューのひとつに“KEEP THINKING(学び続ける、その頭で考え抜く)”があり、エンジニアも自分で考えて主体的に動ける方が多いですね。振り返ってみると、YOUTRUSTで働いている間、「次、なにをすればいいですか?」と聞かれたことがないんですよね。みなさん、めちゃくちゃ自走力が高い!
zoo:「こうした方がいいですよね」と言ってるそばから、どんどん手を動かしていますよね。最近、CTOは“チーフ・焚き付け・オフィサー”だなと思っていて(笑)。みなさんが自ら課題を発見して、改善案を提案していくので、僕は「いいね!やろう!」と声掛けするのが役割だなと。
山田:いま、YOUTRUSTはみんなで議論し作っていくフェーズにあるので、特に自立した方はぴったりなんじゃないかな。
zoo:そうですね。サービスについて議論する場も頻繁にありますから。新しいエンジニアメンバーがテーマを投げかけてくれたことで、議論が深まったというのもよくあります。会社としてコミュニケーションを大切にしていることも、議論に好影響を与えているのかも。
山田:他には、バリューで“ART OF LOVING(努めて仲間を愛す。)”を掲げていて、仲間への理解を深めようとする意志の強さを感じますね。だからこそ、現在のエンジニアメンバーの誰に頼んでも新しいサービス開発ができそうなんですよ。開発スキルはもちろん、Bizdevの方と的確なコミュニケーションがとれています。
山田:まだまだ試行錯誤の日々なので、議論しつつ一緒に考えられる人は大歓迎ですね。なにかを学び、行動し、変化していける人と一緒に働きたいです!
◆YOUTRUSTエンジニアの特徴
・議論を通じ、サービスを良くするための提案ができる
・ビジネス職とのコミュニケーションが好き
・得意改善を思いついたら、どんどん実行する
登壇者プロフィール
山田昌弘 / 創業エンジニア
2012年に株式会社ディー・エヌ・エーに新卒入社。ソーシャルゲーム事業部のサーバーサイドエンジニアとして、大規模ソーシャルゲームやmBaaSの開発や運用に従事。2018年に株式会社YOUTRUSTを共同創業し、技術周り全般をリードする。
zoo / CTO
新卒で株式会社ディー・エヌ・エーに入社。EC事業部で複数の新規プロジェクトでエンジニアとして開発に従事。2016年、株式会社ペロリに出向しMERYの開発に従事。2017年に株式会社MERYに転籍し、開発部のマネージャー及び執行役員として開発や事業をリード。2021年7月にYOUTRUSTに参画し、現在はCTOを務める。