「以終為始」是一種反直覺的思維方式。我們習慣的思維模式是線性而順序的,第一步做完做第二步。
但高效工作需要我們先想清楚結果是什麼樣子,再倒推該做什麼。
為什麼大多數人不這麼做#
幾十萬年的演化留給我們短視的行為和思考習慣,因為這樣最節省能量。
把目光放長遠需要額外消耗能量,所以「以終為始」對大多數人來說並不自然。
許多人聽到別人要做的功能,就開始腦補接下來的一切,導致付出努力毫無意義。
兩次創造#
任何事物都要經過兩次創造:
- 第一次創造(Mental/First Creation):在頭腦中的創造,智力上的構想
- 第二次創造(Physical/Second Creation):付諸實踐,實際的構建
第二次創造的成本很高。我們應該在第一次創造上多下功夫,將相關各方的「集體想象」統一起來。
DoD:完成的定義#
DoD(Definition of Done)是行業最佳實踐,用來解決軟體開發中常見的「完成」理解偏差問題。
什麼是 DoD#
在開始工作前,團隊先制定「完成」的標準。例如:
特性開發完成:
- 經過需求澄清、功能設計、編寫程式碼、單元測試
- 通過測試人員的驗收
- 程式碼處於可部署狀態
- 相關文件編寫完畢
開發完成:
- 編寫好功能程式碼
- 編寫好單元測試程式碼
- 編寫好整合測試程式碼
- 測試通過
- 程式碼通過風格檢查、覆蓋率檢查
DoD 的特點#
- 可檢查的清單:檢查項應該是實際可檢查的
- 只有兩種狀態:做完或沒做完,沒有「80%完成」
- 彙報機制:團隊成員間彼此確認的方式
用指標衡量你想改善的事#
無法衡量的事,就無法改善。沒有量測,你只能靠直覺前進,也無從知道直覺是否正確。
定義 DoD 解決了「做完沒」,而指標解決了「做得好不好、有沒有進步」。一個好的頂層指標能帶來四種價值:聚焦正確目標、防止回退、持續推進、衡量槓桿。
慎選指標:它會塑造行為#
指標有強大的引導作用,些微差異就會導致巨大的行為差異。要避免「虛榮指標」誘發錯誤動機:
| 領域 | 虛榮指標(看起來忙) | 真實指標(真有價值) | 行為轉向 |
|---|---|---|---|
| 人力管理 | 工時 | 每週產出與影響力 | 從演戲加班到解決問題 |
| 內容點擊 | 單純點擊數 | 點進後停留夠久的「長點擊」 | 從標題黨到深度內容 |
| 系統效能 | 平均回應時間 | P95 / P99 尾端延遲 | 從優化平均到消滅長尾 |
| 品質控管 | 修了幾個 Bug | 還有幾個未解 Bug | 從刷量到源頭把關 |
| 用戶成長 | 累計註冊數 | 週成長率 / 留存 | 從拉新到留存 |
選指標的三個原則:最大化影響力(若只能挑一個長期最大化的數字會是什麼)、可採取行動(它的變化能被團隊的努力解釋)、既敏感又穩健(能快速反映變化,又不被外部雜訊淹沒)。
有錯誤的資料比沒有資料更糟糕——你會自信滿滿地做出錯誤決策。看到不對勁的數字,先懷疑是 Bug 或解讀錯誤,再下結論。
實戰指南#
| 情境 | 行動指南 |
|---|---|
| 遇到事情 | 倒著想 |
| 做任何事之前 | 先定義完成的標準 |
| 接到需求任務 | 先定好驗收標準 |
| 工作開始前 | 推演一番 |
| 評估工作成效 | 問自己:我的工作可以用數字衡量嗎? |
| 想知道有沒有進步 | 先定義一個會塑造正確行為的指標 |
產品經理給你需求時該問什麼#
當產品經理交代一個功能特性時,運用「以終為始」的原則提問:
- 為什麼要做這個特性? 它會給使用者帶來怎樣的價值?
- 什麼樣的使用者會用到? 他們在什麼情境下使用?怎樣使用?
- 是否有其他手段達成目的? 是不是一定要開發一個系統?
- 上線後怎麼衡量有效性?
預設所有需求都不做,直到弄清楚為什麼要做這件事。擴大自己工作的上下文,別把自己局限在「程式設計師」的角色上。
亞馬遜的向後工作法#
亞馬遜開發產品的順序:
flowchart LR
A[📰 寫新聞稿] --> B[❓ 寫 FAQ]
B --> C[📖 寫使用者文件]
C --> D[💻 寫程式碼]
style A fill:#fff3e0,stroke:#ef6c00
style B fill:#fff3e0,stroke:#ef6c00
style C fill:#e3f2fd,stroke:#1565c0
style D fill:#e8f5e9,stroke:#2e7d32這就是「以終為始」的體現——先讓所有人看到結果的樣子,統一集體想象,再動手實現。