Sprint Planning 的 Checkpoint
好的 Sprint Planning:
- 每個 ticket 有明確的 Acceptance Criteria(AC)——不是「完成登入功能」,而是「用戶可以用 email + 密碼登入;錯誤時顯示明確訊息;連續失敗 5 次鎖定 15 分鐘」
- Story point 不超過歷史 velocity 的 80%(留緩衝)
- 有 dependency 的 ticket 已確認對方 team 的時程
- Tech debt 和 bug 占 20-30%(不能全是新功能)
- 本次 sprint 的 goal 一句話說得出來
不健康的訊號:Sprint 結束時 50% 以上 ticket 被 carry over;每次 planning 都在問「這要幾點」而不是「這要解什麼問題」;ticket 沒有 AC 就開始做。
PR Review 的 Checkpoint
好的 PR:
- PR description 說明「做了什麼」和「為什麼這樣做」,不只是 commit list
- 單一 concern——不要把 refactor 和 feature 混在一起
- 有 test 或說明為什麼不需要
- 大 PR(>400 行)提前溝通或拆分
好的 Reviewer:
- 看「設計是否合理」,不只是 style(style 讓 linter 管)
- 提問而不是指令:「這裡用 X 是因為什麼考量?我在想 Y 會不會更好因為…」
- 分辨 blocker(必改)和 suggestion(可選)——明確標示
- 24 小時內給 review(不是等到有空才想到)
不健康的訊號:PR open 了三天沒人 review;review 只有「LGTM」沒有實質回饋;每個 PR 都有幾十個 style comment 但沒人看設計。
Retrospective 的 Checkpoint
Retro 的目的是「找到可以改的事,然後真的去改」——不是情緒宣洩,也不是例行公事的表演。
有效的 Retro:
- 上次 action item 的 follow-up:做了沒、有沒有效
- 具體的問題陳述:「deploy 流程太慢」→ 「每次 deploy 等 20 分鐘,一天 deploy 10 次,每週浪費 16 小時」
- 每個 action item 有 owner 和 deadline,不是「大家注意一下」
- Facilitator 和 team 分開——team lead 做 facilitator 會讓人不敢說
不健康的訊號:每次 retro 都說同樣的問題但什麼都沒變;action item 到下次 retro 都沒人追;只有正面 feedback,沒有問題被說出來。
On-call Rotation 的 Checkpoint
On-call 不應該是「某幾個人的永久宿命」,也不應該是「半夜每週都被吵」。
好的 On-call 安排:
- 輪值表公開,每人知道自己什麼時候值班
- 每個人上 on-call 前有 shadowing 期(先跟著有經驗的人)
- Alert 有 runbook:每個 alert 連到一份「發生了什麼、要怎麼處理、升級路徑」的文件
- Escalation path 清楚:處理不了的要找誰、找不到的要找誰
- On-call 交接有文件:這週有什麼未解決的問題、什麼事情要特別注意
不健康的訊號:on-call 每週有 5+ 次半夜叫醒;alert 沒有 runbook 要自己 google;一個人連續 on-call 好幾週;page 了但沒有 escalation 機制。
流程的原則
流程要服務工程師,不是控制工程師。 如果一個流程讓人花時間在填表單而不是解問題,這個流程需要被重新審視。
好的流程有三個特徵:清楚的期望(大家知道應該做什麼)、即時的回饋(做了有沒有用立刻知道)、低的維護成本(不需要有人不斷推動)。