algonote

機械学習とか

「CTOレベルの人」の探し方

とりとめのない記事です。

CTOとは

CTO(Chief Technical Officer or Chief Technology Officer)は企業の技術トップ。企業によってはVP of Engineeringと分かれている場合もある。その場合、採用、育成、マネジメントはVPoEが担うことが多い。

スタートアップにおいては企業規模が小さいためCTOが両翼を担い、業務は技術面と採用が半々くらいのことが多い。

CTOがいない

フリーランスをやっているとCTOがいない企業の案件に当たることも多い。普通の転職では別の企業Aの同等職種から引き抜く場合も多いが、役職が上がるにつれコミットが上がり転職インセンティブが働かない。起業率が上がるにつれ需要は増える方向にあるが、エンジニアの求人倍率10倍中、10人チームで1人適材がいるとすると求人倍率100倍。

VP of Engineeringがいる組織はマジョリティーではないので、仮にテックリードの人がCTOになろうとした場合、業務内容の半分以上が急に採用やマネジメントとなり職種感ギャップが大きい。

CTOのスキル要件

「CTOレベルの人」は話を聞いてみると人によって定義が異なることもままあります。要件の粒度を細かくした方がいいです。

  • 非技術面
    • チームのマネジメントが必要ですか?
    • 技術者の採用をやってもらいたいですか?

不要な場合、自分でできるという場合、必要なのはフルスタックエンジニアや技術顧問かもしれない。

  • 技術面
    • Webサーバーの知識が必要ですか?
      • インフラ(AWS, GCP, Docker, Kubernetesなど)
      • バックエンド(PHP, Ruby, Python, Goなど)
      • フロントエンド(Vue.js, React, jQueryなど)

古典的にはCTOはインフラやバックエンドをやっていた人が多い印象。最近はFirebase使っている場合もあるがWeb系の前提知識なので要件としてはマストだと思う。アプリベースでWebフロントの知識がいらない場合はある。

  • アプリの知識が必要ですか?
    • iOS
    • Android
    • ReactNative

Web onlyのシステムの場合、アプリ自体の知識はいらない。シェアの関係でiOSファーストで作った結果、SwiftとWebはわかるものの、Androidはそんなにという人もまあまあいる。

  • ゲーム開発ツールの知識が必要ですか
    • Unity
    • Unreal Engine
    • Cocos2d
    • XR系の知識

Apple Glassも数年で出そう。

  • 機械学習、データサイエンスの知識は必要ですか?
    • 手法別
      • SQL
      • XGBoostなどの木系アルゴリズム
      • Deep Learning
    • ドメイン別
      • 画像認識
      • 音声認識
      • 自然言語処理

改善サイクルを回すために基礎的なデータ分析の素養は必要。どの企業の案件でもレコメンドとマッチングは機能として欲しくなることは多い。MVPを作ることがフォーカスならSQL以外は捨ててもいいかもしれない。

  • DeepTech、ドメイン知識は必要ですか?
    • ブロックチェーン
    • ドローン
    • 量子コンピュータ
    • スマートスピーカースキル
    • 特許

古典的なWeb企業ができることは網羅されてきたので、プラスアルファで必要なドメイン知識が増えて来ている。企業によってはCRO: Chief Research Officerとして職種が分かれている場合もある。関連して、特許周りも。企業によってはCPO: Chief Patent Officerが分かれている場合もある。

  • 自然言語
    • 日本語
    • 英語
    • 中国語
    • その他必要に応じて

日本にあるグローバルチームなら日本語と英語くらいわかった方がいいでしょう。

「CTOレベルの人」の探し方

ようやく本題。

まず理解しておくべきは職種CTOのスキル要件は大企業では全く評価されないものであるということです。仮にiOSとRailsとデータ分析できる人がいる場合、その人は全スキルレベル3であるかもしれないが、どのスキルでもレベル5の人に勝てない。企業規模が大きくなるにつれ職種は細分化され、専門化が進んでいく。

以前、小さなチームのマネジメントをしている方と話した際、キャリア相談でもフルスタック方向にある人はできるだけエリアを絞る方向にアドバイスしていると聞いたことがあります。人事評価上でも現在担当している業務ベースで評価するため、フルスタックさは評価されづらい。

あなたがCTO候補を探す場合、勉強会やカンファレンスで発表歴のある他社のエンジニアを狙うかもしれない。それ自体は悪いわけではないですが、単一スキルに特化した人が必ずしも薄く広くやるのが得意かというと必ずしもそうではない。むしろ器用貧乏で組織評価上埋もれがちな人ほど狙い目かもしれない。

フリーランスほどCTOに近いかもしれない

別の方策として最近はCTO養成講座なんてものもあるらしいです。プログラミングブートキャンプの上位版というか。Day1の中身は、

  • 開発者はCTOを目覚めすべきか
  • CTOの役割とは
  • スタートアップにおけるDevOps
  • 財務研修
  • 組織・プロダクト成長期におけるインシデント管理

でした。

技術面の話はなく、決算書の読み方や起こりそうな事象が起きた際の対応を協議するというのがメインコンテンツでした。

ポジショントーク感ありますが聞いてて思ったのはフリーランスほどCTOに向いているということです。確定申告しているのである程度数字はわかるし、いろんなクライアントの施策を知っているので引き出しが多い。人に左右されたくないから独立した人もいそうなのでフルタイムへの出戻り率が高いかというと微妙ですが。

フリーランスの人ほど器用なことが多いのでそういった人にパートタイムの技術顧問をお願いして、CTOは内部のテックリードから育てるというのも選択肢だと思います。

最後に

非エンジニアはエンジニアリング要件をまるっと一つの領域として捉えがち。

「CTOレベルの人」を探している当人が、営業と広報できて公認会計士と税理士と弁護士の資格を取っているスーパーサイヤ人かというとそんなこともないわけで、粒度を細かくすることが大事だと思います。

日英わかり中国語勉強中でWebインフラ、バックエンド、フロントわかり、Alexaスキル作れて機械学習とデータ分析でき、SolidityとSwiftも書いたことあり、弁理士試験受けたことあり、バ美肉経験のあるすーぱーはかーのTwitterアカウントはこちらです。