松下氏の自己紹介

松下雅和氏:カオナビでCTOをしている松下と申します。よろしくお願いします。本日は「部門横断で技術的課題に向き合う!CTO室メンバー座談会」という内容でお送りしたいと思います。

(スライドを示して)まず簡単に自己紹介させてください。私、松下雅和は、@matsukazという(IDで)Twitterなどのアカウントをやっているので、よければフォローなどお願いします。AWS、Node.jsといった技術がけっこう好きです。あと、娘が2人いる2児の父ということで、日々子育てでけっこう苦労して、バタバタしながら仕事をしています。

経歴は、SIerを2つ経由して、サイバーエージェントやトランスリミットで事業系のプロダクトに関わり、2020年2月にカオナビに入社して、現在CTOとして活躍しています。

エンジニア組織として2年間で取り組んできた3つのこと

本日の最初の内容は、「専門領域をカバーする3つのチーム~CTO室が担う役割とは~」ということで、私からCTO室について簡単に紹介します。

(スライドを示して)まず、エンジニア組織としてこの2年間で取り組んできたことを紹介します。組織的な取り組みは、エンジニア組織のロール再定義、技術力向上の促進、採用広報活動の3つを行なってきたと思います。一つひとつ紹介したいと思います。

1つ目のエンジニアのロールの再定義では、テックリードの位置づけの見直しを行いました。もともと(弊社の)テックリードは、それぞれ得意領域である、フロントエンドやバックエンドに1人存在していました。

すでにいるので、フロントエンドの2人目のテックリードになるのがなかなか難しかったりイメージができなかったり。それから、(テックリードが)チームの外にいるので、チームを支援することは横断的にやらざるを得ない難しさがあったかなと思います。

そういったところを、各チームに1人テックリードを立てて、テックリードの立ち位置を変えました。(スライドを示して)現在はこのように、「プロダクト領域」「人・チーム領域」「技術領域」としてチームが動いているとすると、テックリードは「プロダクト」と「技術」にかなり関わりつつ、「人・チーム」も少し支援しています。

それ以外にもチームの外にEMとExpertがいるので、それぞれのメンバーのマネジメントや、技術的な支援を外部からも主にやるメンバーがいます。このようにチームが動いています。

(スライドを示して)エンジニアのキャリアパスについても見直しています。今まではキャリアの先として、テックリードやEMになるイメージがなかなか見えづらかったかなと思うので、そこを大きく見直しました。

(スライドを示して)社内でのグレード、全社的なグレードはもちろんありますが、エンジニアとしてテックリードやEMを目指す以外にも、最近では「インディビジュアルコントリビューター」と呼ばれる、いちエンジニアとして開発をメインでやっていく生き方もぜんぜんできる、エンジニアからシニアエンジニア、プリンシパル、チーフといったラダーもしっかりと用意しています。

それ以外に技術力向上の促進のために作った仕組みとして、まず「スナバ」という制度があります。これは1週間の中で2時間、自己研鑽のために使っていい時間をみなさんに渡しています。

現在、輪読会やGOに関して深く突き詰める会。あとは、何かプロダクトを自分で作ってみるなど、いろいろ時間を使いながら、カオナビの中で経験できないような技術を自身の力で学びながら、自己研鑽に取り組んでもらっています。

他にも「カタリバ」という社内の勉強会を2週間に1回やっています。また「イドバタ」というのは、社内のメンバーとのコミュニケーションの場で、業務外の時間になりますが、みんなで集まってワイワイ飲みながらいろいろな会話をしていたりします。

それ以外にイベント登壇の協賛などもしているので、さまざまな視点から技術力の向上を組織としても支援していることになります。

採用広報活動もしっかりと取り組んでいて、もともとエンジニアの採用チームがいたのですが、2021年の10月から有志で集まったメンバーに入ってもらって、現在は10人ぐらいです。毎週ミーティングを行っていて、採用広報の活動としてどういったことをやっていくかを議論しながら、実際に施策を打っています。

(スライドを示して)最初にあったのが、アドベントカレンダーです。どういったカンファレンスに協賛するのがいいかということをみんなで話し合いながら、過去の1年間の実績としては、こういったさまざまなカンファレンスなどで協賛しています。

また「kaonavi Tech Talk」、本日の会に関しても、採用広報とみんなで話し合って、今のかたちで配信しています。

また、技術的な取り組みで、技術的負債の解消と品質の改善に関しても取り組んできました。

まず技術的負債解消では、もともとマイクロサービス化をしていきたいという話はありましたが、なかなかボトムアップでやっていくのが難しかったです。

そのため、CTOでオーナーシップを持って、具体的にマイクロサービス化を進めていくためのタスクフォースチームを立ち上げ、そちらでモノリシックなシステムになっている現在のカオナビのマイクロサービス化を図りながら、生産性を高めたり、開発スピードを上げていくことを狙って進めてきました。

また、「FEST」というフロントエンド支援チームがあって、こちらではフロントエンドが抱えている課題、もともとjQueryだったものをReactに置き換えるとか、デザインシステムを導入するようなところを支援しているチームがいたので、こちらがシステム全体のフロントエンドの改善に取り組んできました。

品質改善の取り組みとしては、まず「当たり前品質」の明文化を全体で図っています。エンジニアである程度キャリアがある方であれば、「暗黙の了解でこうするもんだよね」というのもあるかもしれません。

しかし、中には若手もいるし、そういったエンジニア間のばらつきを抑えたいので、オンボーディングのタイミングで「当たり前品質」として、「カオナビではここまでしっかりやっていこう」ということを明文化して共有しています。

あとは、ポストモーテムの運用もやっています。実際にプロダクトでリバードが起こったり、何かリリースできなかった場面では、それに対してしっかりふりかえり、学習活動をやっていてインシデントレベルが高いもの中心にはなりますが、なぜそのインシデントが起こったのか、それに対して次回起こらないためにはどういった解決ができるのかという、根本的、恒久的な改善をしっかりと組織として考えていく取り組みをしています。

CTO室のチーム構成

実際、ここまでやって順調かというところですが、機能開発が優先されて、特に技術的負債への解消は思ったよりなかなか進まないのが現状でした。

それに対して、横断的に動いて技術的課題を解消する組織をしっかりと立ち上げないと難しいことを経験していたので、2022年4月にCTO室を新設して取り組みを行うことになりました。

(スライドを示して)実際にCTO室のチーム構成について紹介したいです。4つのチームがあります。

1つが、先ほど紹介した「FEST」で、フロントエンド支援チームです。こちらがそのままCTO室の中に入ってきました。ここでは先ほどの紹介したとおり、フロントエンドの改善や技術的課題の解消をしています。

2つ目のチームが「BERT」で、こちらはバックエンドなどに関わる技術的負債に対して取り組むチームです。先ほどマイクロサービスのタスクフォースを立ち上げた話をしましたが、そのチームがそのまま「BERT」としてジョインしました。

現在はマイクロサービスよりモジュラモノリスのほうがより現実的だろうというところで、まずモジュラモノリスを目指しながら、その先の一部機能に関してはマイクロサービス化を図る方向性で、現在は考えて進めています。

3つ目が「+SRE(クロスSRE)」というチームです。カオナビにはSRE部という部署があり、カオナビ全体のSREをやっています。そして、より全社的な動きや横断的な取り組みをやっていくためのチームとして、「+SRE」を作りました。現在、こちらではAWSの運用や、もっと全社的に考えなければいけないところによりフォーカスしたチームとして動いてもらっています。

4つ目が採用チームで、こちらはもともと別のところに存在していたのですが、エンジニア採用に特化したメンバーとしてCTO室に入って、開発組織の採用にコミットしてもらっています。

CTO室メンバーに求める5つのマインド

(スライドを示して)CTO室メンバーに対しては、最初に新設したタイミングで「みんなにこういったマインドで動いてほしいな」ということを伝えています。

紹介すると、1つ目が主体性です。これは横断的に動くからこそ、こちらから「こうしてほしい」といちいち言うよりも、自分たちの判断で主体的に動いて、いろいろな人を巻き込んでいってほしいといったところから伝えています。

2つ目が、巻き込み力や飛び込み力です。周りに困ってるところがあったら、そこに対してアプローチしていったり、逆にもっとこうしていきたいというところで、自分から巻き込んでいって、全体最適という観点で動くこともしっかり意識してもらいたいなと思っています。

そして、3つ目が会社のバリューでもあるコラボレーションです。もちろんCTO室から主導する部分もありますが、自分本位でどんどん押しつけていっては物事もなかなか進まず、協力も得られないので、協調性もしっかりと持ちながら動いてほしいなと思っています。

4つ目としては誠実さで、5つ目は失敗を恐れないことです。横断的に動いたり、何かリファクタリングをしていったりと、大きな変化を起こしていくためのチームのため、失敗を恐れて何もできなくなってしまうと、なかなか物事が進みません。多少の失敗があっても、クリティカルじゃない範囲であれば許容できるので、どんどん積極的にやっていきましょうということを掲げています。

ということで、CTO室としては技術的負債解消、採用広報活動に取り組んでいます。