Git 版控
一個可回頭的狀態
Commit 是你願意為之負責的一個狀態。存檔只是怕當機。這兩件事不一樣。
存檔和留下狀態
存檔可以每分鐘發生,裡面可以是寫到一半的句子。留下一個狀態,是你說:到這裡,退貨規則是完整的,空白單號會停,示範走得完。別人可以回到這裡,而不會回到你的半句話。
所以 commit 不是「我按了儲存」。它是一個有名字的點。名字要讓下週的你知道這個點在決定什麼。好的名字像「空白單號改為轉人工」。壞的名字像「修改」「update」「先這樣」。壞名字的狀態技術上仍可回頭,人卻不敢回,因為不知道會回到什麼。
一個狀態最好只做一種決定
若一個狀態裡同時改了退貨天數、換了畫面顏色、又動了誰可以按,回頭時你無法只收回天數。PM 在請人改東西時,可以要求:這個狀態只解決我們剛剛說的那一個決定。其他想法另開一個狀態。
這跟你拆需求是同一塊肌肉。一次承諾一件事,驗收才有對象。一次承諾三件事,壞了也不知道是哪一件。
回頭是正常操作,不是承認失敗
團隊若把回頭當成丟臉,大家就會在壞的狀態上繼續補,補到不敢給客戶看。把回頭說成正常:我們留下過一個好的點,現在這個點沒有比它好,所以站回去。站回去之後,好的想法可以再試,但不要跟壞的混在同一個點裡。
你在會議上可以問:「上一個我們願意給客服用的狀態是哪一個?」問得出名字,版本就有在保護你們。問不出,代表最近的改動都只是存檔。
範例 · 兩個狀態,不要揉成一個
- 狀態甲:空白訂單編號不再產生退貨結論,一律轉人工。
- 狀態乙:畫面上把「轉人工」改成客服聽得懂的句子。
- 若乙寫壞了,可以只回到甲之前的畫面,規則仍是甲。揉在一起就做不到。
練習
為你假想的退貨頁寫三個狀態的名字。每個名字只包含一個決定。
把任何叫「修改」或「更新」的名字重寫到同事讀了知道會發生什麼。
完成的時候
- 你能區分存檔和一個可回頭的狀態。
- 你寫得出只含一個決定的狀態名字。