コードを書いていない
出社してやっていることと言えば、Claude Codeに指示してコードを生成させているだけだ。わざわざ会社側が金を払ってまでプログラマをサボらせるためのツールを提供してくれているのだから、こんなに奇妙で笑いを誘うこともそうそうない。
もちろん何も考えずに適当に指示をしてトークンを浪費しているわけではない。自分の仕事から自力でコードを書くという項目が消えただけで、自分が書くものと同じ品質のコードを生成させることに関心が移ってきた。それは指示の仕方であったり、手本を見せたりということではあるが、これまで以上にそのためのデザインパターンやアーキテクチャをはじめとしたソフトウェアエンジニアリングに対する見識が重要になりつつある。コードはかなり品質の高いものを書いてくれる時代になってしまったので、これらをうまく操ってソフトウェアの価値を高めていく方向に目指していかないとプログラマとしての立場があやうい段階にきている。
一方でそれだけではそのうち出涸らしになってしまうので、プライベートでもClaudeを使っているものの、なるべく自分がコード書くようにして、ちゃんと自分が手を動かす時間や考える時間を確保している。しかし趣味でも面倒なものは面倒なので、テストコードやちゃっとしたビルド用スクリプトのようなあまり面白くない部分を担当してもらっている。
新しい試みが簡単に始められる
最近になってこの点がLLMを使う大きな利点であるように感じられてきた。このところC#にOption/Resultパターンを導入してみているのだが、こうした試みも適用範囲を伝えるだけで実装が済んでしまう。従来であれば効果があるのかないのかわからないままにコーディングしていた時間はほぼなくなり、指示したあとすぐに効果測定の時間が始まる。
また、プロジェクトAのロジックをプロジェクトBのアーキテクチャで再構築したプロジェクトCを作るといったいいとこ取りが簡単に実現できるところもよい。人間だとこれはなかなか難しいが、LLMに任せれば規模によりけりではあるが、人間に任せるよりも早くそこそこいい感じに仕上げてきてくれる。
AIで書いたコードが保守できなくなる?
という懸念があるが、個人的にはこれに対して懐疑的だ。なぜなら仕様書がない上に意味不明な実装というのは人間レベルでも起きているし、人間のほうがよほど不可解なコードを書くからだ。大事なのはそのコードが生まれた背景や仕様が言語化されていることで、それが維持されている限りは保守できなくなることはない。むしろLLMに任せたほうが延命できることすらある。
AIの費用が高騰して別の意味で保守できなくなることもあるだろうが、AIベンダーの戦略としてボリュームゾーンのミドルクラスのモデルで利用できなくなるほどの価格になるとは考えにくい。
まあ、毎日みんながあーだこーだ言う中で、AI時代に本当に必要なのは社内を横断してメンタルサポートとお悩み相談を通して、情報をかき集めて要件定義をしつつ進捗管理もして運用まで落とし込んでくれる人なのではないかと漠然と思い至ったのだが、そんな人はAI時代以前にも重宝されていたので、有用な人材に求められる要素はあまり変わらないのだと再認識するのだった。