/note/tech

Why I code as a CTO

要約:

■ 1. CTOとしてコードを書き続ける理由

  • 一般的な通念への反論: 多くのCTOはコードを書かなくなるが、筆者は過去12ヶ月間で大量のコードを出荷している
  • 直属の部下ゼロ: 現在直属の部下を管理しておらず、会議の合間に少し書く程度ではなく、前四半期に複数の実質的な機能を出荷した
  • 高いレバレッジ: コードを書くことは技術リーダーとして行う最もレバレッジの高い活動の一つである
  • 誤解への反論: CTOがコードを書く場合、ペットプロジェクトや形式的なコードレビューをしていると思われがちだが、実際は異なる

■ 2. 長期的実験プロジェクトの推進

  • 希少なリソース: 組織内で実質的に新しいものを構築できる人材は実は希少なリソースである
  • 組織の特性: 組織は一般的に現状維持と現行製品のスケーリングのために構築された生物である
  • 限られた人材: 新製品を生み出せるのは創業者、数人の幹部、一部の高レバレッジな個人貢献者のみである
  • 新アイデアの重要性: 新しいアイデアを推進することは意図的で持続的な努力を必要とするため非常に重要である
  • エンジニアの制約: 組織構造、ロードマップのインセンティブ、限られたリスク予算により、大半のエンジニアは曖昧な賭けを追求する時間を取れない
  • CTOの優位性: 顧客の痛点とアーキテクチャを十分に理解しているため、これらの重要な実験プロジェクトを引き受けるのに独自の立場にある
  • AIチャット製品の事例: 顧客向けAIチャット製品について議論していたが誰も時間がなかったため、感謝祭の休暇中にプロトタイプを作成し、チームと協力して数百万ドルのARR製品に仕上げた

■ 3. 緊急性の高い顧客要求への対応

  • 緊急案件の特性: 重要な顧客が緊急に何かを必要とし、それが大型契約や更新の障害になる場合がある
  • 必要な能力: 迅速に動き、システム全体を理解し、実用的なトレードオフを行える人材が必要である
  • スプリントの中断回避: エンジニアを現在のスプリントから引き離す代わりに、CTOが騒音を切り抜けることができる
  • コンテキストと重要性の理解: すでにコンテキストを持っており、リスクを理解している
  • データ編集機能の事例: 年間100万ドルの顧客がコンプライアンス上の理由で統合機能に完全なデータ編集を必要とした際、1日で動作バージョンを構築して出荷した

■ 4. バグ修正による知見の獲得

  • 意外な活動: 人々は驚くが、筆者は多くのバグを修正している
  • コードベースの理解: バグ修正はコードベースのメンタルマップを維持するための好きな方法の一つである
  • システムの横断: ページネーションやWebSocket接続の問題を追跡する際、システムの広大な領域を横断する
  • 技術的負債の理解: コードレビューやアーキテクチャ議論からは得難い技術的負債の内臓的理解が得られる
  • 意思決定への貢献: このメンタルマップは技術投資やチームが注力すべき場所についてより良い決定を下すのに役立つ

■ 5. 実際に機能するものを把握し続ける

  • AIツールの日常使用: Claude Code、Codex、Cursorなどの多数のAIツールを日々使用している
  • 戦略的意思決定: ツールや採用に関する戦略的決定を行う際、何が本物で何が偽物かを理解できる
  • 具体的事例: 複雑な統合に触れる機能をバイブコーディングで試みたが、最終的に手作業で書いた方がはるかに進捗した
  • AIの強みと弱み: AIがCRUD、テスト、ボイラープレートで輝き、精度やシステムのニュアンスで失敗することを知ることは、Twitterの誇大広告に基づく決定よりも常に優れている
  • 直感の獲得: コードの中にいることで、アーキテクチャが過度に複雑な時や技術的負債が実際の問題になっている時を感知できる

■ 6. 自分の好きなことと得意なことに集中

  • 組織構築への不向き: 組織を構築したり人事関連を扱うことを特に楽しんでいない
  • エンジニアリング管理の課題: 対人関係のダイナミクス、パフォーマンスレビュー、組織設計のナビゲートが含まれるが、これらは筆者の強みではない
  • 優秀な管理者の採用: 優秀なエンジニアリングマネージャーとリーダーを雇用し、彼らはそれを楽しんでいる
  • 自分の強みへの集中: ものを作ること、技術的問題を解決すること、コードを書くことに集中できる
  • 長期的持続性: スタートアップは疾走するマラソンのようなものなので、自分を興奮させ長期間速く走り続けられる仕事の周りに役割を設計している

■ 7. AIツールによるレバレッジの変化

  • 過去の苦悩: 数年前は戦略的な仕事をこなしながらコードを書く時間を見つけるのに苦労していた
  • 会議漬けの日々: 会社が成長するにつれ、基本的に一日中会議に拘束され、天才ゾーンの外で活動していた
  • 生産性の向上: 現代のAIツールが根本的にこの方程式を変え、以前より2~3倍生産的になった
  • 判断力の価値向上: これらのツールは判断力や技術知識を置き換えるのではなく、実際にそれらのスキルをより価値のあるものにした
  • コンテキストの活用: 正確に何が必要でどこで見つけるかを知っているため、AIツールに指示を出すことで大部分のコードを正しく生成できる
  • 役割の変化: 仕事は「すべてのコード行を書く」から「コンテキストを提供し、決定を下し、解決策を評価する」へとシフトした

■ 8. 自分に合った働き方の発見

  • Greg Brockmanの影響: StripeでのCTOの役割定義についてのブログ投稿を読み、役割に膨大なバリエーションがあることを認識した
  • CTOの多様性: 技術的ビジョナリー、組織ビルダー、インフラ重視など、CTOの役割は様々である
  • 共通点: 優れたCTOは自分の特定のスキル、興味、会社のコンテキストを考慮して最も価値を創造できる場所を見つけ出す
  • 筆者の特定の道: ソフトウェア構築を組織設計より楽しみ、深い顧客とコードベースの知識を持ち、強力なエンジニアリングマネージャーを雇用したという特定のコンテキストで機能している
  • 処方箋ではない: これは筆者の特定の道であり、処方箋ではない
  • 柔軟な役割: CTO役割は驚くほど柔軟であり、組織構築、製品戦略開発など、技術リーダーシップは強み、活力の源、会社のニーズによって異なる
  • 多様な道の存在: リーダーシップが技術的仕事を放棄することを意味すると心配するエンジニアに対し、多くの道が存在することを知ってほしい
  • 成功の鍵: 自分が独自に優れている場所を見つけ出すことが鍵である