CTO就任して1年でやってきたこと

( tech )

時間が経つのは早いもので、この一年間は特に充実していて、多くの変化があった。CTOとして、多くの挑戦を経験し、可能性を探り、成長してきたと思う。今回は、そんな一年間経営側のポジションとしてエンジニアのポジションとしてどんなことをしてきたのかまとめようと思う。

入社経緯

詳しくは以前自分が書いたブログに書いてある。

https://nakajijapan.github.io/blog/2022/12/12/piazza株式会社のctoに就任しました/

簡単にまとめると最初に掲げたのが以下だ。

  • エンジニアリングの最終意思決定
  • エンジニア組織の構築

それを基本理念として業務に関わってきた。

なにをやってきたのか

まずは、入社した会社の現状を深く理解することから始めた。全エンジニアと1対1で会うことにより、組織やエンジニアリングに関する様々な面をヒアリングし、課題を明らかにしてきた。そして、さまざまな課題に取り組む中で、気づけば1年が経過していた。その期間に自分が何をやってきたのかを一言で言うなら、 「状況に応じて迅速に決断を下す」 ということだったと思う。

「状況に応じて」とは、人・もの・金によって多く変わっていく。わかりやすいところで言うと会社のフェーズに応じてもそうだ。その状況下で多くの変数がでてくるのでそれを考慮し、適切な判断を下す必要があった。そして、「迅速に」という点においては、特に現在のフェーズでは制約が多い中で、リスクをある程度受け入れつつも、スピード感を持って行動することが我々の強みだと確信している。

これらのプロセスを、会社とエンジニア双方にとってWin-Winとなるよう、ドキュメントにしっかりとまとめ、Notionに残して進めてきた。加えて、情報の透明性を高めるためにも、この取り組みは重要だったと思う。チーム全員が迅速かつ効果的な意思決定を行うためには、オープンでアクセス可能な情報共有が不可欠だからだ

技術選択の一部刷新

会社がシード期にある今、エンジニアと資金のリソースは限られている。ビジネスを優先するための選択だが、会社の現状に合わせてモバイルアプリの技術選択を見直す必要があった。

前提として技術スタックだ。プロダクトはWebとMobileの両方で展開している。Mobileに関しては両プラットフォームリリースしている。

  • Server Side
    • Rails, MySQL, Redis
  • Mobile
    • iOS: Swift
    • Android: React Native
  • Infra
    • AWS, GCP
  • Analytics
    • Big Query, adjust, Firebase
  • BI
    • metabase

まず、Androidアプリの開発で大きな変更を行った。React NativeからKotlinへの移行を決定した。これは、React Nativeに集中することが現在の状況で大きなリスクを伴うと判断したためだ。特に、アプリのデグレードや、完成度の高いiOSアプリとして既にSwiftで作成されていて、そこへの影響が懸念された。

この決定の背景には、Androidアプリが細部の仕様、インタラクション、バグなどの問題を抱えていたことがある。React Nativeに一本化すればユニバーサルな設計が優先され、良い面もでてくるとは思うが、iOSアプリの使い心地が向上するとは限らない。必ず落ちる。

そこで、Androidアプリの再設計を行うために専門の開発者を業務委託で迎え入れることにした。これは、正社員のみを採用していた方針からの転換だ。開発メンバーには、Android開発から離れてもらい、より優先度の高い業務に集中してもらうことにした。新しいAndroidエンジニアをフルタイムで採用し、その人に先導してもらいつつなるべく早い期間でアプリのリニューアルを完成させる計画を立てている。並行してフルコミットのAndroidエンジニアの採用も進めていく。

分析基盤の構築

背景として、最近データ分析はビジネスにおいて非常に重要な要素だということは広く認識されている。しかし、現状は従来のスプレッドシートを使ったデータ管理や分析がなされており、効率的でない場合が多かった。さらに、データ分析は主にエンジニアに全ての業務降りかかっていた。

弊社では、特に以下の問題が顕著になっていた。

  • 分析情報をスプレッドシートの管理で行なっていた。自動更新はされているが、専門化しすぎて誰もメンテナンスできない状態になっていた。また、データがどこにあるのか不明瞭で、情報のアクセスが難しかった。
  • データ分析の作業や共有がすぐに行えないため、ビジネス上の意思決定に影響が出ていた。
  • エンジニアの人数が限られているため、全ての分析作業を彼らに頼るわけにはいかなかった。

これらの問題を解決するために、私たちは全社的な分析基盤を構築し、BIツールを導入することにした。この新しいシステムにより、データの管理と分析が一元化され、誰もが簡単にアクセスし、利用できるようになった。結果として、属人化した運用から脱却でき、データ駆動型の意思決定が容易になった。

プロダクトチームの採用方針を策定

エンジニアの採用は現状容易ではなく、優秀な人材を獲得するのは簡単ではない。真剣にプロジェクトに取り組んでも、ようやく一人の才能ある人が入社するかどうかというのが実情だ。このような状況の中でも自分はエンジニアを採用していかないといけない、自分としては結構なプレッシャーだ。今までの方針としては、基本は正社員のみの採用方針をとっていた。この辺の人材の制御をちゃんとやろうとすると開発しつつだとかなり大変なものになるので自分がそこを引き継ぎある程度集中できるような状態にさせた。少しだけだが柔軟な採用戦略を取り入れることができた。

まず、フルタイム人材の長期的な募集と、状況に応じた業務委託人材の積極的な採用だ。特に、高い専門性を持つ人材を対象にする。この方針の背後には、施策を迅速に前進させるという意図がある。優秀な人材をチームに迎え、既存の社員の技術力を自然と向上させる。また、新たに入ってくる人がすぐに取り組めるよう、ドキュメントを充実させ、知識の共有を意識的に行うことで、チーム全体の生産性と効率を高めることができる。

この採用方針の変更は、単に人員を増やすことだけではなく、チームのダイナミクスを活性化し、プロダクト開発の質を高めるための戦略的な選択だ。

インフラの方針を策定

今まではビジネスが最優先で、プロダクトがマーケットにどうフィットするかを仮説検証の繰り返しで探っていた。しかし、プロダクトが成長するにつれ、それだけでなく、より広範な考え方が必要になってきたのが現在のフェーズだ。インフラを担当していたエンジニアたちの退職が続き、誰も全体を把握できていない状況も重なり、新たな対応が求められていた。

この状況を踏まえ、自分は、現状のリソース配分を考慮して、新しいプロジェクトを立ち上げることにした。自分がイニシアチブとって進め、現場のエンジニアが将来的に管理・運用できるようなインフラの仕組みを作るための動きを開始した。ただ、私一人だけでは限界があるため、インフラ周りで活躍している方に力を借りて、コンサルティング形式での支援を受けることにした。

自分は先行して、Terraformを用いてインフラをコードとして管理する体制を整えた。これは、将来的に現場のメンバーでもインフラの管理ができるようにするための一歩だ。幸い、まだインフラの構成はそれほど複雑で難しいものにはなっていなかったので頑張り次第でまとめられるだろうという目論見だ。大変だったが、、、

同時に、SREチームを発足して、プロダクトがどのようにしたら安定稼働するのか最低限の安定とはどこまでなのかという定義を言語化し、場合によっては施策よりもパフォーマンスが重要なときもあるのでその優先度が変えられるよう議論のステージに持っていけるような仕組みをもう一人のメンバーと構築している。

現段階で正社員のインフラエンジニアを採用するには早すぎると判断し、業務委託を採用する方針を取った。

PdMポジションの作成

弊社では、施策が単一のビジネスサイドからのものではなく、ビジネス、アライアンス(行政周り)、コミュニティなど、複数の方面から降りてくるという特徴がある。これまでこれらの施策の優先順位を決めていたのは代表の矢野だが、事業の成長と共にその負担は増大していました。矢野の責務も多岐に渡り、優先順位の変動も頻繁にあった。しかも、どの施策も重要であるため、プロダクトチームがより積極的にロードマップの作成と優先順位の調整に関与する必要があると判断した。

このような状況を受けて、PdM(プロダクトマネージャー)ポジションを新設し、その役割としては、プロダクトチームの中心となり、施策の優先順位を明確にし、チーム全体の効果的な方向性を決定する責任を担う。

さらに、この新しいポジションに伴い、組織の仕組み、採用方針も再構築した。これにより、矢野は各計画に対して「Go」または「No Go!!!」の意思決定のみを行うことに集中できるようになり、より事業の戦略的な業務に専念できる仕組みを作った。さらにプロダクトチームの自律性を高め、より迅速かつ効果的な意思決定を可能にするものでもある。

生成AIの周知・展開

生成AIが世の中でもてはやされるようになって会社でも無視できない技術になってきた。この新しい技術の可能性を最大限に活用するために、私たちは全社を対象とした勉強会を開催した。この勉強会では、生成AIが現状で何ができるのか、そしてどのように業務に応用できるのかについて指南した。また、知見の共有や生成AIの活用を促進するための仕組み作りにも尽力した。

そして、先行して生成AIに関する調査や研究を行っていたエンジニアをサポートしました。その結果、まだ実証実験の段階ではあるが、新しいプロダクトのリリースに成功しました。このプロダクトは、「チラデジ」と名付けられ、ローカルなAI技術の活用を試みている。

詳細は以下のリンクでご覧いただける:チラデジリリースについてのノート

さらに、この技術に関連して特許も申請するというとても貴重な体験をした。この特許が通ることで、私たちの技術革新がさらに進展することを期待している。

まじで通るとうれしい。

エンジニアの働きやすさ向上

エンジニアが最高のパフォーマンスを発揮できる環境を整えることは重要と考える。その一環として、エンジニアの働きやすさをさらに向上させるためのいくつか改善策を実施した。

まず、エンジニアの需給バランスと給与体系について、役員陣に深い理解を促すための取り組みを行った。エンジニアの市場価値と、それに見合った給与体系のバランスは、他業界から見るとなかなか受け入れ難い世界ではあるのでそこはセンシティブにお互いの認識をなるべくマッチするようにすすめた。事業のフェーズやファイナンスでも限界はあるともうが給与体系の再考と適正化を進め、エンジニアがその技術と貢献に見合った報酬を受け取る仕組みができた。

次に、社員が使用するPCのスペックを大幅に向上させた。これにより、エンジニアはより効率的に作業を進めることが可能になり、ストレスの少ない作業環境が提供されました。社員一人ひとりの作業効率を最大化することは、プロジェクト全体の生産性を向上させることに直結する。

あとは定期的な1on1で作らなきゃいけない資料を極力排除して対話と課題抽出に集中したり、入社のオリエンテーションを地方からのジョインしてくるエンジニアを考慮してリモート用の仕組みに刷新したりした。

できていないこと

ビジネスサイドとの施策実施における仕組み構築

ビジネスサイドと共に施策を進める際のコミュニケーションとものづくりのプロセスに課題がある。適切かつ効率的にこれらの活動を進めるための仕組みがまだ十分に構築できていないのが現状だ。たとえば、どのKPIに対してどのチームが責任を持つべきかという点で明確なガイドラインが必要であったり、施策をだれがどれだけ詰めていくのかだ。これらをより明確にしていくことで、各チームの目標と責任が明確になり、より効果的な施策実行が可能になるはずだ。

生成AIの周知・展開

生成AIの技術は、開発メンバーや一部のチームにはかなり浸透してきたが、まだこの技術を有効活用しているとは言えない。生成AIの可能性を最大限に活用するために、さらなる周知活動とメンバーが業務(業務プロセスや企画、分析)で行う仕組みづくりが重要だ。これにより、全社的なAI技術の活用を促進し、より革新的なプロダクト開発や業務改善を実現できるだろう。

分析基盤のさらなる有効活用

スプレッドシートからの脱却はほぼ完了し、既存KPIを柔軟に表示できるようになっている。パラメータを変更するだけで、さまざまな情報を柔軟に閲覧できる状態だ。だが、エンジニアから完全に脱却できているわけではない。新たな仮説検証の際に分析を作成するには、まだエンジニアの介入が必要になる場合がある。ビジネスサイドでも容易に分析できるよう、一定のラインまでの機能を強化することを目指している。それにより、ビジネスの意思決定がスピーディーになり、新しいアイデアや戦略が迅速に検証・展開できるようになる。ビジネスとエンジニアリングの両チームがシームレスに協力し、データを最大限に活用する文化を築くことが自分の次の課題だ。

まとめ

最初の方にも書いたが、なんだかんだで「状況に応じて迅速に決断を下す」 をこの1年間行い、会社とエンジニアの成長を促進する仕組み作りに尽力してきました。

この取り組みにより、色々と前に進んだと思うし、組織の効率化と成長にすくなからず貢献できたと思う。しかし、まだ決めきれていないこともあり、新たな課題も日々増えている。今後も、これまでと同じ精神で、新しい課題に向き合い、解決に取り組んでいく所存だ。

最後に

こんな感じでいろいろやってきて、エンジニア周りの環境も多くの改善でだいぶ良くなってきたのはもちろんのこと、会社も一緒に成長していることは実感している。とはいえ、この成長を滞らせないためにまだまだプロダクトに必要な人材は必要です。さらには解決しなければいけない課題もたくさんあって。そんな状況下ではあるが一緒に社会課題に対してエンジニアリングという武器で改善していきたいという方は是非応募していただけると嬉しいです!!!!!

ここまで述べてきたように、この1年間でいろいろやってきたし、エンジニアの働く環境も改善してきた。また、会社全体も成長していることを実感している。しかし、この成長を持続させるためには、引き続き新たな人材が必要です。私たちは社会課題に対して、エンジニアリングという武器で改善していきたいと考えています。そのためには、同じビジョンを共有し、共に取り組んでくれる人材が不可欠です!少しでも共感してくださった方々は、ぜひ私たちのチームに参加し、一緒に新たな価値を創造していただきたいと思います。私たちと共に成長し、社会にインパクトを与える仕事をしてみませんか?