問題
碳排合規不再是一年交一份報告,而是每天的營運。這件事直接改變了軟體該長成什麼樣子。客戶要的不是一份比較好填的年度表單,是撐得過查核的供應鏈資料,而且要持續進來——資料來源則是那些至今還在互寄 Excel 的供應商。
架構
v1.0 是 Nest.js 上的 modular monolith。對一個連我們自己都還看不清領域邊界的產品,這個選擇我今天還會再選一次。v2.0 沿著產品線拆開,供應鏈系統現在是透過明定的 API 跟另外兩條產品線對話,而不是共用資料表。
我的角色
- v1.0:創始後端工程師,一年內升任 Team Lead
- v2.0:供應鏈管理系統的後端開發。與 PO 共定 milestone、規劃 sitemap 與流程圖,並以 OpenAPI v3.0 契約跟前端團隊、另外兩條產品線整合
成果
- v1.0 上線,服務正式營運中的企業客戶
- v2.0 導入 Specification-Driven Development(SDD),理由不是我對方法論有熱情,而是根本沒有 PM 提供的 spec 可以照著做。所以這次重構的順序是:spec-kit(GitHub 開源工具)→ 契約 → 介接,跨產品線的契約層也從口頭共識變成寫下來的東西(40+ 份介面 YAML)
學到什麼
先寫 code,然後帶人寫 code,再然後寫 spec 給 AI 寫 code。每一次轉換都把「我貢獻價值的最高點」重設一次,而每一次我都要花上一段時間,才發現舊答案已經過期。