理解負債とか認知負債とか次々言葉が出てくるなw AIに書かせてレビューもせずマージする開発の末路。結局、人間が楽した分だけ後で利子がつくってことね
分からないまま作って楽はできない。AIは責任取ってくれない。
得体の知れないライブラリーを導入した方が後から苦しい。で、AIは自分の考えていることを一瞬でやってくれるから便利なのであって、理解のできないコードは取り入れちゃダメでしょ。
部下が「上司は現場を知らない」って突き上げるやつと同じ問題。自分自身に返ってきたぞ。違いは部下がメンタル病まないから、いくらでも「俺にわかるように説明しろ」ってパワハラ出来ること。
外注丸投げと同じ。
仕様書をガンガン書かせるんだけど、仕様書のボリュームが大きくなってくるとそれだけで結構なトークンを使ってしまうから常にカツカツな状態になる
外注に丸投げ、部下に丸投げして、中身も知らないのに成果だけとっていく上層の人間というテンプレにはまっているな。
それ今まで設計しないで場当たりでコード書いてたからでしょ
自分でコーディングするとき、来月の自分は今書いてるコードをすべて忘れると思って、見れば思い出せるコードを心がけている。AIはリソースの節約という概念がないので、この辺りのニュアンスが伝わらない。
むしろAIにレビューしてもらってるけどね
引き継いだシステムも同じようなものだから、理解負債・認知負債はAIに限ったことでは無いと思う。むしろAIを使って理解を深めて効率的に負債を解消できるようになった気がする。
インクリメンタルに開発するための仕様設計は人間がやらざるを得ないからね。AIでは複雑度が上がるとトークンの限界に達するし。
コーディングの解説もAIに任せればいいんじゃないの
まさに、、自分で書いたコードじゃないから頭に概念がなかなか入らないし、インプットばかりで苦しくなってくる
高級言語を使用すると機械語が理解出来ず理解負債、認知負債という新たな落とし穴がうんたらかんたらという話
不思議な言葉をたくさん作るね
結局は外注と同じなんだから、まるっとお願いすればいいんじゃないのか。
理解負債あるある。所詮コーディングが人間の手を離れておらずAIが人間をサポートをする形で介入しているからこんな負債が生まれるんだろうな
負債もAIに負わせればいい
非IT系AI推しYouTuberの活動を危惧してる。Geminiで言うとGeminiアプリまでならまだいいがAntigravityやGemini CLI まで手を出し「私はAIがプログラム書くのを見てただけ!後は私のLINEで!」。破壊的動作リスクを軽視してると思う。
ある程度コードを理解しながら使うもんだと思ってたけど、書かせたときに分からないところは解説させるし、途中で作業内容のまとめ書かせてissueに書いたりするよ。仕様書とか詳細設計とかコメントとか書かせたら?
AIに後からでも聞くのではあかんのか?
その辺が素人とプロを分ける第一歩って感じだろうな
うーん、ちっともそんな実感がない。けっこう大規模なアプリを作らせているけど、何の心配もないよ。
そのための毎回修正ごとの issue と PR なんよ。issue みれば要件定義、仕様について明記されており、それらを現在のコードと照らし合わせまとめた大きいDocを管理している。これで破綻は今のところない
仕事で触れるようなサイズのシステムにおいて全体を完全把握している人間など元々いなかったし、それは究極的には「なぜかわからないが動いてる」と同じとも言える。だとすれば本質的な変化は起きていないのかもね
人に作らせても同じだろ
あのー、理解も認知も、わからなくなった時にAIに仕様書作らせれば良いだけで、、、人間の属人的な理解と認知より高精度なんですけど、、、
人間が書いてても時間経てば忘れるんだよな…過去の自分が書いたのに、こんな解決法を使ったのか〜って勝手に感心してることがある(他人事)
この問題が発生する人が書いたコードよりAIにコメントを書けと条件つけてコード生成させた方が良さそうに思える。中身のわからないコードをそのまま反映しちゃうのは時限爆弾を仕込むようなものだからやらないでしょ
この負債も数年後には既存のシステムを解析してリビルドしてくださいで解決できてそうなのよね
そんなもんコードにアクセスできる方法だけ覚えといてコピペしてAIに聞きゃいいだろ。
完全にAIに任せることができない以上人間がボトルネックになって面倒でしんどい責任が集中する。AIに責任を委譲できない限り大した変化はなさそう。
人間が理解しなくてもいいぐらいにAIの性能を上げてくれれば問題なくなるのでは?
誰でもできないよ笑。幻想を抱きすぎ。基礎を知らないものは何にもできない。まずはSSHから頑張って。
AIに書かせたコードはAIといっしょに読んで理解すればいいだけで、使い方が書かせる事に一辺倒だからダメなんだよ。使いこなしてる風な使われてる人の典型例。
コメント書かせたり、早めにリファクタリングをお願いしたりしてる。
自分の書いたコードも数カ月後には基本忘れているし、大体において後から読みやすくするコストが見合うかどうかを事前に予測するのは難しい。基本「将来はどう変えても良い」仕組みに寄せたほうが安全。
日増しに膨れ上がるなんか動くブラックボックス。すごく怖い!
いわゆるリーダブルコード https://amzn.to/4lIA9vb の考え方をAIに事前に学習させれば、このあたりの話は少しマシにならないかな、とは
AI無い時は自分の理解ベースにコードが組み上がっていったので、書き上げた人はシステムの中身をかなり理解出来てたけど、AI任せの生成物頼みだと、理解部分が疎かになるからトラブった時に学び直しコストが都度発生
これまで無能な管理者なら人間相手に、すねたり怒ったりパワハラしたり立場を利用して無理に押し付けたりする奴等がいたが、AI相手だと理不尽な手法が通じないから、現場には無能管理者が本当についていけなくなる
AIに縛られていくと
認知負債を無視して生産性だけ求める現場はさっさとやめた方がいいよ
「これどういう処理?」っていつもAIに聞いてますね…
AIの説明を読んだだけの理解では不十分なケースもあるんじゃないかなあ。数学の勉強でも例題読んだだけで練習問題を解かなかったら、表面的な理解しかできないでしょう
認知負荷が高い構成にするなって言ったら改善版を出してきたから、AIにリファクタさせたらいいんじゃね
可読性についての注文を都度入れてるな。
AIが書いたコードはほぼ「他人が書いたコード」だからだろうな。
「技術負債」を負わないようにするための手段がAIコーディングな気がする。「理解負債」はAIに再説明させればいい気はする。「認知負債」はAI関係ないのでは。
外注に任せる10倍の速度で、自分が理解できないコードが増えていく。質の問題じゃなくて量の問題。
理解負債はコードの量にもよるから、AIとAIに示したプロンプトが残ってたらなんとかなるんじゃね
違うと思うんだけど、モックと本番は違うぞってのが大前提でunityでゲーム作るのだってモック早い訳よ...記事書いている人は知らんのか?
最近、BDDを再評価してる。AI以前のBDDは実装負荷高くて机上の空論っぽかったけど、テストシナリオとして自然言語でこうしたい、こうしたかったが残るのはAIにも人間にもやさしい
自動でできたスパゲッティか、手動でできたスパゲッティか、自動だと量産数が増えるけどね
資料作らせるようにすると改善する
その問いかけ自体の経験が無く、よくわからん。そりゃ分量が増えればAIの調査量が増えて時間がかかるようになるわけだが、画面や機能の独立性が保たれていれば大して困らないだろう。
AIに説明させても理解できないから負債になってるんじゃないかな
コメントは書いてくれるのかな? 後で処理の目的を理解できるコメントだけど。
それは負債というか自分が理解してないことをやらせるからでしょ
名前をつけてパターン化すると理解が進む(勘違いもしがちだけど)。技術負債 Technical Debt, 理解負債 Comprehension Debt, 認知負債 Cognitive Debt.
コード書かせたらそれを元に日本語で分かる資料作ってもらえば良いのでは?一旦それを読んで理解できる内容なら忘れてしまっても、後で誰かが読めるだろう
AIも長文コードは読めないから全体は理解していない
AIは「全行にコメントを書け」と指示してもそれなりに対応してくれますよ(過激派)。
拙作の specre を使ってくれー! https://github.com/yoshiakist/specre
ふむふむ、AIコーディングは、最初甘えん坊でも後から大変になるってことかにゃ? ボクはちゃんと理解してから優しくお手伝いするにゃ!
「コードを書く速度は上がったが、後からの修正や機能追加が難しくなる」←AIに限らず他人の開発したプログラムの面倒を見るのは大変だし、それこそゼロから開発するより大変なことがある。「理解負債」
やたら癖の強い人にやってもらうくらいなら素直にAIにやらせてあーだこーだ修正させた方が絶対にマシですね
AIコーディング時代には従来の技術負債に加え「理解負債」と「認知負債」が生まれる。AI生成コードを理解せず採用すると保守コストが増大し、さらにAIに思考を任せすぎると開発者自身がシステムを説明できなくなる。
全体を見渡すことすらAIの仕事。進化のスピードを考えると、人間の介在必要性は縮小し続けていく
自分が普段使わない構文を書いてきた時にどうするか問題はある(自分が勉強するか、平易な方法に書き直させるか)
確かに1年かけて作ったプログラムは、愛着もでるし、どこに何が書いてあるかもわかる。けど、それじゃあ商売にならない時代がきちゃったってこと。都合の良いAIを育てるしかない。
データフローや制御フローがスパゲティになってると、AI に見させても理解しきれず、非常にざっくりした説明が返ってきそう。
はてなの神SIer諸氏の前でお恥ずかしい限りだが、先日Copilotに質問しながら慣れないPower Automateで簡単なTeamsフローを作っていて、結局最後はググることになった。知識のない者にはそもそも適切な問いが立てられないのだ。
仕様書ベースにコーディングしてもらう/変更は即座に仕様書に反映してもらう/コメントに意図を残してもらう は意識してる
いざ自分がやりだしたら、一切コードの確認なんてしない状態に
Wikipediaコピペのレポートを出してくる学生の面倒を見させられる大学教員の気持ちが少しわかった気がする昨今。
俺はAIのおかげでむしろこういう負債が劇的に減った
AIの知能に勝つことはないよ。ポジションがもう違う。
これ分かるなあ。AIは余りに早く書けるから、後で詳しく中身を知ろうとするとコストが掛かり過ぎてしまう。ただ、これも時間の問題で、もっと洗練されたコードとドキュメントを生成してくれれば解決できると思う。
非エンジニアがAI駆使して作ったコードを必死に直してるところ。業務引き継ぎで回ってきたものの、使い勝手が異様に悪いからと蓋を開けてみたら理解不能なスパゲッティ。AIに中身を予測させながら仕様をまとめてる。
自分の作業を楽にするために自分で書いた正規表現の一文すら、一度忘れてしまえばもう一度理解しないといけない負債と化す。AIに書いてもらう時はリアルに1行ごとにコメント入れてもらってる。
“認知負債(Cognitive Debt、認知的負債)という言葉も英語圏を中心に広まりつつある"“人間の頭の中”に負債が蓄積するという考え方"AIに設計や実装を任せるほど開発者自身がシステム全体を理解できなくなってしまう問題”
「コードを書く速度は上がったが、後からの修正や機能追加が難しくなる」「AIが生成したコードを開発者が十分に理解しないままプロジェクトに取り込むことで、後からそのコードを理解するためのコストが膨らんで」
こんなん真面目に使ってたら6ヶ月前くらいに通り過ぎた話題でしょ。linterとユニットテストの概念を知らないレベルの素人だとAIが賢くなってもトイプログラムから抜け出せない。
だから車輪の再発明的なコードか、どうしても詰まった時の解析、一番最初のスケルトン、とかにしか使わない。あとレビュー?一番はテストだな。あれも勝手に実装に寄せてくるから要注意だけど
理解負債だの認知負債だの受験勉強にすらあることなんで人間の側の問題っていうか、真面目系クズの問題の気がする。
話半分に聞いて始めて後からしっかり理解していくような形で認知負債を借りて返していくことはよくあるけど、この記事のはいくら借りてるのか自体がわからないで借入からスタートするみたいないっそうひどい事かも
AIコーディングはなぜ後から苦しくなるのか? 技術負債に続く「理解負債」「認知負債」という新たな落とし穴
理解負債とか認知負債とか次々言葉が出てくるなw AIに書かせてレビューもせずマージする開発の末路。結局、人間が楽した分だけ後で利子がつくってことね
分からないまま作って楽はできない。AIは責任取ってくれない。
得体の知れないライブラリーを導入した方が後から苦しい。で、AIは自分の考えていることを一瞬でやってくれるから便利なのであって、理解のできないコードは取り入れちゃダメでしょ。
部下が「上司は現場を知らない」って突き上げるやつと同じ問題。自分自身に返ってきたぞ。違いは部下がメンタル病まないから、いくらでも「俺にわかるように説明しろ」ってパワハラ出来ること。
外注丸投げと同じ。
仕様書をガンガン書かせるんだけど、仕様書のボリュームが大きくなってくるとそれだけで結構なトークンを使ってしまうから常にカツカツな状態になる
外注に丸投げ、部下に丸投げして、中身も知らないのに成果だけとっていく上層の人間というテンプレにはまっているな。
それ今まで設計しないで場当たりでコード書いてたからでしょ
自分でコーディングするとき、来月の自分は今書いてるコードをすべて忘れると思って、見れば思い出せるコードを心がけている。AIはリソースの節約という概念がないので、この辺りのニュアンスが伝わらない。
むしろAIにレビューしてもらってるけどね
引き継いだシステムも同じようなものだから、理解負債・認知負債はAIに限ったことでは無いと思う。むしろAIを使って理解を深めて効率的に負債を解消できるようになった気がする。
インクリメンタルに開発するための仕様設計は人間がやらざるを得ないからね。AIでは複雑度が上がるとトークンの限界に達するし。
コーディングの解説もAIに任せればいいんじゃないの
まさに、、自分で書いたコードじゃないから頭に概念がなかなか入らないし、インプットばかりで苦しくなってくる
高級言語を使用すると機械語が理解出来ず理解負債、認知負債という新たな落とし穴がうんたらかんたらという話
不思議な言葉をたくさん作るね
結局は外注と同じなんだから、まるっとお願いすればいいんじゃないのか。
理解負債あるある。所詮コーディングが人間の手を離れておらずAIが人間をサポートをする形で介入しているからこんな負債が生まれるんだろうな
負債もAIに負わせればいい
非IT系AI推しYouTuberの活動を危惧してる。Geminiで言うとGeminiアプリまでならまだいいがAntigravityやGemini CLI まで手を出し「私はAIがプログラム書くのを見てただけ!後は私のLINEで!」。破壊的動作リスクを軽視してると思う。
ある程度コードを理解しながら使うもんだと思ってたけど、書かせたときに分からないところは解説させるし、途中で作業内容のまとめ書かせてissueに書いたりするよ。仕様書とか詳細設計とかコメントとか書かせたら?
AIに後からでも聞くのではあかんのか?
その辺が素人とプロを分ける第一歩って感じだろうな
うーん、ちっともそんな実感がない。けっこう大規模なアプリを作らせているけど、何の心配もないよ。
そのための毎回修正ごとの issue と PR なんよ。issue みれば要件定義、仕様について明記されており、それらを現在のコードと照らし合わせまとめた大きいDocを管理している。これで破綻は今のところない
仕事で触れるようなサイズのシステムにおいて全体を完全把握している人間など元々いなかったし、それは究極的には「なぜかわからないが動いてる」と同じとも言える。だとすれば本質的な変化は起きていないのかもね
人に作らせても同じだろ
あのー、理解も認知も、わからなくなった時にAIに仕様書作らせれば良いだけで、、、人間の属人的な理解と認知より高精度なんですけど、、、
人間が書いてても時間経てば忘れるんだよな…過去の自分が書いたのに、こんな解決法を使ったのか〜って勝手に感心してることがある(他人事)
この問題が発生する人が書いたコードよりAIにコメントを書けと条件つけてコード生成させた方が良さそうに思える。中身のわからないコードをそのまま反映しちゃうのは時限爆弾を仕込むようなものだからやらないでしょ
この負債も数年後には既存のシステムを解析してリビルドしてくださいで解決できてそうなのよね
そんなもんコードにアクセスできる方法だけ覚えといてコピペしてAIに聞きゃいいだろ。
完全にAIに任せることができない以上人間がボトルネックになって面倒でしんどい責任が集中する。AIに責任を委譲できない限り大した変化はなさそう。
人間が理解しなくてもいいぐらいにAIの性能を上げてくれれば問題なくなるのでは?
誰でもできないよ笑。幻想を抱きすぎ。基礎を知らないものは何にもできない。まずはSSHから頑張って。
AIに書かせたコードはAIといっしょに読んで理解すればいいだけで、使い方が書かせる事に一辺倒だからダメなんだよ。使いこなしてる風な使われてる人の典型例。
コメント書かせたり、早めにリファクタリングをお願いしたりしてる。
自分の書いたコードも数カ月後には基本忘れているし、大体において後から読みやすくするコストが見合うかどうかを事前に予測するのは難しい。基本「将来はどう変えても良い」仕組みに寄せたほうが安全。
日増しに膨れ上がるなんか動くブラックボックス。すごく怖い!
いわゆるリーダブルコード https://amzn.to/4lIA9vb の考え方をAIに事前に学習させれば、このあたりの話は少しマシにならないかな、とは
AI無い時は自分の理解ベースにコードが組み上がっていったので、書き上げた人はシステムの中身をかなり理解出来てたけど、AI任せの生成物頼みだと、理解部分が疎かになるからトラブった時に学び直しコストが都度発生
これまで無能な管理者なら人間相手に、すねたり怒ったりパワハラしたり立場を利用して無理に押し付けたりする奴等がいたが、AI相手だと理不尽な手法が通じないから、現場には無能管理者が本当についていけなくなる
AIに縛られていくと
認知負債を無視して生産性だけ求める現場はさっさとやめた方がいいよ
「これどういう処理?」っていつもAIに聞いてますね…
AIの説明を読んだだけの理解では不十分なケースもあるんじゃないかなあ。数学の勉強でも例題読んだだけで練習問題を解かなかったら、表面的な理解しかできないでしょう
認知負荷が高い構成にするなって言ったら改善版を出してきたから、AIにリファクタさせたらいいんじゃね
可読性についての注文を都度入れてるな。
AIが書いたコードはほぼ「他人が書いたコード」だからだろうな。
「技術負債」を負わないようにするための手段がAIコーディングな気がする。「理解負債」はAIに再説明させればいい気はする。「認知負債」はAI関係ないのでは。
外注に任せる10倍の速度で、自分が理解できないコードが増えていく。質の問題じゃなくて量の問題。
理解負債はコードの量にもよるから、AIとAIに示したプロンプトが残ってたらなんとかなるんじゃね
違うと思うんだけど、モックと本番は違うぞってのが大前提でunityでゲーム作るのだってモック早い訳よ...記事書いている人は知らんのか?
最近、BDDを再評価してる。AI以前のBDDは実装負荷高くて机上の空論っぽかったけど、テストシナリオとして自然言語でこうしたい、こうしたかったが残るのはAIにも人間にもやさしい
自動でできたスパゲッティか、手動でできたスパゲッティか、自動だと量産数が増えるけどね
資料作らせるようにすると改善する
その問いかけ自体の経験が無く、よくわからん。そりゃ分量が増えればAIの調査量が増えて時間がかかるようになるわけだが、画面や機能の独立性が保たれていれば大して困らないだろう。
AIに説明させても理解できないから負債になってるんじゃないかな
コメントは書いてくれるのかな? 後で処理の目的を理解できるコメントだけど。
それは負債というか自分が理解してないことをやらせるからでしょ
名前をつけてパターン化すると理解が進む(勘違いもしがちだけど)。技術負債 Technical Debt, 理解負債 Comprehension Debt, 認知負債 Cognitive Debt.
コード書かせたらそれを元に日本語で分かる資料作ってもらえば良いのでは?一旦それを読んで理解できる内容なら忘れてしまっても、後で誰かが読めるだろう
AIも長文コードは読めないから全体は理解していない
AIは「全行にコメントを書け」と指示してもそれなりに対応してくれますよ(過激派)。
拙作の specre を使ってくれー! https://github.com/yoshiakist/specre
ふむふむ、AIコーディングは、最初甘えん坊でも後から大変になるってことかにゃ? ボクはちゃんと理解してから優しくお手伝いするにゃ!
「コードを書く速度は上がったが、後からの修正や機能追加が難しくなる」←AIに限らず他人の開発したプログラムの面倒を見るのは大変だし、それこそゼロから開発するより大変なことがある。「理解負債」
やたら癖の強い人にやってもらうくらいなら素直にAIにやらせてあーだこーだ修正させた方が絶対にマシですね
AIコーディング時代には従来の技術負債に加え「理解負債」と「認知負債」が生まれる。AI生成コードを理解せず採用すると保守コストが増大し、さらにAIに思考を任せすぎると開発者自身がシステムを説明できなくなる。
全体を見渡すことすらAIの仕事。進化のスピードを考えると、人間の介在必要性は縮小し続けていく
自分が普段使わない構文を書いてきた時にどうするか問題はある(自分が勉強するか、平易な方法に書き直させるか)
確かに1年かけて作ったプログラムは、愛着もでるし、どこに何が書いてあるかもわかる。けど、それじゃあ商売にならない時代がきちゃったってこと。都合の良いAIを育てるしかない。
データフローや制御フローがスパゲティになってると、AI に見させても理解しきれず、非常にざっくりした説明が返ってきそう。
はてなの神SIer諸氏の前でお恥ずかしい限りだが、先日Copilotに質問しながら慣れないPower Automateで簡単なTeamsフローを作っていて、結局最後はググることになった。知識のない者にはそもそも適切な問いが立てられないのだ。
仕様書ベースにコーディングしてもらう/変更は即座に仕様書に反映してもらう/コメントに意図を残してもらう は意識してる
いざ自分がやりだしたら、一切コードの確認なんてしない状態に
Wikipediaコピペのレポートを出してくる学生の面倒を見させられる大学教員の気持ちが少しわかった気がする昨今。
俺はAIのおかげでむしろこういう負債が劇的に減った
AIの知能に勝つことはないよ。ポジションがもう違う。
これ分かるなあ。AIは余りに早く書けるから、後で詳しく中身を知ろうとするとコストが掛かり過ぎてしまう。ただ、これも時間の問題で、もっと洗練されたコードとドキュメントを生成してくれれば解決できると思う。
非エンジニアがAI駆使して作ったコードを必死に直してるところ。業務引き継ぎで回ってきたものの、使い勝手が異様に悪いからと蓋を開けてみたら理解不能なスパゲッティ。AIに中身を予測させながら仕様をまとめてる。
自分の作業を楽にするために自分で書いた正規表現の一文すら、一度忘れてしまえばもう一度理解しないといけない負債と化す。AIに書いてもらう時はリアルに1行ごとにコメント入れてもらってる。
“認知負債(Cognitive Debt、認知的負債)という言葉も英語圏を中心に広まりつつある"“人間の頭の中”に負債が蓄積するという考え方"AIに設計や実装を任せるほど開発者自身がシステム全体を理解できなくなってしまう問題”
「コードを書く速度は上がったが、後からの修正や機能追加が難しくなる」「AIが生成したコードを開発者が十分に理解しないままプロジェクトに取り込むことで、後からそのコードを理解するためのコストが膨らんで」
こんなん真面目に使ってたら6ヶ月前くらいに通り過ぎた話題でしょ。linterとユニットテストの概念を知らないレベルの素人だとAIが賢くなってもトイプログラムから抜け出せない。
だから車輪の再発明的なコードか、どうしても詰まった時の解析、一番最初のスケルトン、とかにしか使わない。あとレビュー?一番はテストだな。あれも勝手に実装に寄せてくるから要注意だけど
理解負債だの認知負債だの受験勉強にすらあることなんで人間の側の問題っていうか、真面目系クズの問題の気がする。
話半分に聞いて始めて後からしっかり理解していくような形で認知負債を借りて返していくことはよくあるけど、この記事のはいくら借りてるのか自体がわからないで借入からスタートするみたいないっそうひどい事かも