「code drift」という考え方

という話をclaudeとしていて思いついたというか教えてもらったというかした。

常々コードを書いていくにあたって、同じパッケージならパッケージ内の、ディレクトリならディレクトリ内の、種類なら種類内のというふうに近しい領域のコード同士でできるだけ齟齬や食い違いが起きないように書いたりレビューしたりしてきたのだが、これを一度どこかで言語化しないとなと悶々とさせていたところに、AIエージェントとのチャットで思いがけずそこに「drift」という概念で定義づけてもらってハッとなった。

driftすなわち「漂流」。おおよその知的活動においてある程度の思考のふらつきや「前行ってたのと違う」みたいな思いつきがコードベースの中に潜り込み、それが以前からあった近隣・類似のコードとの間で齟齬が出てしまい、あるべき設計からかけ離れ思わぬ形でコードの「漂流」が始まってしまうという考え方だ。

人間でもAIでもおよそ知的活動を行う主体としてはこうした思考の漂流は避けられない問題ではありながら、新たな知見を得たり思わぬブレイクスルーをもたらすものであったりなど非常に悩ましい問題である。それゆえに、そうしたズレを完全に禁止するのではなく、常に意識的にこれに向き合い、必要な意思決定のプロセスに取り上げさせてこれを他に合わせて均すべきか、むしろ新たな問題解決の糸口として広範に取り込むべきかの判断を促す。こうした取り組みがあらゆる開発プロセスに必要なのではないかと思うのだ。

というわけで、今後この「code drift」という考え方に沿って、どんなズレに気を配るべきかについて主題ごとに書き記していきたいと思う。

Posted in:

Leave a Reply

Your email address will not be published. Required fields are marked *