스크립트
00:00:00皆さんはまだコードを読んでいますか? それとも、読むべきなのでしょうか?
00:00:04これは先週末、TechXで持ち上がった議論です。
00:00:09少なくとも私の界隈では。
00:00:12興味深い問いであり、明らかに炎上狙いの問いでもあります。
00:00:15ですが、今回のエピソードはそれについてではありません。
00:00:18この問いにはお答えします。
00:00:20私にとって、単純なイエスかノーで答えられるものではありません。
00:00:22皆さんの考えもぜひ聞かせてください。
00:00:24本当に知りたいんです。
00:00:25ぜひ意見をシェアしてください。
00:00:26簡単ではないんですよ。
00:00:27またこの問いに戻ってきます。
00:00:29でも、その前に考えるべき別の問いがあります。
00:00:32あなたはまだコードを書いていますか?
00:00:35もし自分でコードをすべて書いているなら、それを読むはずですよね?
00:00:40だから、自分で書いたのなら読む必要はないわけです。
00:00:43しかし、多くの開発者(私も含め)は、おそらくコードをすべては書いていません。
00:00:49「どのくらいコードを書いているか」については、0%から100%までどこにでも位置し得ます。
00:00:55その問いについて、ですね。
00:00:58私は今や、おそらく100%に近い状態にあります。
00:01:03ここ6〜8ヶ月で劇的に変わりました。
00:01:08AIモデルの性能向上により、多くの開発者が同じ状況だと思います。
00:01:14何よりも重要なのは、AIが指示に従う能力が向上したことです。
00:01:18指示への追従性能が微調整され、
00:01:20さらにClaude Codeのような周辺ツールも充実しました。
00:01:22だから私の中で変わったのです。
00:01:24以前別のエピソードでも話しましたが、
00:01:26それがこの技術から喜びを多く奪っていると感じます。
00:01:30今私は、奪われてしまったコードを書く部分ではなく、
00:01:33モノ作りにおいて新しい喜びを見つけようとしています。
00:01:37その話は別のエピソードでしたので、これ以上は言いません。
00:01:39今回のエピソードの趣旨ではありませんから。
00:01:42しかし、これが最初の重要な問いです。
00:01:45あなたはまだコードを書いていますか?
00:01:47もちろん、あなたにとっては答えが「はい」かもしれません。
00:01:500%に近いかもしれませんし、その範囲のどこにいても構いません。
00:01:55それで全く問題ないのです。
00:01:57スケールのどこが正しい位置かを判断するのはまだ早すぎます。
00:02:02コーディングという文脈において、AIの進化はまだ初期段階ですから。
00:02:07ソフトウェアの大部分がAIによって生成されるようになるという、長期的な影響を見守る必要があります。
00:02:12どの位置にいるにせよ、間違いなくそうなっていくのですから。
00:02:16これが最初の重要な問いです。
00:02:18そして、もう一つの問いとも関わってきます。
00:02:19では、もう一つの問いについてはどうでしょう?
00:02:21あなたはまだコードを読んでいますか?
00:02:22ええ、これも複雑です。要素を分けましょう。
00:02:26「コードを読むこと」
00:02:29そして、「コードを気にすること」です。
00:02:33私にとって、これは同じことではありません。
00:02:36「読んでいるけれど気にしない」というのは、愚かなことかもしれません。
00:02:40それについては後で触れます。
00:02:41あるいは「読まないけれど気にする」、これも可能だと議論できます。
00:02:45それには影響が伴います。
00:02:47先ほど言ったように、「読まないし、気にしない」。
00:02:51「読んでいるが、気にしない」。
00:02:55「読まないが、気にする」。
00:02:58そしてもちろん、「読んでいるし、気にする」。
00:03:02読むことと気にすること、この組み合わせは4通りあります。
00:03:08読まないし気にもしない、これが私の定義する「ワイプ・コーディング」です。
00:03:14皆さんには別の定義があるかもしれませんが、それはそれで構いません。
00:03:17ですが、これが私のワイプ・コーディングの定義です。
00:03:20読まない、気にしない、これがそうです。
00:03:22だからといって、プロダクトに関心がないわけではありません。
00:03:25おそらく関心はあるでしょう。
00:03:26プロダクトを気にしないなら、そもそも何かを作ろうなんてしませんよね?
00:03:31でも、プロダクトさえ良ければいいのかもしれません。
00:03:33動けばハッピー。
00:03:34問題があればAIに「ねえ、これ動かないんだけど直して」と言うだけ。
00:03:38「修正して」と。
00:03:39コードについては気にしないし、読みもしない。
00:03:42それが私の定義するワイプ・コーディングです。
00:03:44一方、読んでいるのに気にしないというのは、何とも奇妙です。
00:03:49時間を潰しているだけでしょうか。
00:03:52読んでいるのに気にしないなら、単に仕事だから対価をもらってやっているだけかもしれません。
00:03:57興味のないコードを分析して時間を過ごす、といったことでしょうか。
00:04:00わかりません。
00:04:01私の焦点ではありませんね。
00:04:03ですが、そういう組み合わせもあり得ます。
00:04:05こちらの方が興味深い組み合わせです。
00:04:08「読まないで気にする」と「読んでいて気にする」です。
00:04:11まずは「読んでいるし、気にする」から。
00:04:13これが最も一般的ですね。
00:04:15これをAI駆動ソフトウェアエンジニアリングとでも呼べるでしょう。
00:04:20コードをすべては書かないかもしれませんが、
00:04:24ソフトウェアエンジニアとしてコードを大切にしています。
00:04:26あなたがその責任を負っているのかもしれません。
00:04:28コードを大切にしているからこそ、責任があるからこそ、
00:04:33中で何が起きているかを確認したいと思うわけです。
00:04:35理にかなっています。
00:04:36これが明白なケースです。
00:04:37また後で触れます。
00:04:38では、「読まないが、気にする」はどうでしょう?
00:04:40そんなことが可能なのでしょうか。
00:04:42私は、はい、可能だと思います。
00:04:43可能ですが、難しいことです。
00:04:46もしかすると、これが未来かもしれません。
00:04:50つまらない答えですが、
00:04:52わかりません。
00:04:53それが未来かどうかは誰にもわからないのです。
00:04:564年前には、将来私たちがコードを一切書かなくなるなんて想像もしませんでした。
00:05:02同じように、
00:05:03いつか私たちがコードを全く読まなくなる時代が来ることさえ、想像できていないのかもしれません。
00:05:09実際には、私たちはこのようなスケール上に落ち着くでしょう。
00:05:12すでにそういうスケール上にいると私は主張します。
00:05:15ですが、また後で触れます。
00:05:16さて、「読まないが気にする」とは?
00:05:18本当に可能なのか。
00:05:20前述の通り、ええ、おそらく可能でしょう。
00:05:24ですが、全く異なるソフトウェアの考え方が必要になります。
00:05:27それはAIへの信頼に基づいています。コードを書くことにおいてだけでなく、
00:05:34おそらくコードのレビューや、スキャン、分析、
00:05:40監査にもAIを使う必要があるでしょう。
00:05:41もちろん、それは可能です。
00:05:43Claude CodeやFable 5、Codex、あるいは私のお気に入りのエージェントPiを、好きなAIモデルと共に使い、コードを操作できます。
00:05:55そして、同じか別のエージェントを別のセッションで使ったり、あるいは別のAIモデルと組み合わせて作業できます。
00:06:03どのような組み合わせであれ、それをコードレビューや最新の変更点の確認、コードベース全体の頻繁な監査に利用できるのです。
00:06:12そういったことは可能です。
00:06:13そして、計画や仕様の策定と、それらを「読む」ことに時間を費やすべきでしょう。
00:06:22もしコードを読まないことが未来であるとしても、適切に行えば、何も読まないわけではありません。
00:06:32AIと共に優れた計画を練ることに時間を費やし、適切な実装の詳細を持って正しいことへ取り組んでいるかを確認する、そういったことへ移行すべきです。
00:06:47正しい方法であれば、単にプロダクトを気にするだけでなく、アーキテクチャやビルディングブロックを気にすることになります。
00:06:54仕様や計画に時間を費やし、AIに実装させることで、良い結果を得られる可能性を高めることができます。
00:07:08そして、レビュー担当のエージェントにも、その仕様書や計画へのアクセス権を与えるコードレビューの仕組みを作るのです。
00:07:15ただ、まだ一つ問題があります。なぜ私が「何も読まない」という考えに乗らないかと言えば、コードベースで何が起きているのか確信を持てないからです。
00:07:29確認しない限り、確信など持ちようがありません。
00:07:33もちろん、希望するコードを生成するようにAIを駆使し、レビューにAIを使うこともできますが、コードを見なければ100%の確信は持てません。
00:07:44これはコーディングに限った話ではありません。
00:07:46人生における全てのことに通じます。
00:07:48AIや弁護士に契約書を作成してもらい、それを全く読まずに署名すれば、何が書かれているかの確信はありません。
00:08:00そうするかどうかはあなた次第です。
00:08:03私個人としては、そうはしません。
00:08:05私はまだコードを読みますが、ここからが興味深いところかもしれません。
00:08:13繰り返しますが、スケールにおいて、私はコードを100%読んでいるわけではありません。
00:08:19スケールのどこにいるのかを正確に伝えるのは難しいのです。
00:08:24真ん中あたりでしょうか。AIが提供するすべてのコードをレビューはしています。
00:08:31しかし、必ずしもすべての行を読んでいるという意味ではありません。
00:08:36重要な部分を先に見るということです。ソフトウェアエンジニアとしてそれを識別できるからです。
00:08:42どのビルディングブロックが重要か、プルリクエストやコミットのどこが重要かを知っています。
00:08:51そこに飛び込みます。
00:08:53分析します。
00:08:54重要な部分に飛び込む。
00:08:56そして、AIがミスをしやすい部分へ飛び込みます。
00:08:59それが私のレビュー方法です。
00:09:01あまり重要ではない部分は、ざっと流し読みをするだけです。
00:09:07例えば、環境変数を読み込んでパースするためのコードをAIが書く場合、
00:09:16一行ずつ読まないかもしれません。
00:09:18ただ、全体的なアプローチを確認したいだけです。AIは、フォールバックのフォールバックを重ねるような過剰に防御的なコードを書く傾向があるからです。
00:09:27それを避けたい。
00:09:28チェックはしますが、整数をどうパースするかといった細かい詳細までは気にしません。
00:09:36現状、私はその位置にいます。
00:09:42コードを書くことと同様に、100%読まない方向へどう近づいていくか、どう変わるかはわかりません。
00:09:50100%に到達するかどうかはわかりません。
00:09:54未来は見通せませんから。
00:09:55書くことも読むことも両方100%AIがやるようになったら、私たちソフトウェアエンジニアにとって、それは何を意味するのかを真剣に見極める必要があります。
00:10:06AIに正しいタスクを与え、サインシステムやアーキテクチャについて知っておくことは、依然として非常に重要でしょう。
00:10:15そちらの方向へ向かっているのだと推測します。
00:10:18ですが、判断するのは困難です。
00:10:21ある時点でコードを一切書かず、一切読まなくなったとしても、コーディングを知っている必要があるのかどうか、ということです。
00:10:31コードを読み書きできる能力に価値があるのか。
00:10:35依然として重要なのか。
00:10:36私にとっては、今は間違いなく重要です。
00:10:39それは、何に関心があるかという問いでもあるからです。
00:10:44関心を持つ、もう一つの側面です。
00:10:46読むことは一部に過ぎませんが、私たちが読むのは関心があるからです。言ったように、読まなくても関心を持つことはできる。
00:10:53では「関心を持つ」とはどういうことか?
00:10:55関心を持つということは、明らかに多くのことを意味し得ます。
00:11:03コードスタイルなどを意味するかもしれません。
00:11:06関心を持つべきはコードスタイルや、関数の作成方法、アプローチです。
00:11:13オブジェクト指向か関数型プログラミングかといった、より大きな決断に関心を持つこともあるでしょう。
00:11:21プログラムの可読性を気にすることもある。
00:11:26セキュリティや信頼性に関心を持つこともある。
00:11:33他にも考えるべき側面はあります。
00:11:35今となっては重要度が下がった側面もあります。
00:11:39コードスタイルや可読性は、読まないならそれほど重要ではありません。
00:11:44重要なのは、AIがコードを読んで理解できることだけです。
00:11:50それはほぼ間違いなく大丈夫でしょう。
00:11:53コードスタイルは、トークン効率の面でまだ関係するかもしれません。
00:11:58不要なチェックが多いコードベースの場合、AIモデルによってはそれが行われ、
00:12:04AIがコードを分析する際に消費する余分なトークンになります。
00:12:11ですから、 still 関係はありますが、かつてほど重要ではないかもしれません。
00:12:18昔は誰もがコードスタイルに対する個人的な好みを持っていました。
00:12:22私にとって、それは確実に変わりました。
00:12:24確実に変わったのです。
00:12:26しかし、セキュリティ、信頼性、そしてテスト容易性は依然として重要です。
00:12:34ソフトウェアにおいて重要なのは、まさにそこです。
00:12:39意図した通りの動きをしてほしい。
00:12:41安全に実行してほしい。
00:12:43パフォーマンスも気にするでしょう。
00:12:46気にするべきです。
00:12:47信頼性が高くなければならない。
00:12:48ユーザーのために、勝手にクラッシュしてはいけません。
00:12:51これらは現代のソフトウェアで見られることです。
00:12:54現代のソフトウェアは、多くの場合、信頼性が低く、安全ではない可能性があります。
00:12:58100%のセキュリティは達成できません。特にAIモデルは、
00:13:04セキュリティの脆弱性を見つけるのに優れており、私たちは必ずしも最新モデルを使える環境にないからです。
00:13:10ですが、それは別の議論ですね。
00:13:11それでも気にするべきです。
00:13:13それが私の言いたいことです。
00:13:14安全で、信頼でき、高性能なソフトウェアを構築しようと努めるべきだと思います。
00:13:20ソフトウェアエンジニアとして、使用するパターンやライブラリについて意見を述べたいと思うはずです。
00:13:30そうしてシステム設計やアーキテクチャの領域へと進んでいきます。同じことではありませんが。
00:13:39これらは依然として重要だと思います。
00:13:44もしコードを100%読まない方向へ向かうなら、しっかりした仕様と計画を持つことが重要になります。
00:13:57これらに正解はありません。
00:14:02コードスタイルや可読性を気にしなくなるとすれば、なおさら、セキュリティや信頼性を担保するために、仕様や計画がより重要になってきます。
00:14:18したがって、「まだコードを読んでいますか?」という問いは炎上狙いでもあり、簡単に答えられるものではありません。
00:14:30正解も不正解もありません。
00:14:34それに、言うまでもないことですが、大きな違いもあります。
00:14:37ソフトウェアが本番環境で動いていて、何千人、何百万人もの人に使われているなら、どの分野で働いているかにもよります。
00:14:49銀行などで働いていれば、ソフトのエラーは壊滅的な結果を招きます。銀行だけでなく、ヘルスケア、防衛、テックなど、重要な分野はたくさんあります。
00:15:05それは重要な側面です。
00:15:10ユーザーがゼロのインディーハッカーなら、コードはそれほど気にしなくてもいいでしょう。
00:15:18しかし全体として、コードを書くときと同じく、コードを「読まない」ことも100%に近づく傾向が見られるでしょう。
00:15:32ただ、100%に到達するか、そもそもそれが良いアイデアなのかはわかりません。
00:15:38決して関心を捨ててはいけません。
00:15:41大きな問いは「読まずに関心を持つことはできるか?」ということです。
00:15:45本当にうまくいくのでしょうか。
00:15:48わかりません。
00:15:49今の私には、AIに対するそこまでの信頼はありません。
00:15:53いつ変わるかもわかりません。
00:15:56変わるかもしれません。
00:15:57否定はしません。
00:15:58コードを書くか書かないかが変わったように。
00:16:03現状、私はまだ「読んで気にする」か、その中間にいます。
00:16:11皆さんがどこにいるか、ぜひ教えてください。
00:16:150%読むのか、100%読むのか、あるいはまだ100%書いているのか。
00:16:19それも正しい道かもしれません。
00:16:21教えてください。
00:16:22このトピック全体についての皆さんの考えを聞かせてください。