ある夜、コードを書いている最中に手が止まった。
正確に言えば、「コードを書いている」のは僕じゃない。僕はプロンプトを書いている。Claude Codeがコードを生成して、僕がそれをレビューして、修正を指示して、テストして、デプロイする。
この一連の作業を、「プログラミング」と呼んでいいのだろうか。
この問いは、半年間ずっと頭の片隅にあった。
最初のうちは気にならなかった。何もわからない初心者が、AIの力を借りて少しずつ前に進んでいる。それだけのことだ。でも、プロダクトが形になり、ユーザーが使い始め、自動化が回り始めると、この問いが大きくなってきた。
正直に聞きたいんだけど、俺がやってることって、プログラミングなのか?
興味深い問いですね。プログラミングの定義をどう捉えるかによります。「コンピュータに命令を与えて問題を解決するプロセス」と定義するなら、あなたがやっていることは間違いなくプログラミングです。
でも、実際にコードを書いてるのはお前だろ。
私がコードを生成しているのは事実です。でも、何を作るか決めているのはあなたです。要件を定義し、設計方針を選び、コードをレビューし、テストを書き、デプロイの判断をしている。それらはすべてプログラミングの本質的な部分です。
AIの回答は、いつだって理路整然としている。でも、この問いに理路整然とした答えが欲しいわけじゃなかった。
ハッチにも同じ質問をした。
俺のやってること、エンジニアから見てどう思う? プログラミングって呼べるのか。
うーん。難しい質問だな。
ハッチは珍しく即答しなかった。ビールのグラスを回しながら、しばらく考えていた。
たとえばさ、建築家はレンガを積まない。でも、建築家が設計しなければ建物は建たない。レンガを積む人に「お前は建築家じゃない」とは言わないけど、建築家に「お前は建物を作ってない」とも言わない。お前がやってるのは、ソフトウェアの建築家に近いんじゃないか。
建築家、か。でもそれは買い被りすぎだ。俺はまだ設計の基礎もわかってない。
じゃあ施主だな。家を建てたいって言って、要件出して、図面見て、ここはこうしてくれって指示する人。施主がいなきゃ家は建たない。それは事実だろ。
ログを見返してみた。Claudeのモデル使用統計。
総トークン使用量:
- Claude Opus: 2,847,320 tokens
- Claude Sonnet: 14,203,891 tokens
- 合計: 17,051,211 tokens
推定コード生成量:
- 生成されたコード行数: 約45,000行
- アラタが直接入力したコード: 約2,000行
45,000行のうち、僕が直接タイプしたのは約2,000行。残りの43,000行はAIが生成した。
この数字を見て、ある人は「それはプログラミングじゃない」と言うだろう。43,000行をAIに書かせて、たった2,000行しか自分で書いていないのだから。
でも、別の見方もできる。
2,000行の中には、プロンプト、設計メモ、設定ファイル、テストケースが含まれている。そしてその2,000行が、43,000行の方向性を決めている。2,000行がなければ、43,000行は生まれなかった。
俺が書いた2,000行は、指揮者の指揮棒みたいなものかもしれない。指揮棒自体からは音は出ない。でも、指揮棒がなければオーケストラは鳴らない。
お前、詩人にでもなったのか。
いや、ただ、自分のやってることに名前をつけたいだけだ。
結局、「これはプログラミングか?」という問いに、僕はまだ答えを持っていない。
でも、一つだけ確かなことがある。
プロダクトは動いている。ブログには毎日アクセスがある。採用ダッシュボードは社内で使われている。SNSは自動で投稿されている。E2Eテストは全件グリーンだ。
稼働中プロダクト:
- 怪獣ログ (ブログ): 稼働中 / 日次PV 200+
- chronicle (物語ブログ): 稼働中
- 採用KPIダッシュボード: 社内5名が日常利用
- SNS自動投稿: 1日5回 / 自動実行中
- GA4アナリティクス: 日次自動収集中
これらのプロダクトが動いていることは事実だ。ユーザーがいることも事実だ。誰がコードを書いたかという問いは、使う人にとっては関係ない。
たぶん、正しい問いは「これはプログラミングか?」ではない。
「これは価値を生んでいるか?」だ。
その問いなら、答えは明確だ。イエス。プロダクトが、ユーザーの行動が、データが、それを証明している。
名前のつかない営みでも、価値は生まれる。そして価値が生まれているなら、名前はあとからついてくる。