一般社団法人日本CTO協会が協会会員と招待客の方々に感謝を伝えるべく開催したオフラインイベント「#ThanksGivingDay2022」。
本記事では、スポンサー企業と協会理事により対談形式で行われた5つのセッションから、「藤門理事はどうしてる?ベテランCTOに聞く技術選定、人材採用、育成(AWS要素もちょっとだけ)」をご紹介します。
登壇者紹介
藤門 千明 氏
一般社団法人日本CTO協会 理事
Zホールディングス株式会社 専務執行役員 Co-GCTO AI CPO
静岡県生まれ。2005年に筑波大学大学院を卒業後、ヤフー株式会社に新卒入社。 エンジニアとして「Yahoo! JAPAN ID」や「Yahoo!ショッピング」「ヤフオク!」の決済システム構築などに携わる。決済金融部門のテクニカルディレクターや「Yahoo! JAPAN」を支えるプラットフォームの責任者を経て、2015年にヤフー株式会社CTOに就任。 2019年10月にZホールディングス株式会社 常務執行役員 CTO、ヤフー株式会社 取締役 常務執行役員CTOに就任。2022年4月より現職。
塚田 朗弘 氏
アマゾン ウェブ サービス ジャパン合同会社 Head of Startup Solutions Architect, Japan
金融系 SE、生放送系ウェブサービスのサーバーサイドエンジニアを経験した後、2013年よりスタートアップ企業にJoin。CTO として開発全般 〜 採用やチームマネジメントを行う。2015年8月よりアマゾン ウェブ サービス ジャパン合同会社のソリューションアーキテクト(SA)として従事し、現在は日本のスタートアップ SA チームをリードしている。
AWSの好きなところと嫌いなところ
[塚田]
まずは、AWSの好きなところと嫌いなところをお願いします!
[会場]
(笑)
[藤門]
AWSの好きなところは、re:InventにおけるCEOのキーノートです。自分の話だけするのではなく、さまざまなお客様企業を呼び、お客様企業の声で事例を語ってもらっている点や、カジュアルな雰囲気や熱量が好きです。また、それを続けているAWSがすごい好きです。
大変なところは、新しい機能が短いスパンで出続けているため、キャッチアップがものすごく大変なところです。はじめの頃は追いついていたのですが、だんだん難しくなってきているので、そろそろ「いつ頃に何を出す」みたいなのを教えてくれると嬉しいなとこっそり思ってます。(笑)
[会場]
(笑)
[塚田]
みなさんの反応をみて、私ももっと情報を適切にお届けできるように頑張ろうと思いました。
また、私自身もSolutions Architectという技術支援をする立場で、エンジニアの皆さんやCTOの皆さんとお話しし、アーキテクチャのレビューをしたりしているのですが、最新情報を素早く身に付け続けるのはけっこう大変なんですよね。(笑)
なので、お気持ちはとてもわかります。
Topic #1 Big Tech Company CTOとしての技術選定
[塚田]
さまざまな経験をお持ちの藤門さんが普段から技術選定に対してどのように考え、実行してきたのかを教えていただきたいです。
[藤門]
今日のセッションでは、技術選定に対してCTOとしてどう考えているのかをお話したいと思います。というのも、技術選定という言葉はさまざまなカンファレンスでも語られていますし、Web検索をすれば正しいことを言っている記事がたくさん出てきます。ですので、あえてCTOという立場としてお話したいと思います。
そもそも技術選定って、CTOでなくても実施するタイミングはありますよね。これから作るプロダクトに対して合理的な技術を選択できているかを見ているだけなので、CTOだからこその選択というのはあまりなく、誰がやっても同じ結果になると考えています。
では、技術選定におけるCTOの役割とは何なのか、というと3つあると思っています。
1つ目は、「開発者体験と事業成長の両立をした技術選定」をすることです。エンジニアの開発者体験はとても大事とよく言われていますが、事業戦略をどう達成させるかという観点も両立させなければなりません。
2つ目は、「説明責任を問われた際、クリアに回答できる技術選定」をすることです。メンバークラスによる技術選定でも、理由を問われた際には上長に説明できるようにする必要があります。一方でCTOクラスであれば、その対象がマネージャー陣、株主、ユーザーとなっていきます。トレンドだからといって選んでしまうのはただの思考停止なので、良くないと思います。
3つ目は、「技術選定において、どこまでメンバーに委譲できるかを決める」ことです。ある程度の規模の会社であれば、CTOが全ての技術選定を行うことは不可能です。そのため、技術選定においてどこまでCTOがチェックし、どこからメンバーに委譲するのかを決めることが大切です。これまで、技術選定で一度も失敗したことがないという方はいないと思います。選択し、失敗し、改善を繰り返していく事が必要です。つまり、技術選定には経験が必要で、その見極めをCTOがしていく必要があります。
[塚田]
藤門さんがこれまで関わってきた実例として、インフラの技術選定においてはいかがでしょうか。
[藤門]
当社ではLINEやYahoo!JAPANを運営しておりますが、これらのサービスはあまりクラウドを使っていません。事業成長に比重をおいた上で、合理的な理由のもとオンプレミスで動かしています。というのも、これらのサービスは、ユーザーからあまりお金をいただかないサービスであり、1PVあたりのコストをどれだけ下げられるかが事業成長における重要な指標となります。そこにこだわるため、データセンターの土地を買うところから、ユーザーが最終的に触るアプリまで自分たちの中でこだわってやっています。一方で、一休のようにユーザーからお金をいただくことができるサービスに関しては、技術よりビジネスロジックにこだわるべきであるという理由から、ひたすらビジネスロジックを書いてユーザー体験の改善を素早く繰り返せるように、クラウドを多用しています。
では、LINEやYahoo!JAPANでは全くクラウドを使ってないのかと言われると、そういうわけではありません。自分たちがリソースを割くべきでない箇所にはAWSさん含めクラウドをかなり使っています。例としては、マネージドサービスが挙げられます。
開発リソースには限りがあるため、どこに自分たちのコストをかけるかをひたすらに悩むのがCTOだと思います。
[塚田]
AWSにも触れていただきありがとうございます。(笑)
ホールディングスのCTOと個社の違いって結構あるものなのでしょうか。
[藤門]
結構違いがあります。
ヤフー株式会社では6年半CTOをやっていましたが、個社と言えどもかなり大きな会社ですよね。なので、ものすごい数の技術選定をやらなければならなかったのですが、Yahoo! JAPANのための個別最適な選定をしていれば問題なく進行できていました。しかしながら、ホールディングスのCTOの場合、各子会社の開発生産性が高いままプロダクト開発できているかどうかが最も重要です。そのため、各社の技術選定に対しては言わないようにしています。
ただ、どの会社がどのプロダクトや機能に対してどの技術やライセンスを使っているかは把握するようにしています。理由としては、会社間で共同開発する場合や開発に苦労している会社があった場合、連携を指示しやすくなるためです。また、セキュリティイシューが高いものを使っている会社に対して修正を指示しやすくなるためです。
ですので、ホールディングスのCTOは各子会社が利用している技術を把握しておく必要があるかと思います。
Topic #2 Big Tech Company CTOとしての人材採用
[塚田]
技術選定から話題が変わりますが、組織づくりや採用もCTOの大きな役目であると思うので、経験や考えをお聞かせください。
[藤門]
中途採用では、職務経歴書をもとにインタビューをさせていただくことがよくあります。経験してきたプロジェクトそのものに関しては、僕自身が関わっていないのでよくわからないことが多いのですが、必ず「そのプロジェクトに関わって何を感じたか」「もう一度関わるとしたらどうするか」を聞くようにしています。そうすると、その人の考え方や働き方がにじみ出てきますので、カルチャーフィットするかどうかが見えてきます。
一方で、スキルも気になるかと思います。そこで、「そのプロジェクトではなぜその技術を選択したのか」「その技術はそのプロジェクトにとってどのような効果や価値があったのか」を、伺える範囲で伺うようにしています。
なぜなら、ソフトウェア開発においてAWSなどのクラウドやオープンソースがなかった10年前と比べ、今はほとんどのテクノロジーは探せば見つかるようになりました。なので、その人がテクノロジー全体のどこに目を向けていて、それをどのように探して、探した中から課題解決のために何を選択するか。という体験がとても重要になります。そのため、伺うようにしています。
re:Invent 2022で藤門さんが気になった新機能は?
[藤門]
1つ目は、「Amazon OpenSearch Serverless」です。検索のワークロードをサーバーレスで実行できるものです。
2つ目は、「Amazon Aurora zero-ETL integration with Amazon Redshift」です。AuroraのトランザクションデータをほぼリアルタイムでRedshiftに持ってくることにより、データウェアハウスが作れるというものです。
3つ目は、「AWS Lambda SnapStart」です。Lambdaはさまざまな言語で動かせるのですが、Javaなどで動かそうとするとスタートまで5秒ほどかかってしまいます。それを高速化させることができるものです。
Topic #3 アップデートの早い技術を活用しきるための人材育成
[塚田]
目まぐるしい技術革新に対して、CTOとして組織の技術力を保ちつつ、人材を育成していくことが必要なのかなと思います。そこに関してなにか施策などがあれば教えてください。
[藤門]
ヤフー株式会社にいた頃は、GAFAMが主催する大きなイベント内で、どんなアップデートが発表されるかをウォッチする専門の部隊を設けていました。そこでは、そのアップデートにどのような意味があるのかを自分たちで咀嚼し、全社に対して発信するということをしていました。理由としては、CTO自らアンラーニングし続けないと、機能提供のスピードに知識が追いつけないためです。とはいえ、全ての新技術を全員が一斉に使い始めるわけではないですし、古い技術でも素晴らしい技術はあります。その前提の元、クラウドなどを使っていく上ではやはり新しい知識が必要になるため、AWSさんと連携して研修プログラムを組んだりしています。非常にお世話になっておりますので、今後もぜひよろしくお願いいたします。
[塚田]
こちらこそ、よろしくお願いいたします。