還記得 Day 07 那個登入功能嗎?那篇談的是規格寫出來之後長什麼樣,這篇談的是規格還沒寫出來之前,怎麼把它問出來。
你只說了一句「幫我做會員登入頁」。AI 還不知道要用 Email 還是帳號登入、要不要做忘記密碼的流程、登入失敗顯示什麼、支不支援第三方登入——但它通常不會停下來問,而是替你做完決定。最後功能看似完成,方向卻和需求差了一大截。
與其等它猜錯再整份重寫,不如在 Prompt 裡先加一道開工前檢查:
在開始實作前,先列出需求中不清楚的地方、你目前做出的假設,以及需要我決定的選項;等我確認後再開始修改。
Day 09 說給室內設計師看參考照片能建立共同基準;這一步則是動工前先確認插座裝在哪裡,而不是等牆封起來才發現位置不對。
請 AI 把問題分成三類:缺少資訊、暫時假設、需要選擇。
前兩類最容易混在一起,但差別其實很清楚。
缺少資訊是你心裡有答案,只是還沒說——公司規定只能用 MySQL、設計稿放在某個連結裡。問一句就補上。
暫時假設是它自己先填的空:「目前沒有指定資料庫,因此暫定 PostgreSQL。」你要做的是確認或推翻。
需要選擇是連你都還沒決定:「手機版選單要抽屜式還是底部導航?」這種得你真的想一下再回答。
分開之後,處理速度差很多。前兩類幾分鐘就能清完,力氣留給第三類。
小細節讓它自己決定就好。真正要問出來的,是那些一旦猜錯就會大量返工、或動到架構和資料結構的決定。
實務上你還會遇到另一種狀況:AI 回你「沒有不清楚的地方」,然後照樣猜。假設一定存在,只是它預設不講。這時要求它「至少列出三個假設」,通常就逼得出來。
確認過的假設不要看完就關掉。它同時是兩件事:Day 07 說的完成定義,以及 Day 08 說的最新、不打架的 Context。
把它貼回對話,或存成專案裡的一份文件,下次開新對話還能直接接上。
好的 AI 協作,不是讓 AI 猜得更準,而是讓重要的事情根本不需要猜。
DeMarco, T. & Lister, T. (2003). Waltzing with Bears: Managing Risk on Software Projects. Dorset House。書中把 specification breakdown(規格崩解)列為軟體專案的五大核心風險之一:需求方與開發方始終沒有對齊,雙方卻都以為對齊了。
White, J. et al. (2023). A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT. arXiv:2302.11382(preprint)。這篇用的技巧在該目錄裡叫 Flipped Interaction Pattern:反過來讓模型問你問題,直到它有足夠資訊為止。