AI時代のテックリードとは何をする人なのか
最近、チームの開発スピードがどんどん上がっていく中で、モヤモヤしていたことがあった。 それがようやく言語化できた気がするので、整理も兼ねてメモとして残しておく。 これは俺個人で完結してる話なので、チームの動きに問題があったとかそういうことは一切思ってない。自分がどうすべきかを悩んでいたという話。
自分が車のハンドルを握れていない感覚
AIがどんどん進化して、PMもコードを書けるようになってものすごいスピードで開発進んでいく。そんな中で、中長期を考えたらこっちの方がいいのでは?とか、このコードの書き方は流石になくないか?といった疑問を感じることがあった。 一方で、AIを使った開発において本当にそれが重要かもよくわからずにいた。
それでも、これまでのエンジニアやってきた感覚的なところでこの品質だと流石にいつかは事故るだろうなーという感覚もそれなりには確度高く感じていた。
動くことが最優先、別にそれ自体が悪いとは思っていない。速く動くものを出す、改善を回す。それはこの業界において間違いなく正しい。
結局のところ、開発はものすごいスピードで進んでいくのに、これまで自分が責任を持ってきたソフトウェアの品質というところに自分の答えを見出せていない。それが「自分が車のハンドルを握れていない」という感覚の正体かなと思う。
「中長期を考えるべき」とも言い切れなかった
従来のエンジニアリングであれば、テックリードの役割はかなりシンプルだった。 人間が出せる速度でしか開発は進まないから、システム全体をある程度把握して、中長期を見据えた設計や保守運用コストを考えながら舵を切る、それが仕事だった。
ただ、AIがある世界でその考え方がそのまま通用するのか、自分はそこに確信が持てずにいた。
- AIの進化スピードを前提にすると、システムが破綻したら作り直すコストが激減している
- コードが多少汚くても、AIは問題なく読んで修正できる
- リファクタリングも以前より圧倒的に安くなった
だとしたら、「コードを綺麗に保つ」「中長期を考えて設計する」は本当に今も正解なのか? 自分はこれに答えられなかった。だからハンドルを切れなかった。
「中長期」をひとくくりにしていたことが問題だった
モヤモヤを解消するヒントは、「中長期を考える」という言葉の解像度を上げることで見えてきた。
一言で「中長期」といっても、AIで代替できるものとできないものがある。
AIでコストが激減したもの
- コードの品質・可読性の担保
- リファクタリング
- テストカバレッジの向上
AIがいてもどうにもならないもの
- データの不整合
- スキーマ変更の影響
- PIIや機密データの取り扱い
- ビジネスロジックの誤った設計による本番障害
この分解をすると、テックリードとして守らなければならないものと、AIに任せていいものが見えてくる。
テストひとつとっても「重要なもの」が変わっている
これはテストの考え方にも当てはまる。
従来はカバレッジが高いこと自体が品質の証だった。でも今は、カバレッジが高いのは当たり前で、むしろ「テストケースを読めばアプリケーションの挙動が理解できる」かどうかの方が重要になっていると思う。
全てのコードを熟知しない開発となっている今、コードの挙動を正確に把握できるポイントとしてテストケースが人間にとってわかりやすいことは非常に重要になっていると思う。
本質は変わっていないが、中身は変わっている
結局のところ、テックリードが考えるべき本質は変わっていないと思っている。 「チームが持続的に開発し続けられる状態を作ること」。それは今も昔も変わらない。
ただ、その中身は大きく変わった。
「コードが綺麗であること」はこれまではやりすぎない範囲では正解であったが、今は正解ではなくなり得る。 一方で「データ不整合は起こさないように」は今も変わらず正解だ。
抽象度の高い本質は同じだが、具体の中身はかなりアップデートしないといけない気がする。
今自分が注力すべきことは何か
開発スピードが上がって全体を把握しきることはもう無理だ、という前提に立つ必要がある。 人間がシステム全体を頭に入れていた時代とは違う。
だとすれば、テックリードとしてやるべきことは「仕組みを作ること」だと思っている。
- バグを起こしにくい構造・制約を設計する
- 絶対に踏んではいけない地雷を、踏めないようにする仕組みを作る
全部を把握して管理しようとするのではなく、何が起きても致命的にならないための設計をする。そこに一番時間を割きたい。
AI開発が進むほど、テックリードというポジションは「システムを一番把握している人」ではなくなっていく。システムの把握はAIを通して誰でもできる。 誰もが開発できる世界で、誰でも安全に開発できる環境を作る人。そういう役割にシフトしていくんじゃないかと思っている。 もちろんテックリードの役割はここに書いていただけではないので、一側面ではそうかなと自分が思っているという話。