20代CTO・FiNC 南野充則に聞く! 技術組織を作る「哲学」と技術・開発ツール選定法
高い技術力とビジネススキルを持ち、企業の技術戦略や開発方針を立案・実施する責任者である、CTO。この職責に20代で就任した若きトップエンジニア、FiNCの南野氏に、CTOに求められる技術と哲学を聞きました。
高い技術力とビジネススキルを持ち、企業の技術戦略や開発方針を立案・実施する責任者である、CTO。
テクノロジーがコアコンピタンスの企業においては、その職務が果たす役割は非常に重要。そのため、最近では30代や40代の、数多くの知識や経験を獲得した人が就任するのが通常です。
そんな中、20代にしてCTO(Chief Technical Officer:最高技術責任者)に就任した若きエース・エンジニアがいます。健康経営・ウェルネス経営の理念の下、パーソナルデータを駆使したヘルスケアアプリを提供しているベンチャー企業・株式会社FiNC(フィンク)の南野充則(なんの・みつのり/@mikkun1031)さんです。
CTOという職責にあるからこそ見える、エンジニアとしての仕事とは一体どのようなものでしょうか。CTOが持つべき視点、チームビルドといった「CTOの技術論」は、エンジニアとしてのキャリアを磨くうえでのヒントとなるはずです。
- 20代のCTOが備えていた適正とは?
- FiNC流・スキルアップ術は「蛇の道は蛇」
- 自社の持つ理念を伝え、優秀なアドバイザーの心を動かす
- 優秀なメンバーを集めるための技術
- チームビルディングの極意は信頼!
- CTOに選びたいのは、こんな人材
- 南野さんのキャリアから学ぶ、数多くの成功のエッセンス
20代のCTOが備えていた適正とは?
──南野さんがCTOに就任するまでの経緯を聞かせてもらえますか?
南野 私はもともと、大学3年生のときに起業し、社員全員がエンジニアというシステム受託会社を経営していました。受託開発の仕事はすごくやりがいのあるものだったんですが、「その業務以外にも、自社開発をして世の中のためになるサービスをつくりたい」という思いが強くなってきたんです。
“世の中のためになる”という意味で、「ヘルスケアの領域が良さそうだ」と思っていたんですが、その領域に詳しい人でなければ健康支援サービスってなかなか開発できないと思ったんです。
だから、選択として誰かと協力してやるか、もしくは誰かの会社に入るか、と考えていたところ、たまたまFiNCの社長である溝口と会う機会がありました。
──その出会いが、CTO就任のきっかけとなったわけですね。
南野 そうです。当時、溝口はFiNCの名でパーソナルトレーニングジムの運営をしており、そのノウハウをITによってスケールさせたいという考えを持っていました。けれど、FiNCにはそのとき、技術力がなかった。
ありがたいことにスキルの高さを見込んでもらい、「CTOとしてFiNCに参画してほしい。君の会社のメンバーも、全員一緒に来てほしい」と声をかけてもらいました。それで、CTOに就任したんです。
──溝口社長が惚れ込んだ、南野さんの“CTOとしての適性”はどこにあると思いますか?
南野 自分自身も経営をしていたので、ビジネス感覚やコスト意識を持っていたのが大きいのだと思います。だからこそ、「プロダクトを成功させて会社を成長させるんだ」という気持ちが他のエンジニアよりもきっと強かったのかなと。
つまり、エンジニアの気持ちもわかるし経営者の気持ちもわかる。そういった部分に、CTOとしての適性があったのかな、と思っています。CTOは、会社の事業に合った技術戦略やロードマップを引けることがもっとも大事ですから。
FiNC流・スキルアップ術は「蛇の道は蛇」
──技術力やビジネススキルを向上させるために、南野さんはどのような勉強法をしていますか?
南野 現在は、「FiNCにとって今最も必要で、かつ不足しているスキル(ビジネススキル、テクニカルスキル、テクノロジースキルなど)」は何かを考え、それを重点的に身につけるようにしています。
たとえばアプリのUXをより良くするためにAIを使う場合、私がAIについて一番詳しくならなければいけません。そのために、最近のAIの事例(どのような使われ方をしているのか、どういう手法があるのか)などを本で調査し、業務で実践してみます。
南野 基本的に「アウトプットするために勉強する」というスタンスです。アウトプットベースで目的を策定し、そこから逆算して何が足りてないかを洗い出しています。そもそもブレイクダウンできないのであれば、どうすればその目的を達成できるかを知っている人にまずは聞く、ということを心掛けていますね。
──「知見のある人に聞く」というのも重要な要素なのですね。
南野 そうですね。私は、その領域において知見のある方(アドバイザー)に聞くようにしてきました。たとえば、あるプログラミング言語について学びたければ、その言語のスペシャリストに教えを乞うのが一番効率が良いですから。
たとえば先ほどの例でも、AIの分野で知見を持った方がいるならば、知り合いに紹介してもらって「現場では具体的にどういう活用をしているのか」「どのようなメリット・デメリットがあるか」などを聞き、自分の中でフレームを作っていくことが多いですね。
しかし、そのときに注意しなければいけないのが、当然のことではありますが、何も知識がない状態で知見のある方に会ってはいけないということです。話の内容がほとんど理解できないでしょうし、何より相手に対して失礼ですから。
だからこそ、一定の部分までは自分なりに勉強して知識を持っておく。その上で、「この部分は、本やWebドキュメントに書いていないから聞きに行く」という形を取るべきだと思います。それだけ勉強していれば、相手も「教えてもいいかな」と思ってくれるでしょうから。
南野 そもそも私の年齢で、ありとあらゆるスキルを身につけるのは絶対に無理じゃないですか。だからこそ、自分にできないことを素直に認め、謙虚に教えを乞うという姿勢が大事だと思うんです。
これは私だけの考えではなく、FiNCには「わからない部分は社内、社外を問わず、徹底的に詳しい人に聞く」という文化があり、多くのメンバーが同様にそうしています。
実は、FiNCはフロントエンドやインフラ、アプリ、サーバーサイド、機械学習などの各セクターごとに社外からアドバイザーをつけているんです。これは、当社の技術力を向上させている大きな要因だと思いますね。
知見のある方に教えを乞うべし
自社の持つ理念を伝え、優秀なアドバイザーの心を動かす
──優秀なアドバイザーに協力してもらうために、どのようなことを工夫していますか?
南野 まず、私たちの所属する技術開発本部として「取り組むべき課題は何があるか?」を列挙します。もう少し詳しく言うと、普段の業務で発生したさまざまな問題や出来事などを書き溜め、それを抽象化し、大枠の課題を列挙して、ロジックツリーにして整理しています。
そして、その課題ごとに「解決するには何が必要か?」を分析。その上で、必要な分野に詳しい方をリストアップするんです。
その後、その人が所属するコミュニティに行ったり、その人が知り合いの知り合いならばそのネットワークをたどっていったり。そうして、まずは会いに行きます。
でも、いくら声をかけたところで、相手にとってもWin-Winでなければ手伝ってはくれません。だからこそ、交渉の方法は工夫する必要があります。
──具体的には、どのように?
南野 現状で自分たちが相手に対して提供できる価値について、まずは話します。
たとえばFiNCの場合、FiNCアプリを使って「健康になれる」「綺麗になれる」「生活が豊かになる」という価値を生み出せます。相手が何を求めているかを把握したうえで、その期待値に合わせたサービスを提供できることを説明するんです。
それから、FiNCの事業が持つ“社会的意義”についても話します。
世の中に「健康になりたくない人」は絶対にいません。世界中の全ての人にとって、健康支援サービスは意味のあるものです。また、これから日本では少子高齢化や医療費高騰などの問題も顕著になってきますから、その重要さはより増してくるでしょう。
そうした内容を元に、FiNCの事業が持つ意義を丁寧に説明します。企業が立ち上がったばかりのフェーズのうちは、この作業が特に必要です。
なぜなら、知名度や資金力もそれほどないからこそ、相手に手伝ってもらうには自分たちの持つ“理念”や“熱い思い”を伝えることが重要になってくるからです。
優秀なメンバーを集めるための技術
──社内で使用する技術の選定は、南野さんが担っているのでしょうか?
南野 昔はしていました。当時は、事業を展開する上で必要となるスピード感やパフォーマンスなどを検討材料にしながら、それにもっとも適した技術を選ぶようにしていましたね。
たとえば、RubyやPythonなどのさまざまな言語があり、その中で各メンバーが得意なものはどれなのか。その言語を選んだ場合、ビジネス面でどのような利点と欠点が生じる可能性があるのかといったことを、コスト面も加味したうえで検討していました。
けれど最近は技術戦略の大枠をつくるところまでしかやっていないです。
──詳細な部分は、誰がどうやって決めているんですか?
南野 技術開発本部にある各セクターのメンバーが「これを実現するには、この技術やアーキテクチャがいいと思います」と提案してくれたり、その分野の知見を持ったアドバイザーと私がディスカッションしたりして決めています。
もちろん最終的には、私がそれらの意見を経営層の間で共有し、FiNCにとっての利点と欠点を確認し合ったうえで意思決定をしていきますけどね。
最近、社内で実施した技術選定の事例をご紹介しましょう。選定のフローは以下のようなイメージです。
パーソナライズされたプッシュ通知を大量に送った際に、通知の到着が遅延する問題が発生。それを解決するためにアーキテクチャを策定した。
──CTO自身が技術選定をしている企業も多い中、FiNCがその部分を各メンバーに任せられるのはなぜですか?
南野 各セクターに、その領域において非常に秀でているエンジニアがいるからです。全員、その領域は私の何倍も詳しいんですよ。だからこそ、そのエンジニアたちに任せることができています。
──それを実現するには、優秀なメンバーを採用する必要があるかと思います。何か秘訣があるのでしょうか?
南野 私たちは採用において、「1.コミュニケーションスキル」「2.ロジカルシンキング力」「3.技術力」「4.カルチャーフィット」の4軸を重視して評価しています。そして、それぞれのスキルを見分けるために質問や問題をつくり、採用面接のために事前準備しているんです。
──具体的には、どのような質問をしてエンジニアのスキルを見分けていますか?
南野 たとえば、FiNCの提供しているアプリではライフログ(人間の生活・行動・体験をデジタルデータとして記録したもの)を収集する技術がサーバーサイドで必須です。ライフログ系のアプリはリクエストが多くなるので非同期処理を裏側で使うんですが、面接の場で実装方法についての質問をし、適正があるかを見極めています。
また、採用面接では誰がどの質問をしたかを全て統計化・データ化しています。それによって、面接担当者ごとに採用プロセスにばらつきが出なくなり、振り返りができるようになりますから。
採用は、全てが上手くいくわけではありません。だからこそ、何が良くて何が悪かったのかを可視化することが重要だと思います。
──採用プロセスすらも、仕組み化されているんですね。
南野 そうなんです。さらに、求職者だけではなく面接担当者を評価することもあります。正しい評価や適切な質問ができない面接担当者が出てしまうと、採用が上手くいかなくなってしまう確率が高いですから。
FiNCは、すごく仕組み化が好きな企業なので、社内のありとあらゆる事象に対しこういったメソッドを適用しています。
チームビルディングの極意は信頼!
──チームビルディングのために、南野さんが実践していることはありますか?
南野 チームの目標設定をすることですね。それは、達成したときにみんながワクワクする目標であったらなおよし。それをした上で、その目標を達成するための戦略を考えて道筋をつくり、各メンバーが担うべき役割を決めています。
たとえばサーバーサイドのエンジニアチームだったら、FiNCはマイクロサービスに力を入れているので、FiNCにマッチしたマイクロサービス基盤・設計の目標を設定する、といったように。
それを個人目標にブレークダウンしていく際、技術スキルの高い方だと「マイクロサービスにこういった技術を導入したい」といった思いが出てくるでしょう。その気持ちが企業やチームと同じ方向を向けるとさらに良いですね。
もちろんそれを実現するには、メンバーとの信頼関係も必要です。私のことを全く信頼していない人が私の戦略を聞いても、絶対に納得してくれないでしょうから。
──信頼してもらうには、何が大切ですか?
南野 メンバーに、嘘偽りのない事実や気持ちを話すこと。実現するつもりのないことを「できる」と言ったり、自分の実力を誇張したりするマネージャーには、絶対に人はついてこないですから。
そのためにはまず、マネージャー自身が「自分にできることとできないこと」をきちんと認識するのが大切だと思います。その上で、「自分にはこれができないから、君にやってほしい」とお願いする。そうして、少しずつ信頼関係を醸成していくしかないのかなと。
あとは、上司と部下がお互いにWin-Winの関係をつくることが重要だと思います。「上司の言うことを聞いて頑張っても、いつも上司ばかり得をしている」という状態になってしまうと、信頼してもらえるわけがないですから。
結局、相手に対して嘘をつかないこと、誠実であることが大切なんだと思います。
CTOに選びたいのは、こんな人材
──最後に、もし南野さんが次期CTOを選出するとしたら、どのような要素を持った方を選びますか?
南野 会社のビジネスや担当するシステムを「自分ごと」として捉えられる人。そして、それが目指す「目的」を考えて仕事できる人がいいですね。
上司から言われたものをつくるだけなら、誰でもできると思うんです。でも、それではプロジェクトが成功する確率は、一定のライン以上には上がらなくなってしまう。だからこそ、開発に携わるエンジニア自身も、目的から逆算した上でシステムをつくるというスタンスを持ってほしいと考えています。
たとえば、「何かの技術が流行っているから使う」とかではなくて「FiNCにおいてはこういう事象が発生することが多い。だからこそこの技術を選定すべきだと思います」とか「この課題を解決するための技術候補は○パターンあって、それぞれの利点・欠点はこうなのでこの技術が一番よさそうです」とちゃんと話してくれるエンジニアがいたら、その人には重要な役割を任せたいじゃないですか。
それができる人こそ、テックリードやCTOとして活躍できる人材だと思うんです。
すべきことを考えられる人
──経営者としてキャリアをスタートし、会社の課題を常に「自分の課題」として考えてきた南野さんだからこそ、その言葉には重みがありますね。貴重なお話、どうもありがとうございました!
南野さんのキャリアから学ぶ、数多くの成功のエッセンス
FiNCのエンジニアが片手で数えられるほどの人数だった黎明期から、同社のテクノロジーの屋台骨を担ってきた南野さん。その言葉には、同社を支え続けてきた彼だからこそ持つ、深い知見と説得力がありました。
その中でも、特に印象的なのは「その領域において知見のある方に聞く」という教えです。
その教えに習い、私たちは南野さんが実地で学んだ「CTOの技術論」から、エンジニアとしてステップアップするための術を学びましょう。
取材:中薗昴(サムライト)/写真:鈴木智哉