維護的成本

Jack Yu
3 min readJul 20, 2020

--

上一篇寫了開發的成本,這篇來寫維護的成本

維護指的是當程式完成並釋出給使用者一次後,接下來什麼事都不做,還是會必需付出的成本。下面列出幾個跟 RD 會直接遇到的項目。

修正臭蟲

當開發新功能時沒有想清楚或沒有足夠的測試去覆蓋新加的程式碼,Bug 就非常可能在 RD 認為已經開發完畢並送交給測試人員後才被找出來。如果沒有被找出來,怎會在更後期被使用者找出來。這些 Bug 會在 RD 不預期的時間點被發現、回報且可能需要立即被修正。(中斷!!)

另一種 bug 就是在遺留程式碼內的 bug (遺留 bug?),可能是已知但一直沒有時間修,或是前人寫的最近才被發現,讓你覺得有點難過。這類型的 bug 也會在不預期的時間點被提起,或是反覆的被提起讓 RD 需要去回憶一下,但總是無力修正。

解決方法:當有新功能時有 bug 非常合理,但盡可能在開發時或早期發現是降低此成本的方式。(這樣 RD 也還記得自己寫了什麼知道怎麼修)

修正相容性問題

傳說程式放著自己會爛掉。這是真的!

當程式的運行環境改變時,程式就可能就會自己死去,例如 2020 年才發生幾次 Facebook SDK 更新讓一堆使用 SDK 的 App 會閃退無法使用。還有其他常見的情況例如:

  • 作業系統、驅動程式更新
  • 使用者裝了某個軟體,如防毒軟體
  • 超過了某個時間,如 2038 年
  • 函式庫、SDK 升級
  • 第三方服務升級
  • CPU 微架構與指令集更新,如 Mac 要從 Intel 跳 Arm
  • 編譯器更新
  • 很多

你的程式可能會有相容性問題導致無法正常運行,此時便需要進行對應的修正並準備新版本。例如辛苦的 iOS 或 Android 夥伴們每幾年就需要更新一次對應的 SDK 才可讓 App 順利上架。桌面程式的夥伴們比較常遇到的是 macOS 更新基本上每次都有相容性問題。

解決方法:這類型的成本除非產品再也不支援某些環境或是 EOL 了,某則只能持續付出成本。

支援客戶

當產品出去後便會有使用者,使用者多當然好,然而遇到問題或不滿意的使用者也會增加。其中還不乏小白或奧客...

使用者的問題可能從找不到程式下載連結 (??)、不會安裝、不會設定、行為不如預期、想要新功能、單純想吐槽或表達情緒一路到真的遇到 bug。縱使位於第一線的客服人員會很努力地擋住,但當問題越來越複雜時,客服人員就會需要將問題轉交給 RD 處理。

轉交到 RD 手上的問題通常相對困難,需要花上不少時間去研究。公司為了客服品質要求,基本上會有個回覆時間的死線 (例如 24 小時),這會讓技術支援對 RD 來說是個無法安排又很緊急的事項,常常中斷且佔據大量寶貴時間。

解決方法:部份公司中間會增同時扮演客服與開發人員的 FAE 工程師的角色,可以再多檔一層。當然,最實在的方式就是持續根據使用者的回饋調整產品,例如簡化 UI、增加提示、增加 FAQ、持續修正調該修的 bug。

一個產品只要有人在用,維護的成本就不會消失。就算一個產品被說是在維護狀態 (maintain mode),他也並不代表不需要投入人力資源了。這也是為什麼公司需要的人力會隨著產品增加需要持續擴張人力,維護的成本也佔據了相當一部份。如果人力沒有增加,你就會隱隱約約有種感覺,怎麼好像大家都很忙,但什麼東西都做不出來了。 :口

--

--