一套系統準備上線時,我通常會先想三個問題:
前期需要投入多少成本?
未來使用者變多,系統撐不撐得住?
半年後想增加功能,這套系統還改不改得動?
畫面和功能當然重要。
但真正影響一套系統能走多久的,很多時候是使用者看不到的地方。
現在的成本,和未來的成長要一起規劃
假設一個剛起步的品牌,想透過網站拓展生意,目前訂單量還不大,但未來也有持續成長的可能。
在規劃雲端架構時,我會先把前期成本和未來擴充一起考慮進去。
例如使用 Cloudflare 搭配 Cloud Run,在流量還不高的階段,不需要先負擔高規格主機的固定費用;未來使用者增加時,也可以隨著實際流量擴充。
換句話說,不是先做一套便宜但撐不久的系統,等生意成長後再重新處理。
而是一開始就選擇適合目前規模、成本負擔不高,同時也保留成長空間的做法。
如果產品的成長方向相對明確,我也會選擇 Go 這類效能較好的後端語言,並在系統架構上預先考慮未來增加機器、分散流量的可能。
這些設計平常不太容易被看見,但有點像房子的地基。
功能可以之後再加,畫面也可以慢慢調整;但如果一開始沒有替未來的規模留下空間,等產品真的成長後,通常就不是多加一台機器這麼簡單。
這也是不少業界產品,尤其是外包專案容易遇到的情況。
前期只顧著把功能做完,真正需要擴充時,才發現原本的架構很難再動,最後只能花更多成本重新整理,甚至整套重做。
系統能擴充,程式也要改得動
除了撐得住更多使用者,系統上線後通常也會一直增加功能。
一開始可能只有會員和訂單,後來又加入付款、退款、優惠活動、權限或內部管理流程。
如果所有功能一開始就纏在一起,原本只想修改付款流程,最後卻可能連訂單、會員和通知都一起受到影響。
所以我在規劃程式時,也會盡量把不同功能的責任整理清楚。
不是為了導入多厲害的方法論,而是希望未來需要增加或調整功能時,還知道應該從哪裡開始,也不會每改一次,成本就跟著往上增加。
技術設計,最後還是要回到實際需求
同樣是一套電商或會員系統,不同公司的流程可能完全不一樣。
有些訂單付款後就成立,有些需要人工確認;有些退款只處理款項,有些還會牽動庫存、資格或後續服務。
如果這些流程沒有先談清楚,程式做得再快,後面還是容易反覆修改。
所以我通常會先理解產品現在怎麼運作、未來可能往哪裡發展,再決定系統要做到什麼程度。
我不認為每個專案都需要一開始做到最完整,也不是技術用得越多越好。
但如果有些方向會影響未來能不能擴充、能不能繼續修改,那就值得在一開始多想一步。
我希望自己能協助的,不只是把眼前的功能做出來。
而是一起評估目前的預算、實際需求和未來成長的可能,先把重要的地基整理好。
讓系統現在可以用合理的成本開始,未來真的往前走時,也不會因為最初的設計而卡住。


