目的優先設計 是做什麼的?
任務與結束條件
在解決方案結構確定之前,針對一個實質上開放的產品或實現計畫決策,選擇最小且可防禦的方向。目的定義了成功為何物;而鎖定的用戶決策、權限、必要的安全性、回滾、所有權以及運營邊界,則限制了答案的範圍,這些從來都不是備選方案。
以一個暫定方向、能夠改變一個實際開放選擇的最小檢查、或一個阻礙性問題作為結束。如果沒有實質方向仍保持開放,簡短說明狀況,然後交接出去,不要發明替代方案。
決策合約
- 僅陳述能夠區分該選擇的「目的」及「可觀察的成功」。
- 將與決策相關的輸入分為:
LOCKED(鎖定)、EVIDENCE(證據)、ASSUMPTION(假設)以及OPEN(開放)。切勿將已被鎖定的決策、明確的約束條件、被拒絕的範圍、或已由證據確立的事項提升為OPEN。一次失敗的檢查只能改變一個未解決的機制,不能改變已鎖定的產品意義。 - 除非有明確的權威性,否則將現有實現、先例、預設值以及時效性視為證據。僅比較那些能夠實質改變意義、責任、持久狀態、政策、生命週期、公開契約、已接受的風險、或難以逆轉的耦合關係的替代方案。
- 選擇最小的充分方向。不要新增所有者、流程、回滾機制、平台、未來計畫、或開放決策,除非其來源或所選擇的方向要求如此。
交接
當當前權限不明時,先使用 source-owner-audit。將已確定的實現部分——程式碼流程、狀態、順序、介面、錯誤處理以及實現順序——交接給 structure-first。將已確定的表達與封裝交接給 tighten-docs。
返回一份精簡的決策交接內容:方向、能改變決策的依據、已鎖定的邊界、真實的假設或開放決策,以及接下來要進行的決定性檢查或所屬的工作流程。僅在該邊界會約束所選方向時,才將其包含在內。
最終縮減
僅審視你的回答所引入的範圍、承諾、假設以及開放決策。移除任何非目的、鎖定邊界、權限、證據或所選方向所要求的項目。僅在替代方案的產品意義與所需邊界完全相同時,才將其合併。
此步驟可以縮減,但絕對不能創造新範圍、承諾、假設、開放決策或交接事項,並且絕對不能重新打開 LOCKED 的意義。如果此步驟暴露了一個缺失的必要邊界,應將該邊界陳述為必要條件,而非可選項。保留那些為了安全性、回滾、所有權、運營或已證明的失敗模式所必需的複雜性。