生命週期、指標與四種反模式

一句話總結:MVP 階段追求完美是浪費,Maturity 階段不追求品質是自殺。用對指標衡量、避開四種反模式,你的產品才能活得久。

結論先講:在 MVP 階段不需要 100% 測試覆蓋率,在 Maturity 階段不能沒有 SLO。品質標準是動態的,不是固定的。而且,當指標變成目標,它就不再是好指標——Goodhart’s Law。

產品生命週期:每個階段的品質標準不同

產品不是靜態的。它會經歷 MVP → Growth → Maturity → Sunset,而每個階段「品質」的定義完全不同。

面向MVP 階段Growth 階段Maturity 階段
核心目標驗證 PMF快速獲取用戶穩定營運
技術品質能跑就好解決效能瓶頸全面監控 + SLO
測試核心流程 E2E補 integration test全面覆蓋
文件README 就好補 API docs、ADR完整文件體系
技術債容忍度高(有意識地承擔)中(邊做邊還)低(嚴格管控)
部署頻率隨時每天多次有節奏地(每週)
團隊規模2-5 人5-20 人20+ 人

不要用 Maturity 階段的標準來要求 MVP。三人團隊花一個月建完整的 observability 系統,然後產品還沒驗證有人要用——這是資源的極大浪費。反過來,百人團隊的成熟產品還在用「能跑就好」的標準——那是在玩火。

DORA Metrics:最被認可的交付效能指標

DORA 的四個指標是業界衡量軟體交付效能的標準:

指標EliteHighMediumLow
部署頻率一天多次每天~每週每週~每月每月~每半年
Lead Time< 1 天1 天~1 週1 週~1 月1-6 個月
MTTR< 1 小時< 1 天< 1 週> 6 個月
Change Failure Rate0-15%16-30%16-30%> 45%

DORA 研究最反直覺的發現:部署頻率高的團隊,失敗率反而更低。 這打破了「部署越多越容易出事」的想法。原因很簡單:頻繁部署 = 每次變更量小 = 問題更容易發現和定位 = 回滾風險更低。

SLI / SLO / SLA:怎麼量化「夠不夠好」

概念白話翻譯誰設定
SLI(Service Level Indicator)量化服務品質的指標工程團隊
SLO(Service Level Objective)那個指標的目標值工程 + 產品
SLA(Service Level Agreement)對外承諾,達不到要賠錢業務 + 法務

設定 SLO 的建議:從使用者體驗出發(不是技術限制)、不要設太高(99.999% 的代價是巨大的)、留 Error Budget(99.9% 的 SLO 意味著每月有 43 分鐘可以用來部署和實驗)、每季 review。

大多數產品 99.9% 的可用性就夠了。你真的需要 99.99% 嗎?每月只能停 4.3 分鐘,你連一次正常的部署都不能做。

NPS 和客服工單:使用者怎麼想

NPS(Net Promoter Score) 問一個問題:「你會推薦這個產品嗎?0-10 分。」9-10 是推薦者,7-8 是被動者,0-6 是批評者。NPS = 推薦者% - 批評者%。

NPS評價
> 70世界級
50-70優秀
30-50良好
< 0有嚴重問題

客服工單量 是另一面鏡子。工單類型反映了產品問題:「不知道怎麼用」= UX 問題、「功能壞了」= 可靠性問題、「太慢」= 效能問題、「資料不見」= 資料可靠性問題。每 1000 活躍使用者的月工單數如果持續上升,產品品質在惡化。

四種反模式

反模式一:技術完美主義

追求 100% 覆蓋率但產品還沒有使用者。花三週設計完美的 DB schema 但需求還在變。重構已經運作良好的程式碼只因為它「不夠優雅」。

自我檢測: 如果花在 refactoring 上的時間超過交付使用者價值的時間,你中了。

解方:設明確的品質基線,用「使用者會不會受影響」來判斷優先級。Perfect is the enemy of good。

反模式二:快速交付陷阱

每週 ship 5 個新功能,但 bug 增長速度比功能還快。沒測試、沒 code review、沒文件。「之後會回來修」——才怪

自我檢測: 如果修 bug 的時間超過做新功能的時間,你中了。

解方:設品質門檻(每個 PR 必須 review + 測試)、每個 sprint 留 20% 給技術債、追蹤「修 bug 時間佔比」超過 30% 要亮紅燈。

反模式三:指標遊戲

為了覆蓋率寫 expect(true).toBe(true)。為了降低 MTTR 調低告警嚴重等級——不告警就沒有 incident!為了 DAU 用煩人的 push notification 拉人回來。

Goodhart’s Law:當指標變成目標,它就不再是好指標。

自我檢測: 如果所有指標都在改善但使用者回饋沒有變好,你中了。

解方:用多個互相制衡的指標(同時看部署頻率和 failure rate)、關注趨勢不是絕對數字、鼓勵質疑指標的文化。

反模式四:英雄文化

每次出問題都是同一個人半夜起來修。某個「10x developer」寫了系統最核心的部分,只有他看得懂。「沒有 XXX 我們不行。」

自我檢測: 如果某個人休假時大家會特別緊張,你中了。

解方:英雄的知識文件化、強制 code review(包括英雄的程式碼)、on-call rotation 每個人都要參與。不要獎勵「救火」,要獎勵「防火」。

務實建議:平衡而非最大化

沒有產品能在所有維度做到完美。關鍵是在你的情境下做對的 trade-off:

情境優先的維度可以暫時犧牲的
新創 MVP商業價值、UX可維護性
企業軟體可靠性、安全性部署速度
消費者 AppUX、效能內部程式碼品質
金融系統安全性、可靠性開發速度

每次做技術決策時問自己:影響範圍多大?改動成本會隨時間增加嗎?使用者會受影響嗎?影響範圍大且改動成本會增加的事情——現在就做好。影響範圍小且成本不變的——之後再做,Good enough for now。

系列總結

好產品是在特定階段、特定資源限制下,對五個維度做出最適當的平衡:

  • 使用者體驗:好不好用
  • 技術品質:效能、可靠性、安全性
  • 可維護性:能不能持續進化
  • 商業價值:有沒有人要
  • 團隊與流程:能不能持續交付

最終標準只有一個:在使用者需要的時候,穩定地、可靠地、愉快地為他們解決問題。

系列文章:

延伸閱讀:

「好產品的標準只有一個——使用者需要你的時候你在,使用者不需要你的時候你不煩。」