OSSを開発していないのにAI Slopを感じた
一時期OSSの界隈で話題になった「AI Slop」。 AIを使って大量に生成された、あまり考えられていない(?)プルリクエストや新機能提案、リファクタが投げつけられてくる問題だと認識しています。 僕はOSSで活動しているわけではないですが、最近似たようなものを社内でも感じ始めています。
ベテランのプルリクエストに感じた違和感
一人は僕より十年、二十年とキャリアの長い方です。 もちろんAIを使って開発しています。 出てくるプルリクエスト自体はさすがで、僕が気づけないような観点がちゃんとカバーされていたりして読むだけで勉強になります。
気になったのは中身よりAIが書いたであろうPRのディスクリプションでした。 本来簡潔に書かれていてほしい部分が妙に冗長になってきているんです。書いた本人にとってはきっと分かりやすい文章なんだと思います。
AIに読ませる前提だと考えれば、むしろ合理的なのかもしれません。実際僕もAIを使います。 でも、そのプルリクエストに最終的に責任を持つのは人間です。 だとすれば、人間にとって読みやすいディスクリプションであることもやっぱり手放したくないなと思います。
新人が「タスクをこなす」だけになる瞬間
もう一つは、新人の面倒を見るようになって気づいたことです。 話していてすごく気になるのが、とりあえずタスクをこなせればいい、という動き方をし始めることでした。
どんなタスクにも「解決したい課題があって、それを技術で解決していく」というソフトウェア開発の根っこにあるはずのこの部分に興味を持つのではなく、タスクに分解されたチケットをAIにそのまま読ませて「これを直せばいい」という表面だけを追いかけてしまう。 結果として空回りしていることも少なくありません。
さらに気になるのは、メンターとして質問に答えてもその方針を忠実にやってみようとする様子が一切ないことです。 何を解決したくて、そのために何をすべきか、本人の中で整理できているなら文句はありません。 でも整理できていないまま示した方針にも取り組まず、再びまたAIにしがみついてコードの生成を試みます。 これはコミュニケーションだけでなく、プルリクエストやドキュメントの書き方にも表れています。 AIに投げればある程度要求通りの返答が帰ってきて「私がやった」気になれることに、酔いしれすぎているのかもしれません。
二つに共通しているもの
この二つ問題の出方はまったく違いますが、根っこは同じだと思っています。 AIを使うこと自体が悪いのではなく思考のプロセスごとAIに預けてしまうことが問題なんです。
ベテランは思考のプロセス自体はちゃんと自分で持っています。 ただその出力を他人が読むという配慮が、AIとのやり取りの中で抜け落ちてしまっている。 新人はそもそも思考のプロセス自体を持たないまま、AIの出力をそのまま右から左に流してしまっている。 どちらも人間側の解像度が落ちているという点では同じ現象に見えます。
どう向き合うか
じゃあどうすればいいのか。 今の自分なりの結論は、AIを使う/使わないの話ではなく自分は一人で完結しているのではなく、誰かと共に事業課題を解決しているという意識を保てるかどうか、だと思っています。
そのために意識したいことが二つあります。
一つは、「なぜ」を問い続ける習慣です。 タスクの前にそれが解決したい事業課題は何か、なぜそれをやるのかを自分に問う。 AIに答えを出させるのではなく考えを整理するための壁打ち相手として使う。 これができていればタスク消化が目的化することは減るはずです。
もう一つは、協働する人がいるという意識です。 プルリクエストもドキュメントも最終的に読むのはAIではなく人間です。 自分が分かりやすいかではなく、相手が分かりやすいかを基準にする。 この意識を持てているかどうかが、AIを使ってもなお「人間らしい」成果物を出せるかの分かれ目になる気がしています。
AIをうまく使えるかどうかは結局のところツールの使い方の巧拙ではなく、この二つの意識を保ち続けられるかにかかっているんじゃないか。 新人教育や日々のレビューを通して、そんなことを思ったりしました。