💬

スタートアップCTOを経験した所感

に公開

はじめに

2025年6月末をもって、2022年4月から共同創業した会社の取締役CTOを辞任し、個人事業主になりました。
いわゆるスタートアップという形態で会社を運営しており、投資と融資で資金を調達し、会社を成長させるということを3年間がむしゃらにやってきました。

個人事業主になり少し時間ができたので、CTOとしての3年間を振り返ってみようと思います。

1期目(2022年~2023年)

創業前から制作していた最初の自社プロダクト(構想も創業前からあった)をリリースしたのが8月でした。
途中作り直しがありましたが、だいたい4ヶ月くらいでモックと呼べる程度のモノにはしたつもりです。
創業前から手伝ってくれていた学生のアルバイトを2人雇っていましたが、ほとんど広報(LP制作をしたり、PV動画を作成したり)をやってくれていたので、リリースまでの約半年間は私1人で開発をしていました。

リリースした後少しずつ人が増え、1期目が終わるころには8人(内エンジニア6人)になり、私も手を動かすよりもメンバーの教育、社内ルールの整備など、開発の体制を整えることが多くなってきました。

そして、8月にリリースしたプロダクトは様々な理由で転生することになり、提供する価値は変わらずプロダクト名を変え、提供プラットフォームをブラウザアプリからネイティブアプリに変更することになりました。
このネイティブアプリにする構想が決まったところまでが1期目です。

このころ、CTOの仕事ってなんだ?と迷走していた時期でもあります。
メンバーの教育して、社内開発ルール整備して、アルバイトの学生が使うPCを組み立てて、勤怠管理システム作って、Slackのbot作って。なにやってんだ?ホンマに。

2期目(2023年~2024年)

本格的にチームでプロダクト開発を始めることになりました。
私がPdMのような立場で、社員1人、学生4人の計6人が開発チームとして動いていました。
開発が始まる前の下準備からやることがたくさんあり、タスクの分解、メンバーの技量に合わせたタスク割り振り、共同開発に必要なツールの選定、開発ルールの決定などなど、メンバーに開発をスタートしてもらう前にやらなければならないことが山積みでした。

一応当時の開発環境はこんな感じです。

  • Windows 11
  • UnrealEngine 5.1.1
  • Perforce Helix Core(ソース管理ツール)
  • Notion(タスク管理ツール)
  • Slack(コミュニケーションツール)

開発がスタートしたのが6月で、ストアにリリースしたのがクリスマス前くらいだったので、7ヶ月ほどでver1.0.0を完成させました。

社員や業務委託ではなく、メンバーの大半がアルバイトの学生でプロダクトを作ったというのが少し変わっているかなと思うところで、様々なハンドリングに苦労しました。

品質の担保

開発に携わってくれた学生はもちろん、唯一の社員もUEの経験者ではなかったです。
全員プログラミング経験者でしたが、UEやゲーム開発は全くの初心者です。(私もこのときはほぼ初心者のようなものでしたが)

そんなメンバーのBlueprintやコードの品質を一定水準に保つのは無理だと考え、ある程度のルールを決めた後、機能開発に関わる人数を制限しました。
機能開発は私を含め3人、他3人は最適化のみに専念してもらいました。
責任範囲と人数を少なくすることで、1人あたりの作業量とコミュニケーションコストを削減するのが狙いです。
特に機能開発のメンバーとは出勤する度に、結構な時間を話し合いに充てていました。
どうしたら汎用的にできるか、仕様変更したときに対応できるかを十分話し合ってから手を動かし、手を動かしている途中でも話し合って軌道修正することもありました。
ついでにメンバーの考え方や設計を聞いて、「それいいね」、「それはこうしたほうがいい」と教育する時間でもありました。

終わった今だから言えますが、それでもとんでもない量の技術負債が出来上がっていました。
リリース後はその解消に向けて動くのですが、以下の記事で触れた通りPerforceからGitに移行します。

https://qiita.com/pate/items/fb6eb86b825dac708266

出勤日が不確定すぎる

学生の出勤日はとにかく不定期です。
テスト期間で来れなくなったり、実家に帰るから来れなくなったり、就活で来れなくなったり。
次の出勤日は2週間後とか普通にありました。

そうなったら頼れるのは自分しかいないので、途中の機能や不具合修正が残っているタスクは私が引き継いでやっていました。
また、学生に頼むには少し難易度が高いタスクや最適化以外のBlueprintを必要としないタスク(キャラクターのアニメーション調整など)もCTOの出番です。

これに対し、自分の心の持ち様として最終的には全て自分がやらなければならないという思いで学生に任せていました。
そうすると自責で動けるのでおすすめです。

3期目(2024年~2025年)

12月下旬にリリースしてから3期目に入るまではGitの使い方に慣れたり、Gitのルールを作成したり、様々な技術負債を解消していました。

3期目ではver1.0.0のバグ修正と細かいブラッシュアップ、新機能追加をすることになります。
主要なメンバーも就職で抜けたりして、人の入れ替わりもありました。

2期目はひたすら目の前のタスクを捌くのに必死だったのであまり考えられなかったのですが、このあたりでCTOの存在意義を考えるようになります。

私がやってきたことはCTOの仕事なのか?テックリードと名乗ったほうがいいのでは?

CTOがいる会社の強みとは?

私がいなくても組織は自走できるのでは?

とまあ典型的な疑問を持つようになりました。
この辺の回答を探し求めた3期目でもあります。

スタートアップCTOの役割について

本題です。
そもそもCTOとはどんな役割でしょうか。
会社の技術責任者と言われても、普段何をしているかあまり想像できませんよね。

経営者視点で技術部門の指揮をする

企業の技術戦略を決定する

ネットで調べるとこのような役割だと出てきます。
では私がやってきたことはこれに当てはまるでしょうか。
はい、全く当てはまりませんね。

2期目に関してはどちらかというとエンジニアリングマネージャー兼テックリードが一番近かったと思います。

このように、会社の状況によって役割が変わります。
これはスタートアップならではだと思っていて、とにかく人も金もない場合は、誰かがやらないと会社は前に進めません。
あなたはエンジニアリングマネージャーだから、あなたはテックリードだからと、役割で業務を分担できれば一番いいでしょう。
分担できるほど人がいないからこうなったのです。

つまりスタートアップにおけるCTOの役割とは、会社が成長するために必要な技術的業務に全責任を負うことだと思います。

1期目では勤怠管理システムを作ったり、学生に使ってもらうPCを組み立てたり、開発をするための体制を整えていました。
2期目ではテックリード的なポジションでプロダクトをリリースしました。

私がやってきたことはCTOの仕事なのか?テックリードと名乗ったほうがいいのでは?

この問いにも今なら答えられます。
そのとき会社が成長するために必要な技術的業務だったのならば、その全責任を負っていた私は立派なCTOの仕事をしていたのだ、と言ってあげたいです。

なので、やっている仕事がどんなに些細なことでも、それが会社の成長に繋がり、その仕事の全責任を負う立場であったのならCTOの仕事だと言えるでしょう。
要は「CTOってどんなことするの?」に対して、「会社の状況によって変わるから変なこといっぱいしてる」としか言えないわけですね。うわーずるーい。

実際、他の人にどんなことしてるの?と聞かれてもうまく答えられなかったり、「何をしているかわからない人」と言われたこともあります。(普通にひどい)

最後に

私たちの会社はお世辞にも「とても成長したスタートアップ」とは言えません。
もし成長していたら私のCTO像も次第に変わっていったでしょう。
シリーズB、シリーズCと成長した先のCTOを追ってみたかったという思いはありますが、今の認識はこんな感じです。
たった3年ではありますが、経験した出来事や得たスキルは4倍濃縮のめんつゆくらい濃かったので、機会があればスタートアップのCTO、やってみてはいかがでしょうか。

Discussion