大家好我是原po,大家討論那的激烈,我覺得我需要補充一下。
我認為有一個癥結點需要解釋一下,雖然有可能解釋完結果可能更糟 XD
因為中間有一段,完全是我的臆測,我也沒有絕對證據去證實我的論點。
如果各位要反駁我,我也完全接受。
我主要是要講一下,為何我會覺得B應該被火?
這個流程我最一開始以為的版本(1)是:
A mark 無法複製 -> B 確認無法複製 -> commit -> QA無法複製 -> release
但是第一次bug review meeting後,因為B說的話,我跟QA的認知是版本(2):
A mark 無法複製 -> B 確認問題還在 -> commit -> QA無法複製 -> release
QA跑去跟老闆告狀後,老闆把我跟B主管找過去,說如果調查是故意炸客戶,要火。
我跟B主管把B叫過來調查這件事,B這時給的是版本(3):
A mark 無法複製 -> B 沒有確認過 -> commit -> QA 無法複製 -> release
所以這時,B承認他沒有確認過。因為我們公司的流程,各自有各自的UT。
必須通過了UT,才會到QA那邊去打IT。但是B承認他沒有過UT就commit。
所以故事最終B被處罰是因為他手上的feature沒有經過自己UT測試就commit。
我對版本(3)有一些懷疑,由於過程中,我一直反覆問他兩個關鍵問題。
所以對話次序上我沒有100%肯定我記憶中的順序,敬請原諒。
我問B:你寫always,表示你一次也沒有pass過UT,為何你會commit?
B說:我只測過一次,A mark無法複製我就相信他,然後commit。
我問B:你只測過一次怎麼會是always。
B說:測一次中一次,我就寫always
我問B:你相信他無法複製,為什麼後來會說你早就知道會fail,你是故意commit?
B說:他寫無法複製,那肯定問題還在啊!
我說:這不一定吧?
B主管說:你是想說他無法複製肯定沒有解,所以想提醒大家對不對?
大概是上面這串對話,我反覆不斷用不同的方式問了好幾遍。
因為這過程中,B自己坦承吃下了兩個低級錯誤:
1. 只試一次就說是always
2. 沒有通過feature UT就commit code
但是我的理解是B這個資深工程師,不太可能犯這兩個低級錯誤。
我內心的推測是:他最初的說法其實才是對的。
也就是:『他反覆測了好幾次,都過不了(always),於是發bug給A。
A mark 無法複製後,他也拿UT起來測試,結果fail了。
後面就是如他所說,他發現這問題根本沒有解,一氣之下commit上去要炸A。』
最後老闆把我跟B主管叫過去說要處理B的時候,B主管跟B先套過招。
他們發現承認故意後果很嚴重,所以他們有有兩種選擇:
1. 不承認測過
2. 當時有測過結果是pass就commit了。
但是處理的當下,因為還不知道root cause,所有人都認為是always發生,包含B+客戶
所以要騙說當下有測過,結果是pass的說法很可能會被打臉。
於是他們選擇承認低級錯誤,規避『故意』這件事情。
另外他說他只測一次,同樣也可能是要規避always發生的bug,卻沒有複驗這件事。
我覺得他們的說法沒有說服我,但是我也真的沒有證據,所以最後選擇大家下台階。
另外當下我忙著要去處理客戶資料損毀的問題,沒有心思去深究這件事情。
另外我的部分,我前面有說我去處理客戶資料救援有成功。
客戶部分也沒有再追究這件事,最後整個產品是有順利賣出去。
所以我的部分,其實公司是沒有特別『處理』我。 但是升遷當然就不用想了。
以上跟大家報告一下
--