ジャンル
エンジニアリング
公開日
August 30, 2021
2周目のCTOとして考えていること
takejune
CTOの優秀さというか、良いCTOってそういうふうに役割を柔軟に変えていきながら仕事をしていけるみたいなところはあるかなというふうに思うんですけど、前回も起業したときCTOをやっていて今回のスマートバンク社でもCTOとして仕事していくことになるかなと思うんですけど。前回の経験も踏まえ、スマートバンクではどういうふうなCTOを目指していきたいみたいなところってあったりします?なんか変わっていったりしてる?
yuta
そうですね。前回の起業の反省を踏まえてみたいなことはtakeとかshotaもあると思うんだけど、スマートバンクにおいても、やってることは全然フリマアプリとは違ってて、フィンテック領域だと思うんですけど
yuta
前回の反省としては、権限移譲が遅かったなと思うことは個人的にはけっこうあって、サービスがどんどん大きくなっていくちょっと手前で自分がコード書いてるところでバリューを出すよりも組織をどんどん拡大させていく方向にシフトチェンジするっていうのが遅かったかなというのはあって、中のメンバーとかにもyutaさんコード書いてる場合じゃないっすって言われたこともあったりしたから、そういうマインドセットが今はあって
yuta
スマートバンクもどんどんこれからサービスを大きくして組織を増やしていくべきだと思うんだけど、権限は他のメンバーに委譲して、自分は組織を大きくするっていうとこにコミットするみたいなタイミングをやっぱ見極めないといけないかなっていうのは、前回の起業の反省点としては意識してますね。
takejune
完全に耳が痛いですね(笑)
yuta
そうですね。今は重要なポイントは採用ですかね。プロダクトとか会社の時々でちゃんとこうね、開発体制を維持できる、変化に強い組織を維持できる根幹を作るみたいなところが、今回一つテーマとして自分の中で持ってたりするから、採用も今の段階からめちゃくちゃ力入れてやってるみたいなのがあるかも。
takejune
権限移譲したいなと思っても、する相手がいないとやっぱり難しいんで。早め早めにそういう方を見つけてロールを移していくっていうことができるといいなというのは、僕も思いますね。
自分の長所について
takejune
1人のエンジニアだったり、エンジニアリングマネージャーとか、CTOとか、どういったロールとしてでもいいんですけど、いろいろ経験した中で「人と比べるとこういう業務だったり、役割が得意だな」みたいなことってあったりするんですか?
yuta
やっぱ自分はゼロイチ向いてるなと思うことはあるかな。初期フェーズで要件があまり固まってない中、ユーザーの課題もいろいろあって、ビジネスとして物は作らなきゃいけないって中で、開発をガッと進めるみたいなのは向いてるかなと思っていて。フィンテックはtakeも俺もやったことなかったので、スマートパンクでは(最初は)フリマアプリみたいに作れるものがイメージできる感じがなかったんだけど
yuta
VISAとの決済(いわゆるカード決済したときの繋ぎこみ)ってどうやるんだっけとか、カードの発行どうやるんだっけとか、不確実性が高くてしかもよくわからない、どうやって作っていいかわからないところを調べながら進めていって形にするみたいな、初期フェーズでの実証みたいなところは好きだし得意かな。
takejune
うん。確かに一緒に仕事してる中で、新しい機能を単純に追加したりするときにも、ここまではわかってるんだけど、ここはまだわかんないみたいな...要件的にも不確実性が高い状況の中で、わかる範囲で進めとくわ、みたいなことをyuta君がやってくれることが多いですね。ガチガチに仕様固まってなくても進めてくれるみたいな、確かにプロダクトマネージャーとかからすると、割とありがたいなと、うん。思ったりはしますね。
yuta
そうね、2人と一緒にやってきたからこそ培ったみたいなところもあるかもしんないですね。shotaがビジネスを立ち上げるためのスキームというか課題のタネを拾ってきて、takeがそれを形にしつつ要件を詰めてくれるんだけど、がっちりは(仕様が)決まらないから、2人の要望をうまく拾っていい感じに仕上げるみたいなことを突き詰めていって、どんどんそういうことが得意になったとかはあるかもしれないですね。
yuta
特にスタートアップの新規事業とかはそうだけど、全部明らかになってから着手するのでは遅いっていうのはありますよね。結果的に作り切るまでの時間が長くかかっちゃうみたいな。参入時期はPOC(実証)の実験ですかね、そういうのもしつつプロダクト開発するみたいなのが求められると思うんで、そういうところに自分も最適化されていったみたいなのはあるかな。
スマートバンク社について
takejune
いまの会社(スマートバンク社)の特にエンジニアリングのチームについて聞いていきたいなと思うんですけど。今は開発チームの体制はざっくりどれぐらいの規模でしたっけ。
yuta
ざっくり言うと、10名もいってないっすね。創業者入れても数人っていう感じでまだまだいわゆる少数精鋭というか、少ない人数で回して。
takejune
ピザを分け合えるぐらいの人数でやってますね。
yuta
そうですね。はい。
takejune
なんでまだ意思疎通もしやすいというか。
yuta
基本的には少数精鋭のチームで、意思疎通も密にやりながら、マネジメントマネジメントせずに、みんな各々のポジションで意思疎通しながら開発していくっていうフェイズだから。完全に阿吽の呼吸でスピード感を持って開発できてるっていう時期ではありますね。
takejune
技術的な環境としてはどういう環境なんでしたっけ、使ってる言語とか。
yuta
クライアントとサーバー側に大きくわかれているかなと思うんですけど、クライアントはiOSアプリだけなのでSwiftでやってますね。Androidもいま開発中でKotlin使って、Jetpack Composeという新しい技術使いながらやってるっていう感じですね。サーバサイドは、RubyとGo採用しててあとPythonとか、TypeScriptとかも物によってはあるんだけど、メインはRubyとGoかな。RubyとGoもサービスの中で小さいサービスにわかれてるところもあるから、2個使い分けてるっていう感じっすね。言語は複数使ってます。インフラはAWSだけですけど。
takejune
言語の選び方ってどういうふうにこだわりを持って選定しているんですか?
yuta
基本的には作るべき要件があるので、それに合った言語と技術を選ぶっていうのが筋がいいかなと思ってるんだけど。あと自分たちのチームでどういったパフォーマンスを出せるかっていうのも関わってきます。
yuta
また今回はPCI DSSとか、金融庁の資金移動業登録だったりとか、許可を得るためにいろんな診査を受けなきゃいけなかったんですよね。そういうのも技術選定のポイントにはなってきたかな。固めに作るっていうとあれですけど、フィンテック部分の堅牢性が求められたりする部分とかは、ある程度固い言語。型付きの言語を選びたいなっていうのもありましたし、インフラ構成とかも監査を受けることになるんで、どういった技術で作るかみたいなところは、インフラチームと密に相談しながら作ってったって感じですかね。
yuta
一方で、iOSアプリと連携するバックエンドの部分とかは、普通のモバイルアプリ作るのと変わらないんで、自分たちが一番得意でパフォーマンスだせそうなRuby on rails使う意思決定をしましたね。
takejune これまで一緒にやってきて、やっぱりRailsで作ることはわりと多かったんで、今回も特に普通のWebアプリを作るだけだったら、Railsを素直に使うかなって思ったんだけど、やっぱりその部分的にGoを使ったりしてるっていうのは、事業ドメイン特有のリクワイアメント(要件)があった?
yuta
そうっすね、それはあります。なんでここはこういうふうに作るかみたいなところは最初に考えながら作ったっていうのはありました。決済部分とかカード管理とか、カード発行基盤だったりとか、それは全部 Goで書いてますね。
takejune
開発して、サービスをリリースして今は運用を開始していますけど、やっていて面白いなと思ったりとか、難しいなって感じるような部分って、今回の事業でいうとどういうところがあります?
yuta
そうですね、シンプルにわからないことが多いっていうのは1個あって、立ち上げ期もそうだったんすけど今でもやっぱり「こういう機能を作ろう」と思ったときにステークホルダーがたくさんいて、ステークホルダーごとに持ってる技術も違って、かつその要件を僕らが知らなかったり、基本的な繋ぎこみの仕組みとかも知らなかったりすることも多いんで、前提がわからない中で開発するっていうシーンが多いっていう難しさはあるかな。
yuta
運用の難しさっていうのもあって、決済の電文が日々流れてくるんですけど、チューニングしないといけないんですよね。この電文はユーザーの決済として通してOKか否かみたいな文脈もありますし、決済の電文が間違ってることもあるんで、そういうときに「これが真なのか偽なのか」みたいな判定を組織で判断しながらやっていかなきゃいけないから、そういう運用面の難しさも今回ありますね。
yuta
でも面白いですよ。自分たちが知らなかったことが結構あって、こういう感じでデータがくるんだとか。takeもデザインしながら思うことがあるかもしれないけど。
takejune
そうですね、お互いもうWebサービス作り始めて十数年経って、普通のWebアプリだったら手癖で作れてしまうようになってきて...
yuta
何回もやってきたわ〜みたいなね(笑)
takejune
みたいになってるからこそ、わからないことがいっぱいある領域っていうのは作っていて面白いなあみたいのはありますね確かに。
創業者3人の役割分担について
takejune
ここから最後のセクションになるんですけど、社内の方から「プロジェクトを作るときに3人の間でどういうふうに役割を切り分けてますか?」って質問をもらっておりまして、これは一緒に十数年やってますみたいな話をすると...「どういう風にうまくやってるんですか?」みたいなことを聞かれたりするシーンもあったりするんで、改めてその辺聞かせてくださいっていうことなのかなと思うんですけど。
takejune
何をやるかというか、どの事業領域を選ぶかみたいなところは、翔太くんがほぼ決めるっていう感じですよね、これまでも含めて。
yuta そうだね、どういう課題を解いて、その課題をどうビジネスにしていくかみたいなところはshotaが決めてますね。
takejune
ここはユーザーが実際に課題を持ってるっていうこともそうですし、それを解決していったときに市場として伸びていくのかどうかみたいなところを、見極める目というかセンスみたいなのが必要かなと思うんでそれはやっぱり彼が最も優れてるというか、代替がきかないところかなというふうには思うんで、やっぱりshotaくんの事業センスが光ってるところなのかなとは思いますよね。
yuta
確かに確かに
takejune
事業領域を決めたあとに、想定するユーザーが持ってる課題をインタビューとかで掘り下げていく部分に関しては僕も一緒にやったりとかして、ある程度この領域でというのが決まったら、僕の方でインタビューと並行してプロトタイピングしていって、どういったプロダクトにしていくのかっていう形を具現化していくていうのをやっていくっていう感じですね。
takejune
yutaくんの方って僕らがインタビューしてたりとか、プロトタイピングし始めるみたいなタイミングって、既にできる範囲のこと...さっきの話じゃないけど、不確実なことが多い中でちょっとずつわかってきたことを、システム的に準備し始めていくみたいなことをやっていくんだと思うんだけど。そのときはどういった動きをしてるのかな?
yuta
基本的には2人が集めてきた情報を自分なりに整理して、時々自分もその一次情報の取得とかに、インタビューとかしたりすることもあるんだけど、基本的には情報を集めてどういうプロダクトにしたいかとか、どういうビジネスモデルするかみたいなアウトラインから、プロダクト作りを考え始めることが多いかな。
yuta
takeがプロトタイピング始めてくれて、ある程度形にしてくれたらもっと詳細に技術要件を詰めていくんだけど、最初はぼんやりどういうプロダクトになっていくのかとか、ビジネス上どういう要件が必要なってくるかみたいなのを考え出してから設計してるっていうのが多いかな。
yuta
フリマアプリのときも正にそんな感じだったかな、売買が個人間でできて、そのトランザクションを最大化していくみたいなところがある程度決まっていって、「Webじゃなくてアプリですよね当然」みたいなところと、当時はクラウドがちょうど出始めた頃だったから、クラウドで全部やるだろうなと思って、クラウドを一式組む準備始めたりとか。
yuta
すべてが決まってから作り出すってことだと当然やっぱ遅いんで、先回りできるところは先回りして、こっちからエクスキューズ投げたりして、takeとかshotaに答えてもらったものを元にもっかい技術選定やり直したりとかっていうのはやってるかな。
takejune
ビジネスサイドで明らかになったことをプロダクトに反映して、プロダクトで詰まって行った要件をシステムに落としていくっていう流れでやっていくかなと思うけど、その全部一気に決めるんじゃなくて、都度都度のその要件をアップデートしてみたいな感じで進めている感じですかね。
yuta
「Why->What->How」みたいな文脈でそれぞれポジションがあるとしたら、もちろんHowのところをメインでやることが多いんだけれど、結局WhyとWhatがしっかりわかってないと、どのようにしてみたいなところは作り込めないから、足並み揃えながらこっちも解像度を高めながら作るみたいなところがデフォルト(の進め方)としてあるかな。
takejune
よく創業メンバーで仲たがいして空中分解する話とか...海外の本とかでもね、そういうエピソードとかあったりするけど「そういう感じにならないんすか?」みたいなこともねよく聞かれたりとかするけど、それは起きてないですよねラッキーなことに。
yuta
お互いのポジションをリスペクトしてるっていうのもあるだろうし、それぞれがポジションとして求められることはやってるんだけど、基本的にはオーバーラップして他のこともやってて、情報のシンクが3人の中できちんとできるスキームで長年一緒にやってるからってのもあるかもしんないけど。その辺は全然スムーズにいきますよねいつも。
takejune
オーバーラップみたいなイメージでいうと、僕はビジネスとプロダクトの間に入るんでshotaくんの方にも足を踏み込むし、yutaくんのシステムの方にも踏み込むしっていう感じで、少しずつ踏み込むことは意識してやってはいるんだけど。ビジネスとエンジニアリングの領域って、距離的には遠かったりもしがちなんで、そこで距離が離れてしまうこともあるのかなと思うんだけど、そこに関しては2人が兄弟だから歯に衣着せずに言い合えるっていうところがいいのかなっていうのは思ったりしましたね。
yuta
確かに、それはあるかもね。そんなに遠慮することもないし。ビジネスと開発ってともすると対立する組織構造になったりもするだろうけど、そういうのはあんまないかもしれないです。対立はするんだけど結局良いプロダクト作りたいとか、いいビジネスにしたいみたいなところはお互い思ってるんで。そんなに妥当じゃない意思決定はしないっていう考えはお互い...そういうのはあるかもね。
自分なりの仕事のスタイルについて
takejune
ここまで、その時々で求められることを臨機応変に変えながらやっていくっていう話は出てきてましたけど、プロダクトを作っていく中で他にもyutaくんなりのこだわりとか、仕事の仕方のスタイルみたいなのってあったりします?
yuta
エンジニアになったきっかけもあるんすけど、物作りが好きで、なかったものを生み出すみたいな仕事かなと思うんで...作るって話でいうと、要望を受けて作るみたいな感じが多いかなと思うんですよね、takeとかshotaが具現化させたものをいろいろ自分で解像度高めながら作ってるみたいのがあって、そのときに必ず「無理です」っていうふうに言わずにできる前提で考えるみたいなのはスタイルとして、持ってるっていうのはあるかな。
yuta
それはtakeとかshotaに対してだけでなくどの仕事するときもそうなんだけど。もちろん「どう考えても無理だろ」ってシーンもありつつ、基本的には達成したいゴールがあって、そのゴールを目指してる人もどう作っていいかわからないとか、こっち(開発)側がどういう動き(方で開発)をするかとか、わからない前提で要望とかを出してくるシーンもあると思うんで、基本的には全部受け止めて目的達成がどうやったらできるか?みたいなスタンスで考えて難しかったとしても、どうやったらできるみたいなところの解決策を一緒に出してくみたいなところはスタイルとしてやってるかな。
yuta
「いやできません」っていうのは簡単じゃないですか。せめてこれだったらできるとか、ビジネスのゴールをを1回ちょっと見直して、これだったら達成できるんじゃないかっていう前提のところとかも話して、それで解決できるんだったそうしようっていうふうに提案することもあるし。システム的にはね、こうやった方がもっと簡単できますよねとかもちろんあると思うし、うん。そういった感じで「できることに蓋をしない」スタンスっていうのは取ってるかなとは思うかな。
takejune
素晴らしいね。うん、日々助けられてるなって今お話聞いてて思いました。
エンディング
takejune
思ったより長くなっちゃったんで、そろそろ閉めようかなと思うんですけれども最後に雄太さんからか聞いている方にメッセージがあればお願いします。
yuta
そうですねスマートバンクでは「B/43」というプロダクトを作ってちょうど半年ぐらい経って、ユーザーさんからも割と評価をいただけながら、機能追加をやってはいるんですけど、全然人が足りておりませんっていう。Android版もまだないですし、開発中なんですけど。
takejune
うん。
yuta 我々はフリマアプリ作ってたっていうバックグラウンドがあって、このプロダクトに取り込んでますけど、また全然違った面白さ・難しさがこのFintechのB/43というプロダクトにはあって、普通のウェブエンジニアの人も、決済のお金をチャージする部分を作ったことありますという人はいるかもしれないけど、VISAネットみたいな決済の仕組みとガチで繋ぎ込んで、そのシステムも内製化して作るみたいなことは、なかなか普通の開発していてもできない経験かなと思うんで、Fintechなりの面白さが詰まったプロダクトだと思うんですよね。
yuta
今採用もしてますけど、そういうのに興味を持った人にガンガン応募してもらって、一緒に開発できたらいいかなと思うので。このポッドキャストを聞いて興味を持った方がいらっしゃったら、カジュアルに私と話をしていただけたらなと思ってます。
takejune はい、ありがとうございます。エンジニア絶賛募集中です。今回のゲストはスマートバンクCTOの堀井雄太さんでした〜!
このインタビューに出てきた人
堀井 雄太
スマートバンクCTO。VOYAGE GROUP で広告配信システムの開発やインフラ構築を担当。
その後、フリマアプリを開発する Fablic, Inc. を共同創業しCTOとして従事した後、現職。
サーバサイド全般とメインでVisa決済、カード発行基盤の開発を担当。