功能上線 3 階段思考框架

不知道大家開發一項功能時,會怎麼思考讓它上線要做的事情?

我個人是使用「功能上線 3 階段思考框架(自稱)」幫助思考功能 1 個上線要做哪些事情,這個框架分為三個階段(如圖):

  1. 上線前(黃色)
  2. 上線中(紅色)
  3. 上線後(藍色)

上線前的準備通常不外乎是列出研究的項目、開發時程、測試的範圍、準備上線後的驗證程序(例如驗證資料如預期般寫入資料庫)等等。

上線中則可能需要做一些即時監控,例如可以思考在這個階段,我們要注意伺服器的哪些數據可能產生變化,甚至影響服務的穩定性,值得注意的是這階段很容易有新舊並存的情況發生,舉多台後端伺服器為例,通常都是採用 rolling update 的部署方式,所以一定會有部份伺服器是執行新版程式,部分執行舊版的情況,包含 APP, 網頁前端都有這種現象。 上線後則是驗證功能如預期般正常執行,監控一段時間伺服器數據表現,以確定沒有重大問題,又或是發現問題之後可能要執行手動修正或 rollback 的情況。

這 3 個階段的思考框架能夠幫助我,有條理的羅列出我每個階段應該思考/做的工作,盡量確保事情的進行在可控的範圍。 多年的從業經驗告訴我,我們經常在上線後的階段思考不足,包含我自己也都很常會認為上線後就沒我的事了,所以很多時候會忽略執行事後驗證甚至是準備好 rollback 的標準程序,但墨菲定律告訴我們「會出錯的事肯定會有出錯的一天」,在出錯的時候,我們總是意外地毫無準備,所以災難處理才顯得那麼緊張、狼狽、手足無措。

另外,隨著前後端分離技術的盛行,這個思考框架也跟著產生交互作用。

舉後端 API 與前端介面分開上線的情況為例,因為這 2 者是無法達到 100% 的同步部署的,所以在思考框架上會出後端上線後,前端還沒上線完的情況,這時候 API 設計勢必要考慮新舊相容,否則會有部分使用者出現使用上問題,特別是 APP 使用者經常還是使用舊版本的情況,甚至無法做到所有使用者在同一時間都換成新介面,這就需要被考慮進去。

在有交互作用的情況下,個人經驗是最早開始的「上線中」階段與最晚的「上線中」結束這個時間段內,經常會有思考盲區出現,例如後端沒做 API 新舊相容,或是前端沒知會後端就先上線,或是後端爆炸時前端沒有做容錯處理等等,這些意外屢見不鮮,不過這些事情都可以在圖畫出來之後,就會比較好想像有哪些意外會發生。

以上,就是我個人常用的思考框架分享。

Facebook Threads X

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!