你的軟體怎麼可以有 bug ! 聊聊軟體維護的成本及觀念

更新於 2024/09/22閱讀時間約 4 分鐘
忻旅科技 https://www.revtel.tech/
Sam Huang https://www.sam-huang.info/

幾年前有次去談案子,業主想要透過整合資訊工具來替自己的產業做些商業模式的新嘗試。但隨著討論的逐漸深入,默默覺得有些違和感,總覺得有一層窗戶紙沒有捅破。

意識到是業主對於系統開發後的維護認知有點奇怪,點破之後聽到一句有趣的話:

為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!

一瞬間我也是愣了一下,還差點被說服(?)。仔細想軟體維護好像還真的是不太好理解。

https://pixabay.com/photos/stones-zen-white-spa-alternative-2764287/

https://pixabay.com/photos/stones-zen-white-spa-alternative-2764287/

系統正常運作是結果而非手段

軟體維護的目的其實很單純 — 讓系統能夠正常的運作。

有句話說「幸福的家庭都是相似的 不幸的家庭各有各的不幸」,放到軟體上也是一樣。程式有 bug?流量超乎預期?雲端系統更新?版本控制錯誤?每個點都可能局部甚至全局造成系統失效。

而所謂的「正常運作」其實更是結果。站在終點規劃從起點該如何走來往往會是顧了這個漏了那個。

那該怎辦才好?

與其把視角放在具體的每一個任務上,不如去思考最基本的出發點 — 也就是風險的轉移及專業承擔

維護的範圍不清楚,面臨的問題也是百百種

有些朋友可能會覺得,所謂的「維護」指的單純是 bug 的修復,超出的部分應該一律都叫「開發」(在此概念下,開發指的是功能的增刪修改)。但我們可以試著就風險轉移的角度來重新思考看看。

Johari Window : https://en.wikipedia.org/wiki/Johari_window

Johari Window : https://en.wikipedia.org/wiki/Johari_window

用 Johari Window 來思考在維護上的四個象限,那應該會是這樣:

  1. 已知的已知:維護功能的「合理」運作。
    比如當用戶按了登入按鈕後就該觸發要求輸入的視窗。
  2. 已知的未知:修復功能的「合理但不正確」運作。
    比如當登入視窗在新版作業系統中因 css 寫法而造成跑版。
  3. 未知的已知:處理功能的「合理但未必需要」的運作。
    比如當登入視窗未被關閉但因為某些理由不可視卻遮蓋住主畫面。
  4. 未知的未知:解決超出開發功能,但商業上卻需要解決的問題。
    比如忘記密碼的功能應該要搭配某些配套避免有人惡意使用。

等等 … 有些問題感覺應該是「新功能」而非「舊維護」,而有些問題更像是「需求沒有被完整釐清」。

是的,問題其實就在於軟體系統的開發及生存是連續性的,擷取當中片段並硬將任務切分成開發及維護本來就是很難做到的。或者換句話說,如果把 bug 的修復或者把系統從錯誤中回復視為是「優化」,那所有事情都都是開發了。

raw-image

所以我們該怎樣規劃成本 … ?

很多時候維護費的計算可能還比開發估算來的困難。

事實上除了做哪些事情要討論,工程人力也存在隱性成本,比如當一個系統越久沒出問題通常也代表團隊對程式碼的熟悉度會漸漸下降。

但總得有些算法吧?不妨可以先建立以下理解

  1. 固定成本:系統自然的複雜度及維運團隊的維護成本,負責的是「已知的已知」。這裡坊間有個大致算法是原開發成本的 10 ~ 30%。
  2. 變動成本:保持彈性來封裝不可知的問題,負責的是「已知的未知」及「未知的已知」。這裡可以簡單大致的人天成本。
  3. 優化成本:系統是活的,本來就需要定期檢視整個系統健康度,負責的是「未知的未知」。這裡應當是以擴充專案角度來應對,甚至更直接的排入開發計畫。

維護就像是買保險,保費該值得多少本來就該因時制宜且因地制宜。

結語:事情總是比我們想的更複雜

軟體系統的正常運作是環境、用戶及軟體三方順利協同的結果。任何一方情境改變都會造成這個和諧關係被破壞。

因此維護是勢必存在的,可以不理解,但無法不面對。

費用及資源的花費是嚴肅的事情,但也正因為如此,抱持積極的心態去面對這些不確定性才會是比較好的態度。

或者可以這樣說,可以不在其上花費用,但要好好注意風險承擔。

忻旅科技 https://www.revtel.tech/
Sam Huang https://www.sam-huang.info/



avatar-img
18會員
33內容數
從超過 50 個合作經驗中擷取在系統開發、顧問及營運上的經驗及心得
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Sam Huang的沙龍 的其他內容
我們的世界實際上由虛擬和實體兩個部分組成。NFT已經在虛擬世界中證明了自己的價值,但如果將NFT應用於現實世界,又會有哪些可能性呢?
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
「幫我做的跟 Facebook 一樣單純就好」 「嗯 … ?」 不管怎麼估計都可能失準,在一件事做完之前你怎麼知道能不能做到?
殺雞用牛刀,降維打擊總是一個安全做法。殺雞何必用牛刀?但牛刀是真的有用啊!而手上有錘子什麼看起來都像釘子,問題是錘子真的能敲啊!
這幾天有個蠻大的新聞是 Azuki 的背後團隊 Chiru Labs 繼 ERC721a 後又提出了 Physical Backed Token (PBT) 這個新的代幣標準。 但 NFT 虛實結合是有道理的嗎?而以 NFC 為虛實整合介面又是合理的嗎?
十一年來景氣循環走了幾次,技術名詞來來去去,資訊產業唯一不變的就是變。感謝 MOPCON 主辦單位的付出以及堅持,為這個有點紛亂的世界又添上了一抹善良。
我們的世界實際上由虛擬和實體兩個部分組成。NFT已經在虛擬世界中證明了自己的價值,但如果將NFT應用於現實世界,又會有哪些可能性呢?
一旦甲乙方進到零和賽局,情感上開始對抗之後,兩敗俱傷就是必然的結局了。既然是這樣,合約的撰寫及執行不妨看作是合作誠意的具象表態。
「幫我做的跟 Facebook 一樣單純就好」 「嗯 … ?」 不管怎麼估計都可能失準,在一件事做完之前你怎麼知道能不能做到?
殺雞用牛刀,降維打擊總是一個安全做法。殺雞何必用牛刀?但牛刀是真的有用啊!而手上有錘子什麼看起來都像釘子,問題是錘子真的能敲啊!
這幾天有個蠻大的新聞是 Azuki 的背後團隊 Chiru Labs 繼 ERC721a 後又提出了 Physical Backed Token (PBT) 這個新的代幣標準。 但 NFT 虛實結合是有道理的嗎?而以 NFC 為虛實整合介面又是合理的嗎?
十一年來景氣循環走了幾次,技術名詞來來去去,資訊產業唯一不變的就是變。感謝 MOPCON 主辦單位的付出以及堅持,為這個有點紛亂的世界又添上了一抹善良。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在數位時代,Scrum已成為專案管理的利器。本文介紹Scrum的核心角色、工件和事件,並結合我開發CDP的實際經驗,分享如何通過產品待辦清單管理、Sprint計劃與執行、每日站會和Sprint回顧來提升專案靈活性與效率。希望能啟發更多專案經理運用Scrum,優化專案流程。
Thumbnail
如果你覺得最近軟體收費好像有點過時,那你的直覺沒錯!網路世界正在經歷一場大地震,而你恰好站在震央邊上!
很多人在玩交友軟體時不太用心撰寫自我介紹,因為他們覺得就算寫了也沒人。但我用我的實際體驗告訴你:你認真寫自我介紹,會讓你更有機會吸引到人
Thumbnail
工作兩年,我已經替 5 個 SaaS 產品寫了技術文件。過程中我發現:現代人很沒耐心。5 分鐘內他不知道產品怎麼用,就會關閉網頁再找其他試用品。公司失去了一個願意付費的潛在客戶。怎麼辦呢?你需要一份 Tutorial 技術文件!這篇文章我會分享 6 個你可以用來寫技術文件的訣竅。
Thumbnail
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
Thumbnail
隨著筆記卡片的增加,某些軟體可能面臨效能問題。 例如,Obsidian軟體可能在卡片過多時讀取變慢。 但這些技術上的問題不應成為制約我們學習的障礙。
Thumbnail
就我玩過10幾個交友軟體的經驗,網路聊天最常遇到難破冰、有壓力、幾天沒聊就淡了....等問題,但其實只要知道掌握一些聊天節奏的技巧,就算普妹也能順利攻略高富帥,順利脫單成功~
Thumbnail
在軟體設計的工作裡除了你熟悉的 coding 技能外,還有一塊非常重要經常被忽略,那就是處理資料存儲的部分。我們現在用的軟體功能都很複雜,為了有更好的使用者體驗,軟體設計師會在後台儲存有很多的設定資料並且紀錄軟體運作過程中的資料流數據,為了更好的記錄應用這些資訊,通常會搭配一個資料庫在程式裡面
Thumbnail
Allen,雙魚座A型。 高中電機系畢業就跟著水電老師傅,從學徒開始一路10年。 目前在一家太陽能板公司當監工、晚上瘋狂兼職其他外包工作,假日的興趣也是去外縣市工地搶錢。 他說他沒有特別想買的物慾,只想好好照顧家人。 26歲的他,也用存款在高雄蛋黃區,現金直付買下一戶小公寓,擠進有房有車
Thumbnail
那天友人問到這個問題,一開始我有點哭笑不得,因為這2者要放在一起比較,看起來有點荒誕。不過,我同時想到,其實沒有在關心Web3的朋友,對過去這一年幾個趨勢:NFT、元宇宙,仍然抱持不少疑問。特別是現在Web3的價值,被市場高度懷疑的情況下,其實更容易令人思考一些本質性的問題。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
在數位時代,Scrum已成為專案管理的利器。本文介紹Scrum的核心角色、工件和事件,並結合我開發CDP的實際經驗,分享如何通過產品待辦清單管理、Sprint計劃與執行、每日站會和Sprint回顧來提升專案靈活性與效率。希望能啟發更多專案經理運用Scrum,優化專案流程。
Thumbnail
如果你覺得最近軟體收費好像有點過時,那你的直覺沒錯!網路世界正在經歷一場大地震,而你恰好站在震央邊上!
很多人在玩交友軟體時不太用心撰寫自我介紹,因為他們覺得就算寫了也沒人。但我用我的實際體驗告訴你:你認真寫自我介紹,會讓你更有機會吸引到人
Thumbnail
工作兩年,我已經替 5 個 SaaS 產品寫了技術文件。過程中我發現:現代人很沒耐心。5 分鐘內他不知道產品怎麼用,就會關閉網頁再找其他試用品。公司失去了一個願意付費的潛在客戶。怎麼辦呢?你需要一份 Tutorial 技術文件!這篇文章我會分享 6 個你可以用來寫技術文件的訣竅。
Thumbnail
「為什麼要維護?有 bug 你們就要負責啊,你們怎麼可以給我們有 bug 的東西!」 一瞬間我也是愣了一下,還差點被說服(?)。
Thumbnail
隨著筆記卡片的增加,某些軟體可能面臨效能問題。 例如,Obsidian軟體可能在卡片過多時讀取變慢。 但這些技術上的問題不應成為制約我們學習的障礙。
Thumbnail
就我玩過10幾個交友軟體的經驗,網路聊天最常遇到難破冰、有壓力、幾天沒聊就淡了....等問題,但其實只要知道掌握一些聊天節奏的技巧,就算普妹也能順利攻略高富帥,順利脫單成功~
Thumbnail
在軟體設計的工作裡除了你熟悉的 coding 技能外,還有一塊非常重要經常被忽略,那就是處理資料存儲的部分。我們現在用的軟體功能都很複雜,為了有更好的使用者體驗,軟體設計師會在後台儲存有很多的設定資料並且紀錄軟體運作過程中的資料流數據,為了更好的記錄應用這些資訊,通常會搭配一個資料庫在程式裡面
Thumbnail
Allen,雙魚座A型。 高中電機系畢業就跟著水電老師傅,從學徒開始一路10年。 目前在一家太陽能板公司當監工、晚上瘋狂兼職其他外包工作,假日的興趣也是去外縣市工地搶錢。 他說他沒有特別想買的物慾,只想好好照顧家人。 26歲的他,也用存款在高雄蛋黃區,現金直付買下一戶小公寓,擠進有房有車
Thumbnail
那天友人問到這個問題,一開始我有點哭笑不得,因為這2者要放在一起比較,看起來有點荒誕。不過,我同時想到,其實沒有在關心Web3的朋友,對過去這一年幾個趨勢:NFT、元宇宙,仍然抱持不少疑問。特別是現在Web3的價值,被市場高度懷疑的情況下,其實更容易令人思考一些本質性的問題。