一個需求如何變成正式系統

從問題釐清、開發、交付,到上線後持續維運與修改

從問題釐清、開發、交付,到上線後持續維運與修改

這份簡報先建立整張地圖

先知道完整流程有哪些工作,

再逐一深入每個主題


軟體不是「寫完 Code」就結束

發現問題 → 釐清需求 → 設計系統 → 實作功能
   → 整合變更 → 測試驗收 → 部署上線
   → 監控維運 → 收到新需求或事故 → 再次修改

這是一個持續循環,不是一次性的生產線。


流程裡通常不只有工程師

角色 關心的問題
使用者/業務 問題有沒有真的被解決
PM/PO 範圍、優先順序與驗收標準
開發者 架構、實作、整合與可修改性
QA 風險、案例、回歸與品質證據
DevOps/SRE 環境、部署、穩定性與復原
資安/治理 權限、資料、供應鏈與責任

階段 1:發現問題與定義需求

  • 訪談使用者、觀察現況、理解領域流程
  • 定義目標、範圍、限制與不做的事情
  • 整理 user story、use case、例外情境
  • 寫 acceptance criteria 與非功能需求
  • 建立 backlog,決定優先順序

產物:需求文件、流程圖、驗收條件、backlog。


階段 2:架構與技術設計

  • 畫 system context,確認內外部邊界
  • 拆 module、service、component 與責任
  • 設計資料模型、API、事件與狀態變化
  • 評估效能、可用性、資安與維運方式
  • 用 ADR 留下重要選擇與取捨

產物:架構圖、schema、API contract、ADR。


階段 3:拆任務與實作

  • 把需求切成可以開發與驗收的小單位
  • 建 branch 或 worktree,隔離修改範圍
  • 撰寫程式、設定、migration 與文件
  • 處理錯誤、邊界條件與外部依賴
  • 執行 lint、靜態分析與本機測試

產物:code、commit、測試、設定與文件。


階段 4:整合多人與多條變更

  • push branch,建立 Pull Request
  • 查看 diff、執行 Code Review 與自動檢查
  • 處理 branch 落後、merge conflict 與相依變更
  • 選擇 merge、squash merge 或 rebase
  • 合併後刪除短期 branch,保留歷史脈絡

產物:PR、review、CI 結果、merge commit。


階段 5:測試與驗收

  • Unit test 固定小範圍邏輯
  • Integration test 確認模組與外部服務整合
  • E2E test 驗證完整使用者流程
  • Acceptance test 對照需求與完成定義
  • Regression、performance、security test 控制其他風險

產物:測試結果、缺陷、驗收紀錄與品質判斷。

階段 6:建置、發布與部署

  • CI 建置 artifact、執行測試與安全掃描
  • 準備環境設定、secret、容器與基礎設施
  • 執行 migration、deploy 與 smoke test
  • 採用 rolling、blue-green 或 canary 等策略
  • 異常時 rollback 或 roll forward

產物:artifact、image、release、部署紀錄。


階段 7:上線後維運

  • 透過 log、metrics、trace 觀察系統
  • 用 dashboard、alert 與 SLO 判斷健康狀態
  • 發生事故時 triage、止血、復原與溝通
  • 事後進行 postmortem 與改善追蹤
  • 管理容量、成本、備份與災難復原

產物:告警、incident、runbook、postmortem。


階段 8:系統繼續演進

新需求/使用者回饋/事故/依賴更新
                  ↓
閱讀現況與歷史 → 評估影響 → 建立修改計畫
                  ↓
小步修改 → 測試 → 合併 → 部署 → 再觀察

所以 Git 歷史、測試、文件與觀測資料都會成為下一輪輸入。

後續教材:一個主題一份簡報

簡報 主要內容
需求與規格 訪談、story、use case、NFR、驗收、backlog
架構與資料流 邊界、模組、schema、API、事件、ADR
實作與 Code Review 環境、依賴、錯誤處理、lint、refactor
Git 與協作 branch、PR、merge、rebase、worktree、rollback
測試與品質 unit、integration、E2E、regression、QA

後續教材:交付與維運

簡報 主要內容
環境與部署 Docker、CI/CD、artifact、migration、rollback
觀測與事故 log、metrics、trace、alert、SLO、postmortem
資安與治理 auth、secret、injection、供應鏈、audit
舊系統接手 入口、依賴、baseline、重構、migration
工程判斷 scope、trade-off、risk、decision、ownership

關鍵字不是拿來背誦

看到一個工程名詞時,至少要知道:

  • 它解決哪一種情境?
  • 它位於整個流程的哪個位置?
  • 它會產生或改變什麼?
  • 做錯時可能造成什麼後果?
  • 要看什麼證據才知道它完成了?

進入 Agent 時代之前

先建立完整流程的共同語言。
之後即使工作由 Agent 執行,
人仍然看得懂它正在改變哪一部分。