サイコロを振ってソフトウェアを作る:バイブコーディングの質的研究 において、Chou らは「サイコロを振る(rolling the dice)」という表現を、新たな情報を加えずに似た意図のプロンプトを出し直す行為に用いている。彼らのプロンプト分析では、あるプロンプトが単純な言い換え、同一のエラーメッセージのコピー、あるいはそれ以上の説明のない出力の却下によって以前の意図を繰り返している場合に、それは「サイコロを振る」ものとして — 「方法冗長(method-redundant)」とコード化されて — 数えられる。新たな詳細や仮説を持ち込むプロンプトは、同じ目標を追っていても該当しない。この比喩は、彼らが調査したバイブコーダーたちの声を反映している。彼らは、決定論的であるはずのデバッグや機能の改良といったタスクが、「サイコロを投げる(throwing a dice)」ように確率的に感じられると語っていた。
用法
この用語は バイブコーディング の研究に属するものであり、著者らはこれを、コーダーがどれだけ AI に依存しているか、そしてコードについてどれだけ知っているかと結びつけている。ライブ配信された 7 つのセッションの分析では、AI への依存度が最も高く、関連する技術的背景が乏しい 2 人のコーダーがプロンプトの 40% 近くを「サイコロを振る」ことに費やしており、しばしば説明を加えずにエラーメッセージを貼り直していた。一方、より頻繁にコードを検査するコーダーや、関連する背景知識を活かすコーダーは、たいてい 20% を下回っていた。同じ意図を繰り返したあるコーダーは、そのたびに仮説や技術的な具体情報を加えることで方法冗長を避けていた。著者らはこれを、成果物についてのコーダーのメンタルモデルがプロンプトの戦略を形作るという彼らの知見と結びつけている。
研究に参加した実践者たちの間でも、この捉え方について意見は一致していなかった。ある実践者は AI による確率的な変更を「ビジョンクエスト」と表現し、バージョン管理でリセットしてもう一度サイコロを振ることを勧めた。別の実践者は画像生成との類比を退けた。画像生成で振り直しがうまくいくのは多くの出力が問題に適合するからであり、プログラミングでは 1 ピクセルずれただけでもバグになる、というのがその論拠である。著者らが観察した、確率的な変更を抑え込むための安全策は、アンドゥ、バージョン管理、小さな段階的変更、自動テスト、リンターであった。