はてなにおけるテックリード、そしてサービスプラットフォームチームのテックリードについて

CTOのid:motemenです。

はてなでは一年ほど前から、ひとつの開発チームに一人、テックリードと呼ばれるエンジニアを置いています。テックリードという役割については、以下の有名な記事で語られているものからそれほどかけ離れてはいないと思いますが、組織によって微妙に異なる部分もあるはずですので、はてなの事情を交え紹介します。

テックリードは普段の仕事においては他のエンジニアと変わらず、会社組織上の上下関係があるわけでもありませんが、形式的には、テックリードにはチームの技術的な窓口となってもらっています。たとえば利用しているソフトウェアの脆弱性対応を全社的に行わなければならないときなど、技術的なレポートラインにおいてプロダクトに対する対応をまとめ、実施の報告を行う、というような具合です。

また、テックリードには、ディレクターなど非エンジニアとエンジニアとの橋渡し役になることも期待しています。技術的な事情に関する説明責任を果たしたり、技術的な側面から意思決定の手助けをしたりと、チームのエンジニアを代表する存在でもあります。

そもそもテックリードというロールを置いたのは、はてなにおけるディレクターの果たすべき役割がチームごとにかなり異なっており(去年のアドベントカレンダーをご覧ください)、チームやプロダクトの性質もディレクターの得意分野もまちまちとなってきた現在、補完的にディレクターとタッグを組める存在として、テックリードという明示的な役割を作ることで開発やその他のプロセスがスムーズになるのではないかと考えたからでした。

現在のところこれはうまくいっているようです。テックリードに明示的に強い責任を求めているわけではありませんが、この名前をこしらえたことで意思決定や情報の流れが整理されていると感じます。とくに、各チームのテックリードが月イチで集まるテックリード会という場所をつくって、短い時間でも定期的にチームの技術的な状況を共有する機会をもうけたことは、大きくなってきた組織を概観するのに役立ちました。実は以前にもチーム横断的にエンジニアが集まる会があったのですが、参加するエンジニアの所属するチームにばらつきがあり、情報共有の場としてはうまく働いていなかったのでした。

CTO個人としては、テックリードの集まる会を定期的に開くことで各チームの技術的な状況を確認することができるようになったのが大きいのですが。

チームにおける役割であるという性質上、テックリードという名前はあるものの、その働き方ははっきり決まっているわけではありません。これから数回、はてなのテックリードによるリレーブログを行い、それぞれがどのような仕事をしているか、ご紹介できればと思います。

サービスプラットフォームチームのテックリード

早速ですが、サービスプラットフォームチームのテックリードもしているid:motemenです。

サービスプラットフォームチームは、その名の通り、はてなのサービスのアプリケーション基盤部分をおもに担うチームです(その他に「プラットフォーム」の名がついたチームとして、システムプラットフォーム、ビジネスプラットフォームがあります)。ユーザに見えないシステムだけでなく、はてなの多くのユーザ向けサービスも抱えており、人力検索はてなはてな匿名ダイアリーなどの古くからあるサービスや、ユーザ登録やログイン周辺など様々なシステムを開発・運用しています。もちろん古いからといって過小評価していいわけではなく、今も多くのユーザに使われ、収益もあげているサービスですので、チームのタスクとして、システム基盤の刷新を長いこと続けてきています。

抱えるタスクの量も種類も数多いため、普段の仕事はチームのエンジニアそれぞれが独立して動くかたちが一般的です。テックリードとしてはそれぞれの案件の対応や設計の方針の初期相談と、チーム内の定期的な進捗確認の場で技術的な助言をしています。また、トラブルシューティングや新たに飛び込んできた案件のうち軽微なものは積極的に捕まえて、早めに消化するようにしています。

サービスプラットフォームのテックリードとしては、これまでのはてなのシステムに対する知識・経験がもっとも価値を発揮していると考えています。何しろ扱うシステムが多いのに加え、長年の開発により結合してしまっているものたちもままあり、新規の開発にしろ不具合修正にしろ、周囲を取りまく有形無形の事情を把握しないでは仕事が進みません。ここは、サービスディレクターもさまざまなサービスの仕様と経緯に明るいため、2人の視点からの情報を詰めつつ、タスクを進めています。例えば古くから存在している既存の機能の改廃をおこなう際の影響を量るには、それがどういう経緯で登場し・どういう風に使われ・変更されてきたか、という情報が不可欠ですが、ここにサービス/システム両方からの視点を持ちこみ、両者をオーバーラップさせることでうまく進められます。

また、これはCTOの仕事とあまり区別せず行っているのですが、はてなが提供するユーザ向けサービスの基盤を構想する、ということも行っています。10年ほども前であればサービスの技術スタックも似通っており、はてなのプラットフォームは(ドメイン駆動設計でいうところの)一種の共有カーネルとして実現できていたのですが、近年は多くのサービスが別々の道を歩みはじめています。はてなのサービス全体としての体験をより向上させるための技術的な基盤づくりに、現在は思いを巡らしているところです。


以上、簡単ですがはてなのテックリードと、サービスプラットフォームチームにおけるテックリードについて紹介しました。これから数人のテックリードがそれぞれの働きかたを語ることで、より具体的なイメージをもってもらえるのではないかと思います。

次回は id:y_uuki が紹介します。