[工作經驗]Workaround明明能跑,客戶卻說不行:一次Debug經驗的學習與反思

更新 發佈閱讀 4 分鐘
raw-image


在一次晶片整合程式除錯的過程中,我碰上一個奇怪的情況「我知道怎麼解,程式也能跑,但客戶卻堅持那樣做IC會壞掉。」這次經驗讓我體會到:工程問題的解法,不只要能跑,還得讓人信服。


問題起因及初步判斷

相同的程式、不同的結果

某一次有個客戶在整合晶片A的程式時回報說程式執行會報錯,當我去看程式時發現那個ERROR不常見,但從訊息上可以知道一些眉目。實際上當時有晶片A、B、C及D一起在開發中,而ABCD其實用的都是同一個版本的程式,照理說如果A出問題BCD都應該有問題,實際上卻是只有晶片A工程師有回報問題。

在一段時間驗證與查找後,我找到在某一處設定檔案中有一個被引用的檔案會引起這個ERROR。實際上這個被引用的檔案根本沒被使用,算是以前系統更新版本後遺留下來沒被刪除的檔案。而在晶片BCD中無論這一行有沒有被註解都不影響執行,而A在將那一行註解掉後,程式就可以順利執行了。

客戶堅持反對,卻不合邏輯

問題很簡單,但卻難以溝通

但事情沒有我想像順利,回報給客戶解答後,隔天客戶再次找上我說註解掉這一行檔案的引用會影響IC的燒錄。當下其實是愣住了,這個檔案跟燒錄完全沒關係。

但我沒有選擇不直接反駁,而是再次回去看了看程式內容。確認多次後我可以保證這個檔案完全沒被使用,大概率是程式底層的BUG,但我這邊沒辦法處理。

在跟客戶試圖交流後,對方態度其實很強硬,堅持地認為這個檔案的註解會影響燒錄結果。我強烈地懷疑這個結論是錯的,畢竟這個檔案並沒有參與燒錄的執行。

但我沒有選擇與他硬碰硬。並且這個問題其實有點急,因為會影響到程式傳到外測廠OSAT的時程、量產的時程。

持續深挖,找到Root Cause

持續嘗試、試圖找到證據服人

當天我決定晚上把筆電帶回家,想找到有沒有更深層原因引起這個問題,否則當前這個Wordaround雖然正確卻不能安撫對方情緒。一路從七點用到十一點多後,終於找到一點蛛絲馬跡,是程式中某個自動生成的設定檔沒有被生成。

隔天到公司我試著跟同事討論這個發現,正好有個比較資深的同事說到某個隱藏系統設定檔會影響檔案生成。我立刻去將晶片ABCD的隱藏設定檔做比較,果然只有A的設定檔中有少兩行內容。接著我把那兩行文字補上後,晶片A無論有沒有把那個被引用卻沒使用的檔案註解,都可以順利執行程式 了。

最終解決以及反思

提出這個解法後客戶終於接受了,同時我也找到一個程式底層錯誤並回報給工廠的RD,也讓自己貢獻多了一筆。

在這次應對的過程中我了解到,有時候雖然存在正確的Workaround,但不一定是對現場執行合適的,還要考慮到人與人互動間的複雜感情交流XD。我曾想過,如果當初我更堅定地說服對方採用 workaround,也許能節省不少時間。但也可能換來不必要的衝突與信任損失。

技術判斷之外的事,我還在學,也許這才是工程職場中最難的部分。

英文版本文章在此:The workaround worked, but the client said no: A debugging experience and reflection | by Ivan | Medium



留言
avatar-img
留言分享你的想法!
avatar-img
Ivan的沙龍
0會員
3內容數
一個工程師分享個人經驗的地方
你可能也想看
Thumbnail
搬家不只添購必需品,更能透過蝦皮分潤計畫賺取零用金!本文分享近期搬家時添購的各種實用好物,包含多功能工作桌、電競椅、氣炸烤箱、收納神器等,並詳述如何透過蝦皮雙 11 活動聰明購物、善用優惠,同時利用分潤機制將敗家行為轉化為被動收入,推薦給想聰明消費又想賺額外收入的你!
Thumbnail
搬家不只添購必需品,更能透過蝦皮分潤計畫賺取零用金!本文分享近期搬家時添購的各種實用好物,包含多功能工作桌、電競椅、氣炸烤箱、收納神器等,並詳述如何透過蝦皮雙 11 活動聰明購物、善用優惠,同時利用分潤機制將敗家行為轉化為被動收入,推薦給想聰明消費又想賺額外收入的你!
Thumbnail
貓奴每月進貢的時間又來啦! 身為專業貢品官,我從蝦皮搜尋各種零食,只為取悅家中三位貓主子!結果究竟會是龍心大悅,亦或是冷眼相待,就讓我們繼續看下去~
Thumbnail
貓奴每月進貢的時間又來啦! 身為專業貢品官,我從蝦皮搜尋各種零食,只為取悅家中三位貓主子!結果究竟會是龍心大悅,亦或是冷眼相待,就讓我們繼續看下去~
Thumbnail
事源我有個文檔用了前公司最新版本After Effect保存 帶回家才發現這個版本不兼容。而且第一個版本都不能打開(這也算AE超白癡的地方,2023都就已經不能打開2024的文檔)。
Thumbnail
事源我有個文檔用了前公司最新版本After Effect保存 帶回家才發現這個版本不兼容。而且第一個版本都不能打開(這也算AE超白癡的地方,2023都就已經不能打開2024的文檔)。
Thumbnail
專案失敗以往被定義為超期、超預算或無法結案,但現今專案管理思維重新把失敗定義為未能產生預期價值。文章從產品經理、軟體設計和管理流程三方面提出對失敗專案的見解和解決方法。
Thumbnail
專案失敗以往被定義為超期、超預算或無法結案,但現今專案管理思維重新把失敗定義為未能產生預期價值。文章從產品經理、軟體設計和管理流程三方面提出對失敗專案的見解和解決方法。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
標示全部為已讀失效 最近發現留言系統中,"標示全部為已讀"的速度明顯變慢,甚至有時會失效。許多使用者都報告遇到了相同的問題。這實際上是程式設計中一個常見的漏洞。系統沒有充分考慮到整體容量問題與效能,才導致了這樣的情況。(實際原因待查,此處僅為一般解說),當系統開始顯示緩慢或出現其他問題時,通常
Thumbnail
標示全部為已讀失效 最近發現留言系統中,"標示全部為已讀"的速度明顯變慢,甚至有時會失效。許多使用者都報告遇到了相同的問題。這實際上是程式設計中一個常見的漏洞。系統沒有充分考慮到整體容量問題與效能,才導致了這樣的情況。(實際原因待查,此處僅為一般解說),當系統開始顯示緩慢或出現其他問題時,通常
Thumbnail
在專案中與廠商測試API回傳的json字串出現無法解析的狀況,記錄發現過程與解決的紀錄,提供程式面和檔案面的解決方法。
Thumbnail
在專案中與廠商測試API回傳的json字串出現無法解析的狀況,記錄發現過程與解決的紀錄,提供程式面和檔案面的解決方法。
Thumbnail
這篇文章探討了在軟體開發中的技術債可能來自哪些原因,以及如何自動化偵測與修復技術債。作者透過分享不同情境下的技術債選擇,提供了對於技術債的思考與建議,針對開發人員在需要做出無奈的技術決策時,提供了一些建議。此外,還提供了一些在做出技術決策時的方法,如保留抽象層和避免vendor lock-in。
Thumbnail
這篇文章探討了在軟體開發中的技術債可能來自哪些原因,以及如何自動化偵測與修復技術債。作者透過分享不同情境下的技術債選擇,提供了對於技術債的思考與建議,針對開發人員在需要做出無奈的技術決策時,提供了一些建議。此外,還提供了一些在做出技術決策時的方法,如保留抽象層和避免vendor lock-in。
Thumbnail
這篇文章探討了在專案開發中遇到的時間壓力和執行困難,以及如何無效應對這些挑戰。 沒有工時估算、客戶溝通、交付時間表設定、程式品質管理、工作量管理、合同和專業態度等方面的建議。
Thumbnail
這篇文章探討了在專案開發中遇到的時間壓力和執行困難,以及如何無效應對這些挑戰。 沒有工時估算、客戶溝通、交付時間表設定、程式品質管理、工作量管理、合同和專業態度等方面的建議。
Thumbnail
整合測試的時候突然遇到一個突然無法登入產品網站的問題,把程式模組單獨拉出來測試又正常,觀察測試報告後發現出現發生登入異常的時間點並不固定,而且只要發生就會連續發生一段時間,程式被中斷掉。後來確認問題在...
Thumbnail
整合測試的時候突然遇到一個突然無法登入產品網站的問題,把程式模組單獨拉出來測試又正常,觀察測試報告後發現出現發生登入異常的時間點並不固定,而且只要發生就會連續發生一段時間,程式被中斷掉。後來確認問題在...
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News