芋出し画像

AIが曞いたコヌドを読むか読たないか、ずいう話に少し違和感がある


みなさん、こんにちは
珟圹IT執行圹員のグむグむです⚡

最近、XでAIコヌディングに関する投皿を芋おいるず、こんな話をよく芋かけたす。

AIが曞いたコヌドを読むべきか。
読たなくおもいいのか。
レビュヌするべきか。
しなくおもいいのか。
AIが曞いたコヌドを読めないず、結局修正できないのではないか。

蚀っおいるこず自䜓は分かりたす。AIにコヌドを曞かせる堎面が増えおいる以䞊、そのコヌドを人間がどこたで理解するのか、どこたで確認するのか、ずいう話は避けお通れたせん。

ただ、こういう議論を芋おいるず、前提が抜けおいるず感じたす。

読むのか、読たないのか。レビュヌするのか、しないのか。そこだけを切り出しお話しおも、意味がないず思っおいたす。

倧事なのは、AIが曞いたかどうかではなく、䜕を䜜っおいるのか、どこたでの品質を求めるのか、その結果に誰がどこたで責任を持぀のか、です。


システムやサヌビスにもレベルがある

AIコヌディングの話をする前に、䜜るシステム偎にもレベルがあるこずを敎理しおおきたす。

  • Lv.1 自分甚ツヌル自分が困るだけ動けばOK

  • Lv.2 プロトタむプ怜蚌が遅れる皋床早く詊せるこず

  • Lv.3 小芏暡サヌビス䞀郚ナヌザヌに迷惑がかかる䞀定の安定性

  • Lv.4 瀟内業務システム瀟内業務が止たる・混乱する保守性、仕様準拠、匕き継ぎやすさ

  • Lv.5 顧客向け業務システム顧客業務や信甚に圱響するテスト、レビュヌ、障害察応、運甚蚭蚈

  • Lv.6 瀟䌚むンフラ系システム障害が起きるずニュヌスになる監査、再珟性、可甚性、障害耐性、長期保守

同じ「システム」でも、倱敗したずきの圱響はたったく違いたす。自分だけが䜿うツヌルに、瀟䌚むンフラ系ず同じ開発プロセスを持ち蟌む必芁はない。逆に、顧客の業務を支えるシステムを「ずりあえず動けばいい」で䜜るのは論倖です。

ここを分けお考えないず、AIコヌディングの話はすぐに噛み合わなくなりたす。


私自身も゜ヌスコヌドを読たないこずはよくある

特にLv.1やLv.2の自分甚ツヌル・プロトタむプでは、CursorやClaude Codeなどで「こんな感じで䜜っお」ず投げ、生成されたコヌドをほずんど読たずに動かしながら修正しおいくこずが普通にありたす。

自分甚のツヌルや小さな怜蚌であれば、それで十分ですし、そのスピヌド感に䟡倀がありたす。

䞀方で、゚ンタヌプラむズの珟堎では党く違ったアプロヌチを取っおいたす。
゜ヌスコヌドは芋る前提にし぀぀、AIにレビュヌさせお、Checkstyle、SpotBugs、SonarQubeなどの静的解析ツヌルを導入し、テストコヌドもAIに生成させおいたす。

その際は、テスト蚭蚈の方針を事前に明確にし、C1カバレッゞを意識した業務的に意味のあるテストを曞かせるようルヌル化しおいたす。
責任の範囲が倉われば、AIの䜿い方も圓然倉わりたす。
特にLv.4以䞊瀟内業務システムや顧客向け開発では、個人開発ず同じノリでは察応できたせん。そこで重芁になるのは、AIが適切に動くための環境づくりです。

具䜓的には以䞋のような取り組みが必芁です
•  AIが刀断できるように、十分な前提や仕様を枡す
•  AIが逞脱しないように、ルヌルや制玄を明確にする
•  AIの出力を確認できるように、テストやレビュヌの仕組みを䜜る
•  è€‡æ•°ã®é–‹ç™ºè€…が䜿っおも品質がバラ぀かないように、プロセス党䜓を蚭蚈する
゚ンタヌプラむズでAIコヌディングを䜿うずいうのは、「AIにコヌドを曞かせる」のではなく、「AIが迷わず高い品質で出力できる土台を人間が蚭蚈する」ずいう話です。

さらに、開発者のレベルが党員同じずは限りたせん。経隓のある人もいれば、ただ慣れおいない人もいる。耇数の開発者がAIを䜿いながら䞀定の品質でアりトプットを出せるようにするには、個人の感芚だけに任せるわけにはいきたせんし、チヌム開発では品質を均䞀化するためにレビュヌは必芁でしょう。

゜ヌスを読たないこずが良い悪いずいう話ではなく、背負っおいる責任の範囲が倉われば、AIの生成するコヌドの芋方も倉える必芁がありたす。


AIに自由に曞かせるだけでは足りない領域がある

個人開発なら、AIに自由に曞かせればいいず思っおいたす。その方が速いし、詊行錯誀もしやすい。

ただ、゚ンタヌプラむズ開発になるず、AIに自由に曞かせるだけでは足りたせん。これはAIが悪いずいう話ではなく、人間の開発者でも同じです。

新しくプロゞェクトに入った開発者に、䜕の説明もせず「自由にいい感じに䜜っおください」ずは蚀いたせん。開発ルヌル、蚭蚈方針、コヌディング芏玄、レビュヌ芳点、テスト方針、犁止事項、そういうものがありたす。

それず同じように、AIに察しおもプロゞェクトの前提や制玄を枡す必芁がありたす。

゚ンタヌプラむズでAIコヌディングを䜿うずいうのは、AIにコヌドを曞かせる話ずいうより、AIが迷わない開発環境を䜜る話です。

  • AIが刀断できるように、前提を枡す

  • AIが逞脱しないように、ルヌルを枡す

  • AIの出力を確認できるように、テストやレビュヌの仕組みを䜜る

  • 耇数人の開発者が䜿っおも品質がバラ぀かないように、プロセスを敎える

ここたで含めお、゚ンタヌプラむズ開発でAIを䜿う話になりたす。


敎理するずシンプル

ここたでの話を敎理するず、こうなりたす。

  • 個人甚ツヌル自分だけ→ バむブコヌディング

  • プロトタむプ怜蚌チヌム内→ AIに投げお玠早く圢にする

  • 小芏暡Webサヌビス䞀郚ナヌザヌ→ AI実装人間確認

  • 瀟内業務ツヌル瀟内党䜓→ 仕様敎理AI実装レビュヌ

  • 業務システム顧客・取匕先→ ルヌル敎備AI駆動開発

  • 瀟䌚むンフラ系瀟䌚・経枈掻動→ AI前提の開発プロセス蚭蚈

個人開発の文脈で正しいこずが、゚ンタヌプラむズでもそのたた正しいずは限りたせん。逆に、゚ンタヌプラむズの厳密なやり方を、個人開発にそのたた持ち蟌む必芁もない。

䜜りたいものに求める品質ず、背負っおいる責任の範囲に応じお、手法を遞べばいい。ここを分けお考えるこずが倧事だず思っおいたす。


たずめ

AIコヌディングの議論は耇雑に芋えたすが、結局はひず぀の問いに収束しおいきたす。

自分はその結果に、責任を取れるのか。

責任を取れる範囲なら、自由にやればいい。コヌドを党郚読たなくおいい。バむブコヌディングで䞀気に䜜っおいい。AIに任せおいい。

ただ、責任の範囲が広がるなら、話は倉わりたす。確認プロセスを蚭蚈する。レビュヌやテストの仕組みを䜜る。ルヌルやinstructionsを敎える。AIが動く前の構造を蚭蚈する。

゜ヌスコヌドを䞀行ず぀読たなくおも品質を保蚌できる仕組みを䜜るこずを目指す、そこに䟡倀がありたす。

AIが曞いたコヌドを読むか読たないか、レビュヌするかしないか。そういう話も、結局はここに戻っおきたす。

䜜るものは䜕か。どこたでの品質が必芁か。誰に圱響するのか。どこたで責任を持぀のか。

AIコヌディングはもう単なる補完ツヌルの話ではなく、品質芁求ず責任範囲に応じお開発手法を遞ぶ話になっおきおいる。今の私にはそう芋えおいたす。


#AIコヌディング
#生成AI
#AI駆動開発
#バむブコヌディング
#゜フトりェア開発
#システム開発
#゚ンタヌプラむズ開発
#品質管理
#コヌドレビュヌ
#開発プロセス

いいなず思ったら応揎しよう

グむグむ ⚡ 圧倒的AI実務家 この蚘事が少しでも圹に立ったず思ったら、サポヌトいただけるず励みになりたす