Release Tracker Expert 分析報告
執行摘要
本報告從流程有效性角度,對 Forest App 13 個流程節點的 V1 / V2 / V3 三版設計進行深度比較分析。核心發現如下:
-
Testing Notes(測試注意事項)的根本問題不是「有沒有欄位」,而是「有沒有責任鏈」。 V1 建了欄位,V2 識別了空欄問題,但只有 V3 設計了三方責任鏈(PO 建立 → RD 補充 → QA 雙重讀取)。即使是 V3,鏈的最脆弱環節在 RD 補充這一步——這是一個習慣養成問題,不是工具問題。
-
掉車 SOP 的可行性取決於第一次掉車時的文化氛圍,三個版本都沒有充分處理「第一次掉車的心理成本」。 V3 提供了最完整的 SOP,但 RD 收到「你的功能掉車了」這個訊息時的第一反應——焦慮、感覺失敗、想加班補救——是需要 RM 在 SOP 之外主動管理的文化問題。
-
iOS vs Android 通知可靠性差異是結構性差異,不是習慣問題。 V1 和 V2 試圖統一兩者,V3 正確地選擇顯性化差異、各自最佳化。統整初稿 V2 應繼承 V3 的這個決策,並在設計上明確承認:iOS 的短期手動方案不是妥協,是面對現實的工程決策。
-
Project 非同步完成問題是三版中最被低估的結構性風險。 V1 和 V2 完全沒有意識到這個問題,V3 識別並提出了「Waiting for Others」狀態和「個別 Issue 觸發」的解法,但解法的執行細節仍有未解決的回歸測試問題。
-
工具遷移(Slack + Notion → Linear)的文化阻力,三版都只在技術層面回應,沒有在人的層面設計緩衝。 真正的遷移阻力不是「不知道怎麼用 Linear」,而是「我的工作習慣要改變」。
節點逐一分析
節點 1:Planning
節點真正目的(超越描述層面的理解)
Planning 節點的存在,不只是為了「填表」,而是為了在功能真正開始前製造一個強制的上下文對齊時刻。沒有這個時刻,PO 以為 RD 知道的、RD 以為 QA 知道的、QA 以為 PO 知道的,全部都是假設。Planning 節點的成功標準不是「填滿所有欄位」,而是「所有下游角色看到這個 Issue 後不需要再問 PO 任何問題」。
三版機制比較
- V1:Issue Template 包含功能名稱、系統、負責工程師、Figma 連結、埋點清單。這是「結構化輸入」的方案——強迫 PO 把分散在 Figma / Confluence / Slack 的資訊整合到一個地方。
- V2:在 V1 基礎上加入「Design Decision 欄位(這個功能為什麼做)」選項,參考 Meta RFC 精神,讓重要功能在 Planning 完成後開放 RD / QA 留言提問。V2 的洞察是:欄位不夠,要有討論機制。
- V3:在 V1 的結構化輸入基礎上,新增「測試注意事項(PO 視角)」作為必填欄位,並強調這個欄位是後續整個 Testing Notes 生命週期的起點。V3 的洞察是:Planning 填的內容不只是給 RD 看的,更要給 QA 看的。
機制有效性評估
V1 的機制有效性受限於「PO 填寫品質參差不齊」這個人的問題。Template 有了,但填空白或填不實用內容的機率很高,特別是在時間壓力下。V1 沒有任何機制讓這個問題可見。
V2 的 Design Decision 欄位是個好想法,但「讓 RD / QA 留言提問」這個機制的前提是 RD / QA 有時間主動閱讀 Planning Issue。在實際工作中,RD 往往只在自己被分配到功能時才去看 Issue,而不是在 Planning 完成就主動查閱。
V3 的「測試注意事項作為必填欄位」是三版中最直接有效的設計——它把一個「QA 的需求」硬塞進 PO 的工作流程。但它的脆弱點是:必填欄位很容易變成「填了但沒用」(PO 在壓力下可能寫「請見 Figma」或「N/A」)。V3 的填寫率 KPI(月 2 目標 80%)是正確方向,但追蹤機制(RM 每週抽查)的人工成本較高。
跨版本洞察
三版都沒有真正解決的問題:Planning 品質的即時反饋機制。現在的設計是 PO 填完,下游角色在用到的時候才發現欄位有問題(QA 在展測項時才發現測試注意事項是空的)。如果有機制讓 QA 在 Planning 完成後的 24 小時內「驗收」Planning 品質,空欄問題可以更早被發現。
V3 的自動化 Comment(「提醒 PO:請填測試注意事項」)是好的方向,但它提醒的是 PO,而驗收品質的應該是 QA。V2 的「開放留言提問」機制和 V3 的「自動提醒」機制可以疊加:Planning 完成後 Automation 通知 QA「有新功能需要你確認測試注意事項是否足夠」,這讓 QA 成為 Planning 品質的主動驗收者。
給 Integration Expert 的建議
統整初稿 V2 在 Planning 節點應採用:V3 的測試注意事項必填欄位(帶填寫率 KPI)+ V2 的 QA 留言確認機制(但改為 Automation 主動通知 QA 去確認,而非被動等 QA 自己去看)。V2 的 Design Decision 欄位降為選填。
節點 2:RM 決定版本號與列車週期
節點真正目的
這個節點的存在,不是為了「給功能貼版本號標籤」,而是為了建立可預測的發布節奏。可預測性對下游有三個價值:QA 知道自己何時要完成測試(排程),MKT 知道何時要準備推廣材料,商業計劃知道何時可以宣告新功能給用戶。版本號是這個可預測性的語言。
三版機制比較
- V1:RM 填版本號,觸發通知機制。識別了「RM 無待分配功能提醒」的痛點,但沒有提出解法。並行觸發的邏輯(QA 展測項不等版本號)在 V1 後段補充說明了。
- V2:加入業界視角,提出 Feature Flag 作為長期方向(Month 4-6 評估)。識別了「Forest App 目前是列車等人」的問題,但沒有提出讓列車不等人的具體操作方法。
- V3:提出 Feature Freeze 機制——每個版本在 Planning 完成後,RM 定一個 Feature Freeze 日期,Freeze 前 3 天 David 整理「仍在 In Development」的 Issue 請 RM 評估掉車。這是三版中第一次把「列車不等人」從概念轉化為操作步驟的設計。
機制有效性評估
V1 的機制有效性受限於「RM 沒有被提醒,但要主動盤點」這個設計缺陷。在高強度工作中,主動盤點很容易被跳過。
V2 的 Feature Flag 方向正確但時間軸太遠(Month 4-6),而且 Feature Flag 的引入本身需要工程投入,不是 Linear 導入就能解決的。V2 在節點 2 的實際建議稀薄。
V3 的 Feature Freeze 機制是正確的,但有一個關鍵的執行問題:「誰來提醒 David 要去整理清單」?V3 說「Freeze 前 3 天 David 查詢」,但這個觸發點本身仍然依賴 David 記得去做,或者有一個 Calendar Alert / Linear Automation 提醒他。這個細節 V3 沒有明說。
另一個未解決的問題是:RM 評估掉車所需的資訊是什麼?「RM 掃描 In Development 的 Issue」這個動作,需要 RM 知道每個 Issue 的開發難度、剩餘工作量、RD 評估。如果 Linear 沒有 Story Points 或類似機制,RM 掃描看到的只是狀態,不是進度,這讓掉車評估流於直覺判斷。
跨版本洞察
V3 意外地解決了 V1 / V2 都沒有想到的問題:翻譯 Gate 與 Feature Freeze 的連動。V3 指出「翻譯 Freeze 日期應在 Feature Freeze 後 N 天」,這讓翻譯 Gate 從一個「功能完成後才去想的事」,變成在 Planning 階段就可以預先估計的時間點。這個設計讓 MKT 在 Planning 就知道大概的翻譯截止日期,可以提前安排人力。
給 Integration Expert 的建議
統整初稿 V2 在節點 2 應採用:V3 的 Feature Freeze 機制(Feature Freeze 日期作為 Milestone)+ 自動化提醒 David 執行「Freeze 前 3 天盤點」動作(而非仰賴 David 手動記得)。V2 的 Feature Flag 作為長期方向保留,不在 M1-3 範圍。版本號作為必要屬性的設計(V1 核心)完整繼承。
節點 3:QA 展測項
節點真正目的
這個節點的存在,不是為了「讓 QA 有工作做」,而是為了把測試設計前置到開發最高品質的時機——開發前。在功能開發前讓 QA 閱讀 Issue,QA 有機會在這個階段發現需求模糊、功能邊界不清、測試情境遺漏,而這些問題在開發後發現的修復成本遠高於在 Planning 階段。
三版機制比較
- V1:QA 在 Planning 完成後立即建立測項草稿,RM 確認版本號後合併為正式測試報告。識別了「測試報告手動合併容易出錯」的痛點。
- V2:繼承 V1,加入「Sub-issues 管測項」的 Linear 實作方向,並提出 Jimmy 的自動化測試覆蓋率追蹤。V2 對 QA 展測項節點本身的分析相對淺。
- V3:重新定義展測項為「兩階段品質閘」。第一階段(Planning 後):QA 依據功能描述 + AC + 測試注意事項建立測項;第二階段(Ready for Test 後):QA 重新讀取測試注意事項,因為 RD 在開發中可能已更新。這個設計的核心洞察是「測試注意事項是活的文件」。
機制有效性評估
V1 / V2 的展測項機制有一個根本問題:QA 展測項時閱讀的 Issue,和 Ready for Test 時的 Issue 內容可能不同。RD 在開發中會發現 PO Planning 時未預見的技術邊界,但這些資訊通常留在 PR Comment 而非 Issue,導致 QA 看不到。V3 的兩階段設計直接解決了這個問題。
V3 的兩階段設計的脆弱點在於:第二階段「Ready for Test 後重新讀取測試注意事項」,需要 QA 在繁忙的測試期間主動多做一個步驟。如果 Ready for Test 通知和「提醒 QA 重新讀取」的通知沒有設計好,QA 在高壓下很容易跳過第二階段。
跨版本洞察
V3 的「兩階段品質閘」解決了 V1 / V2 都沒有意識到的問題:展測項時的 Issue 狀態 ≠ Ready for Test 時的 Issue 狀態。但 V3 仍然沒有解決一個更基本的問題:如果 RD 不更新 Issue 的測試注意事項(只更新 PR Comment),兩階段設計的第二階段就失去意義。展測項機制的品質上限,取決於 RD 補充測試注意事項的習慣(節點 4 的問題)。
給 Integration Expert 的建議
統整初稿 V2 應採用 V3 的兩階段設計,但在第二階段加入一個強制確認點:Linear Automation 在 Issue 變更為 Ready for Test 時,自動在 Issue 新增 Comment(@QA 負責人)「提醒:這是你展測項後的第二次閱讀,請確認測試注意事項是否有 RD 補充的新內容」。這讓第二階段從「QA 要記得」變成「QA 被提醒了」。
節點 4:In Development
節點真正目的
開發節點的存在,不只是為了「讓 RD 寫 code」,而是為了透過兩道 Review 閘口,確保程式碼品質和功能行為在進入測試前已經過驗證。除此之外,這個節點也是 RD 對整個流程貢獻最多資訊的時刻——RD 在開發中對功能的理解比任何人都深,如何把這個理解有效傳遞給 QA,是這個節點的隱性任務。
三版機制比較
- V1:識別了兩道 Review 的目的(PR Review = 程式碼品質;PO/PD Review = 功能行為符合需求)。識別了 iOS 手動通知的問題。
- V2:加入 Branch 壽命限制(≤ 3 天)和 Trunk-Based Development 的長期方向。提出 Jimmy 自動化測試覆蓋率追蹤。V2 在開發流程優化上著墨較多,但 RD 對 QA 的資訊傳遞問題沒有解決。
- V3:首次明確提出「RD 在開發中補充測試注意事項」這個核心習慣,並給出具體的補充時機(開發中發現時 / PR 送出前最晚)和補充內容格式(技術邊界類 / 平台差異類 / 邊界條件類)。V3 還強調「補充到 Issue 欄位,不只是 PR Description」。
機制有效性評估
V3 的「RD 補充測試注意事項」是三版中最重要的新增設計之一,但它的有效性完全依賴 RD 的習慣養成。這是一個文化介入,不是工具介入。在習慣未養成前,這個機制對流程沒有貢獻。
習慣養成的困難點:RD 在開發高峰期心智資源有限,「補充測試注意事項」這件事對 RD 自己的工作沒有直接好處(只對 QA 有好處),因此在壓力下容易被跳過。
V2 的 Branch 壽命限制(≤ 3 天)是好的,但 Linear 本身無法追蹤 Branch 壽命,需要額外的 GitHub 工具或手動記錄,執行成本較高。
跨版本洞察
三版都沒有解決的問題:PR Review 的品質追蹤。「PR 通過 Review」作為閘口,只有通過 / 未通過兩種狀態,但「PR Review 的品質」(Reviewer 的評論品質、Review 花了多少時間、有沒有被有意義的評論)完全不可見。如果 PR Review 變成「例行蓋章」,閘口的意義就消失了。
V3 意外地透過「測試注意事項」機制部分回應了這個問題——如果 RD 在 PR 送出前更新 Issue 的測試注意事項,PR 的這個動作本身就強迫 RD 思考「QA 需要知道什麼」,某種程度上提升了開發者的品質意識。
給 Integration Expert 的建議
統整初稿 V2 在節點 4 應採用:V3 的「RD 補充測試注意事項」習慣(但需要在 Onboarding 文件中明確教學,並在第一個 Month 由 David 主動提醒追蹤)+ V2 的 Branch 壽命目標(月 2 目標 ≤ 5 天,月 3 目標 ≤ 3 天,但追蹤工具要明確指定)。兩道 Review 閘口完整繼承(V1 核心)。
節點 5:Ready for Test
節點真正目的
這個節點的存在,是為了製造一個清晰的、可信賴的信號:QA 可以開始測試了,而且測試所需的一切都已就位(版本可以安裝、知道測什麼、知道重點在哪裡)。信號的可信賴性比信號的形式更重要——QA 收到通知後如果還需要自己找版本、找測試重點,這個節點就沒有達成目的。
三版機制比較
- V1:識別了「iOS 手動通知容易忘記、格式錯誤」的問題,Android 自動化已是亮點。提出了不一致性的問題,但沒有給出解法路徑。
- V2:確認 Linear Automation + GitHub Actions 取代手動通知是「必要基礎,不是加分項」。業界對標(Meta CI Pipeline 自動部署、Apple 內部 TestFlight 自動分發)提供方向,但沒有給出 Forest App 具體的過渡期設計。
- V3:首次設計了「iOS 過渡期方案」(手動但標準化格式)和 Android 的 ALPHA 版本號機制詳細說明。更重要的是,V3 提出「個別 Issue 觸發,不等 Project Milestone」的設計原則,解決了 Project 非同步完成問題在 Ready for Test 節點的體現。
機制有效性評估
V3 的「個別 Issue 觸發」設計是對的,但它引入了一個新的複雜度:QA 收到多個 Issue 的 Ready for Test 通知,如何排優先順序?如果 Project 中有 5 個 Issue,第 1、2 週各別觸發 Ready for Test,QA 同時在測 Issue A 時收到 Issue C 的 Ready for Test 通知,這對 QA 的工作安排是新的挑戰(原來的模式是「等一批,一起測」)。
iOS 手動通知的標準格式(V3 提出)是有效的短期解法,但格式的落實仍依賴 RD 的執行紀律。「標準格式」提供了 RD 可以遵循的模板,降低了遺忘欄位的機率,但沒有消除遺忘通知本身的風險。
跨版本洞察
V3 的「iOS vs Android 通知可靠性差異顯性化」是三版中最重要的設計哲學轉變——從「試圖統一」到「承認差異、各自最佳化」。這個轉變對 Integration Expert 有重要的設計啟示:不要為了架構整潔而假裝兩個平台一樣,這會讓設計在現實執行中脆弱。
Android 的 -ALPHA 版本號機制是一個值得保留的識別設計,它讓「這是測試版本」在版本號本身就可見,不需要額外的上下文。iOS 如果能在 TestFlight Build 名稱中也加入類似的標記,可以提升一致性。
給 Integration Expert 的建議
統整初稿 V2 應繼承 V3 的平台差異顯性化設計:Android 全自動(-ALPHA 機制)+ iOS 過渡期標準格式(月 1-2)→ 月 3 目標 GitHub Action 整合 TestFlight Upload API。「個別 Issue 觸發」作為核心原則,但需要配套 QA 的工作優先排序機制(建議 QA 建立一個「待測 Queue」的視圖在 Linear)。
節點 6:Testing
節點真正目的
Testing 節點的存在,不是「讓 QA 找 Bug」,而是讓功能在進入正式版本前,通過一個可信賴的、覆蓋足夠廣的品質確認。「可信賴」意味著測試結果不會因為測試資訊不完整而有遺漏;「覆蓋足夠廣」意味著不只測 Happy Path,也測邊界條件和錯誤情境。
三版機制比較
- V1:識別了最大痛點——Bug 討論分散在 Slack Thread,問題追蹤困難。提出需要結構化 Bug 記錄,但沒有給出 Linear 中的具體格式。
- V2:引入測試金字塔(Google 80/15/5 比例),明確 Fei Chen 負責 E2E、Jimmy 負責 Integration。提出 Jimmy 的自動化測試覆蓋率追蹤機制。V2 在測試策略上的貢獻最大。
- V3:加入「QA Testing 雙重確認流程」(5 步驟),明確了測試注意事項在 Testing 階段的讀取要求。加入 Bug 記錄的標準格式(在 Issue Comment,而非 Slack Thread)。
機制有效性評估
V3 的「Bug 記錄在 Issue Comment」機制要有效,前提是 QA 真的停止在 Slack Thread 記錄 Bug,而改在 Linear 記錄。這是一個工具遷移問題,有幾個阻力:Slack Thread 的回覆比 Linear Comment 快(即時)、QA 和 RD 都在 Slack,在 Slack 討論更自然、Linear Comment 需要切換工具。
Slack Thread 討論的優點(即時、多方共同討論)和 Linear Comment 的優點(結構化、可追蹤、不怕淹沒)是互補的。完全放棄其中一個不現實。一個可能的設計是:Slack 仍然可以用來即時討論,但討論結論必須在 Linear Comment 做一次結構化記錄(「歸檔到 Linear」的習慣)。
V2 的測試金字塔分工(Fei Chen E2E / Jimmy Integration)是正確的,但 V2 / V3 都沒有解決的問題是:如果 Jimmy 的 Integration Test 發現了 Bug,QA 流程應該如何回應? Jimmy 的自動化測試是持續跑的,可能在任何時間發現問題,而不只是在正式的 Testing 節點。
跨版本洞察
V3 的「Jimmy Integration Test 反向補充測試注意事項」設計(Jimmy 發現技術邊界 → 補充到 Issue → 讓 Fei Chen 在 E2E 時確認)是三版中最有創意的機制之一。它把 Jimmy 從「平行跑測試的人」提升為「為 Fei Chen 提供技術視角的夥伴」。但這個機制需要 Jimmy 有意識地去維護測試注意事項欄位,與 RD 的補充行為一樣,是習慣養成問題。
給 Integration Expert 的建議
統整初稿 V2 在 Testing 節點應採用:V3 的雙重確認流程(5 步驟)+ V2 的測試金字塔分工 + V3 的 Bug 結構化記錄格式(在 Issue Comment)。工具遷移(Slack → Linear)應設計過渡期規範:「Slack 可以討論,但 Bug 結論必須在 Linear Issue Comment 做歸檔記錄」,而非強制要求立即完全放棄 Slack 討論。
節點 7:測試報告與翻譯 Gate
節點真正目的
這個節點實際上包含兩個性質不同的目的:測試報告是「以版本為單位記錄測試結果的歷史文件」;翻譯 Gate 是「確保多語言品質的跨部門把關」。兩者合在一個節點,是因為它們都是 Ready for Release Build 的前置條件,但它們的責任人(QA vs MKT)和失敗模式完全不同。
三版機制比較
- V1:識別了翻譯 Gate 是「整個流程中最容易被忽略的跨部門依賴點」,且「沒有任何主動提醒 MKT 的機制」。測試報告的手動合併問題也在 V1 識別。
- V2:對翻譯 Gate 提出「Feature Flag 作為替代機制」的長期方向(Spotify 模型),但明確說明是長期,不在 M1-3。V2 沒有提出短中期的翻譯 Gate 改善方案。
- V3:引入「翻譯 Freeze 日期」概念(Feature Freeze 後 N 天),讓翻譯截止時間在版本 Planning 階段就可以確定,MKT 有更長的準備時間。V3 還提出 Headspace 的「Phrase 工具 + 翻譯完成作為 Feature Flag 前置條件」作為更完整的長期方向。
機制有效性評估
翻譯 Gate 的核心脆弱點在所有三版中都被識別:MKT 是被動等待的,沒有主動提醒機制。V3 的翻譯 Freeze 日期改善了 MKT 的提前準備能力,但「沒有主動提醒 MKT 開始翻譯」的問題仍然存在。真正需要的是:當功能進入 QA Passed 狀態時,如果「Needs Translation = Y」,Linear Automation 應該主動 Slack 通知 MKT 負責人「這個版本需要你翻譯,預計截止日期是 [日期]」。
測試報告手動合併問題(草稿 → 正式)在 V3 提出了「逐月遷移策略(M1-M3)」,這個方向是正確的,尊重 QA 的工具偏好,不強制改變。
跨版本洞察
三版都沒有充分處理的問題:測試報告的「活的」vs「歸檔的」雙重性質。測試報告在測試期間是活的(Bug 持續記錄、測項持續更新),但在版本發布後應該成為不可變的歷史記錄(用於 Post-Mortem、回顧)。如果測試報告一直在 Notion 的活文件中,歸檔版本的管理是個問題;如果遷移到 Linear,「歸檔」的機制也需要設計。
給 Integration Expert 的建議
統整初稿 V2 在翻譯 Gate 節點應新增:「Needs Translation = Y 的 Issue 進入 QA Passed 時,Linear Automation 主動通知 MKT」的機制(這是 V1 識別問題、V2/V3 都沒有明確解決的 Gap)。翻譯 Freeze 日期(V3)作為固定機制加入。測試報告遷移策略繼承統整初稿 V1 的逐月策略。
節點 8:Ready for Fix
節點真正目的
這個節點的存在,是為了讓「功能有 Bug」這個狀態可見且有主人。沒有這個節點,Bug 只存在於 QA 的腦子裡或 Slack Thread 中,RD 不知道自己要修什麼,RM 不知道版本的品質狀況。
三版機制比較
三版在這個節點的設計差異主要在「修復循環追蹤」:
- V1 / V2:識別了「修復循環次數無追蹤」的問題,但沒有提出具體解法。
- V3:提出「Linear Issue Comment 記錄每次回測結果,同一功能回測超過 2 次時 David 發出提醒,Sherridy 評估是否召開問題討論」。這是三版中唯一有具體解法的設計。
機制有效性評估
V3 的「回測超過 2 次提醒」設計需要有人「計數」。計數的工作給 David,但 David 要怎麼知道一個功能回測了幾次?需要依賴 Linear Issue 的狀態歷史(Ready for Test → Testing → Ready for Fix 的循環次數)。Linear 有 Activity Log,但沒有「自動計數狀態循環」的功能,David 需要手動查看或寫自定義 Script。
這個設計的執行成本可能比預期高。一個更輕量的替代方案是:Ready for Fix 時,QA 在 Comment 中固定寫「這是第 N 次回測」,作為人工計數器。
給 Integration Expert 的建議
統整初稿 V2 在 Ready for Fix 節點採用 V3 的設計,但計數機制改為 QA 標準化 Comment 格式(「[回測 N] 問題描述」),讓計數對 RM 直接可見,而不依賴 David 手動統計。
節點 9-10:Ready for Release Build / Ready for Release
節點真正目的
Ready for Release Build 是「兩個 AND 條件都滿足後,授權包正式版」;Ready for Release 是「正式版包好了,等送審」。兩個節點的共同目的是:讓「整個版本準備好了」這件事有一個清晰的、多方都看得到的確認點。
三版機制比較
- V1:識別了「Shawn 是單點風險」。AND Gate 的概念清楚(QA Finished + 翻譯確認)。
- V2 / V3:基本繼承 V1 的設計,V3 新增「等待翻譯和等待 QA 的等待狀態對外可見」的需求。
機制有效性評估
AND Gate 的機制設計是正確的,但在 Linear 中實現「QA Finished + 翻譯確認」的自動化時,需要確認兩個條件的「確認者」不同(QA 確認測試、MKT 確認翻譯),而 Linear 的 Label 或 Status 的更改權限如果沒有設計好,可能出現「誰都可以改」或「誰都不知道自己要改」的問題。
給 Integration Expert 的建議
統整初稿 V2 在這兩個節點應明確設計:Ready for Release Build 的 AND Gate 由誰觸發(建議:Linear 自動偵測「QA Passed Label + Translation Confirmed Label」同時存在時,自動更新 Project 狀態並通知 RD 開始包版)。Shawn 單點風險的替代人應在月 3 前確認。
節點 11-13:Release / Rolling / Released
節點真正目的
這三個節點的存在,是為了讓「版本發布後的品質監控」有一個結構化的流程,而不是「送出去祈禱不出問題」。Released 不是流程的終點,而是「監控期開始的起點」。
三版機制比較
- V1 / V2:Shawn 手動送審,DORA 指標自動記錄。V2 提出 Rolling 分階段發布的業界對標。
- V3:具體化了 Phased Release 的監控流程(iOS 7 天 / Android 10% → 50% → 100%),加入崩潰率監控責任人(Shawn 日常 5 分鐘監控),設定 Crash-free session rate > 99.5% 的目標。
機制有效性評估
V3 的崩潰率監控設計是三版中最接近「消費者 App 現實」的——在競爭激烈的 App 市場,版本發布後的崩潰率是最直接影響用戶評分和留存的指標。Shawn 5 分鐘/天的監控習慣是合理的,但需要 Shawn 有一個清晰的「崩潰率看板」入口(Firebase Crashlytics Dashboard 的書籤或主頁設計)。
給 Integration Expert 的建議
統整初稿 V2 在發布後節點採用 V3 的 Phased Release 監控設計,並在 Linear Project 中建立「發布後監控期」的明確狀態(Released → Monitoring → Monitoring Complete),讓 RM 能看到一個版本是否仍在監控期中,而不是 Released 後就消失在視野中。
跨節點洞察:五個未被充分解決的問題
洞察 1:Testing Notes 有責任鏈但鏈最脆弱的環節在 RD
V3 設計了完整的測試注意事項責任鏈(PO → RD → QA),但鏈的強度取決於最弱的環節。PO 有工具提醒(Automation Comment),QA 有工具提醒(Ready for Test 時的 Automation Comment),但 RD 補充測試注意事項這一步沒有工具觸發,完全依賴習慣。
根本原因:Linear 沒有「RD 在某個 Status 時應該做某件事」的 Automation 設計(Automation 只有在 Status 改變時觸發,而 In Development 期間 Status 不改變)。
建議:在 RD 提交 PR 時,在 PR Template 加入「已更新 Linear Issue 的測試注意事項(如有新的技術邊界):Y / N / 無更新」。這讓「是否更新了測試注意事項」成為 PR Review 流程的一部分,而不是獨立的習慣。
洞察 2:掉車 SOP 的文化可行性需要「第一次」的心理設計
V3 的掉車 SOP 是流程設計上的正確答案,但在文化導入上還差一步。第一次讓功能掉車時,RD 的心理反應幾乎必然是負面的:感覺自己的工作「被打回票」、擔心被認為效率不好、想「加班補救」而不願意接受掉車。
如果第一次掉車時 RM 只是按 SOP 執行(加 Label、移 Issue),而沒有主動管理 RD 的情緒和認知,「掉車」在團隊文化中會成為一個負面事件,而非中性的「版本調整」。
建議:第一次執行掉車 SOP 時,RM 應該主動找 RD 私下溝通(Slack DM 或 1-1),強調「掉車是流程的正常機制,不是對你個人工作的評價」。這個溝通步驟應該寫進 SOP,而不是留給 RM 自己判斷要不要做。
洞察 3:iOS vs Android 通知可靠性差異是結構性差異
三個版本的演進方向很清晰:V1 識別問題 → V2 想要統一 → V3 接受差異、各自設計。統整初稿 V2 應明確在文件中寫下:「iOS 和 Android 的 Ready for Test 通知機制在設計上就是不同的,這不是缺陷,是面對現實的工程決策。iOS 的手動通知過渡方案(標準格式)是短期設計,目標是月 3 達到自動化,但即使達到自動化,iOS(TestFlight)和 Android(-ALPHA + CI/CD)的底層機制仍然不同。」
明確說出這個差異,比假裝可以統一更誠實,也讓新加入的團隊成員(如未來的 RD)一看就理解為什麼要這樣設計。
洞察 4:Project 非同步完成是三版中最被低估的風險
V1 和 V2 完全沒有意識到這個問題。V3 識別並提出了「個別 Issue 觸發 Ready for Test」和「Waiting for Others 狀態」的解法。但 V3 仍然沒有解決的問題是:
當 Issue A 在 ALPHA1 版本中測試通過,然後 Issue D 完成後包了 ALPHA4,Issue A 的測試結果還有效嗎? 如果 Issue D 的代碼改動影響了 Issue A 的功能(這在行動 App 開發中很常見),Issue A 需要回歸測試。但誰來決定哪些已通過的功能需要回歸測試?這個決策目前沒有明確的責任人。
建議:在 Project 中,每次新的 ALPHA 包出來時,QA 需要判斷「這個 ALPHA 的代碼改動是否影響之前已測過的功能」。這個判斷可以參考 RD 在 PR 中說明的「影響範圍(Impact Scope)」。如果 Impact Scope 說明這次改動影響了 Issue A 的功能,QA 需要把 Issue A 從 QA Passed 移回 Testing(回歸測試)。PR Template 中加入「影響範圍」欄位是前提。
洞察 5:工具遷移的文化阻力在情感層面,不在技術層面
三版都假設「工具遷移的阻力是功能不夠強大」,因此花很多篇幅說明 Linear 的各種功能比 Notion / Slack 更強。但實際的工具遷移阻力往往是:「我已經知道怎麼在 Slack 找東西,但在 Linear 我還不知道」(認知成本)和「我和同事在 Slack 的工作習慣是共同的,改變 Linear 等於要求所有人同時改變」(社交成本)。
三版都提出了「逐月遷移」的策略,這是正確的——不要求所有人一天內全換。但「逐月遷移」需要明確的「月 X 之後我們不再在 Notion 記 Bug」的截止點,以及一個「遷移初期的 Buffer 期(Slack 和 Linear 都可以)」。
建議:在月 1 的「我們開始在 Linear 記 Bug」的宣告之後,同時宣告「月 1-2 是 Buffer 期,Slack Thread 仍然可以討論,但月 3 起所有 Bug 的正式記錄只在 Linear Comment」。這讓團隊有心理準備,而不是突然被要求改變。
給 Integration Expert 的建議清單
以下按優先順序列出,供 Integration Expert 在設計統整初稿 V2 時參考:
必須採用(核心機制,不採用會有明顯缺口)
- V3 的「個別 Issue 觸發 Ready for Test」原則——不等 Project Milestone,避免 QA 瓶頸
- V3 的「Testing Notes 三方責任鏈」——PO 建立 + RD 補充 + QA 雙重讀取
- V3 的「iOS vs Android 通知可靠性差異顯性化」——各自最佳機制,不假裝統一
- V3 的「Feature Freeze 機制」——讓「列車不等人」有操作工具
- V3 的「掉車 SOP」——加入 RD 心理管理步驟(建議補充)
- V3 的「翻譯 Freeze 日期」——翻譯截止時間在 Planning 就可以確定
應採用(有明確效益,但需要確認執行成本)
- QA 在 Ready for Test 後重新讀取測試注意事項的自動化觸發(Automation Comment)
- Bug 記錄從 Slack Thread 遷移到 Linear Issue Comment 的「Buffer 期 + 截止點」策略
- 回測次數計數的 QA 標準化 Comment 格式(「[回測 N]」前綴)
- 翻譯 Gate:QA Passed + Needs Translation = Y 時,Linear 主動通知 MKT
作為長期方向保留(不在月 1-3 強制,但設計時不排除未來引入)
- V2 的 Feature Flag 評估(月 4-6)
- V2 的 Trunk-Based Development(前提:Unit Test 覆蓋率 > 60%)
- V3 的「Crash Gate 自動化」(Firebase 崩潰率觸發自動暫停 Phased Release)
需要在統整初稿 V2 中補充說明的設計細節
- David 執行「Freeze 前 3 天盤點」的自動化觸發方式(Calendar 提醒或 Linear Automation)
- PR Template 新增「測試注意事項已更新」確認欄位,讓 RD 補充行為發生在 PR 流程中
- PR Template 新增「影響範圍(Impact Scope)」欄位,幫助 QA 決定哪些已測功能需要回歸
- 「Waiting for Others」狀態的具體引入時機(建議月 2,待觀察個別 Issue 觸發的執行情況後再評估)
- 發布後「Monitoring 期」的 Linear Project 狀態設計(Released → Monitoring → Monitoring Complete)
本文件由 Release Tracker Expert(Sub-Agent 1)產出,供 Integration Expert 使用。 基於文件:V1 現有流程深度分析 / V2 現有流程深度分析 / V3 現有流程深度分析 / V3 Linear功能對應分析 / 統整初稿 V1
工作文件 release-tracker-expert 三版比較 integration-input