※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Soft_Job
標題

Re: [心得] 我在科技業遇到的鬼故事之一

時間
最新2023-08-05 00:06:00
留言588則留言,60人參與討論
推噓81 ( 887493 )
我是原po,我來交代一些細節,供大家參考一下。 角色: 我在這裡的角色是application owner,我要推一個應用給客戶去使用。 我這個application需要多個feature來組成,B是我其中一個feature owner。 B這個feature需要多個kernel function整合才有辦法達成,當然B自己也要寫不少code。 A是B負責的feature的kernel function owner,同時我也是A的主管。 我也有配到一組跟我對應的QA,而我要承擔最終的成敗。 這其中:BU1:{{A,我},QA} BU2:{B} 一開始A接到bug試不出來,有去找B討論,但是B認為步驟寫在bug report上很完整了。 而且B有其他feature要開發,無法把機器+環境借給別人。 然後我想可能是概率問題,去找QA幫忙,QA也有在他們各種環境下增加這個測項。 最後A/QA都試不出來,於是A把bug mark成無法複製。 QA也確認無法複製之後就close了 B發現被mark無法複製之後,B就把feature 打開commit上去。(我當時不知道他是故意) 根據我們release流程,他的change被QA挑進mouthly release中,通過測試release。 最後客戶拿到就炸掉了,如上一篇文章所講。 這個過程中,其實我犯了幾個錯誤。 B的report是寫發生率100%,但是包含B在內的RD都很習慣把(實驗一次:發生一次)=100% 所以我誤判這個問題並非100%,才有後面請QA幫忙大範圍測試。 事後分析,B的確也只遇過一次。當下能複製的環境,在最後檢討的時候也不見了。 最後釐清完反推才知道,原來在錯的環境下,就是100%複製沒錯。 第二個錯誤,我跟A其實有作code review。A也有找到幾個疑點,會導致bug描述的現象。 於是他也預防性的做了一些修正,但是因為無法複製問題,所以無法確認是否正解。 我手上一堆『無法複製』的問題,我最後卡關的條件就是QA大規模測試無法復現,加上 code review有正面反饋,我就給過了。因為也不是正解,我之前描述就沒講到這段。 第三個錯誤,我當時對QA team花的時間太少。客戶的使用情境,我們原本應該是要能夠 造出對應的測項去把關。 在PM跟我們(RD+QA)解釋完客戶的情境之後,我就單方面認為 『情境QA都知道了,QA都是老鳥應該是知道怎麼造測項吧?』 如同前面的敘述,我本身是RD leader,在臨危受命去協調這個applicaiton時, 我的mindset還是覺得我就是RD leader,而不是要扛成敗的人。 我覺得這個mindset 才是整個事件的主因。最後我也因為這樣失去一些升遷,但是我也覺得這超出我能力。 最後我分享上面這一些事情,其實都是各位工程師們的日常。 原本也沒有什麼特別好講的,我只是覺得最後B跳出來自爆這件事很扯。 所以我認為鬼故事的點,是B竟然會自爆。太不可思議了。 就如同我在上一篇文章裡面留言的,我一開始就知道我一定是全責。 也並沒有要把責任推給任何同事的意思(事實上也不可能推得掉XD)。 這件事的後續是,我跟QA留下來作PDCA,結論就是最後這關一定要弄清楚客戶環境。 客戶的部分,我負責了客戶資料救援,最後也是有救回來,可能是這樣所以考績沒影響。 其他人的部分,我是極力不想對A究責,B的主管也是一樣的態度。 最後我們兩個送上去給老闆的說法是這兩個人的責任,10分裡只有1分。 但是老闆還是砍了他們分紅,我們打上去的考績也是被打折。 A因為這件事,有點不爽的離職了。 我因為這件事,有點心灰意冷.....覺得自己不勝任,後來也是離職了。 B的部分,我不知道他心理怎麼想,我只知道他最後因為請人代刷門禁被火。 下面是技術細節,可略過。 B的環境,其實是因為他在測A的功能之前,先跑了網路相關測試。 在網路的測試中,有一個Link Aggregation的測試中,跑完忘記把LAGG拆掉。 導致B測A的code時,因為有LAGG所以A的code 才跑出不預期的行為。 而B其實也沒有描述他前一天他的機器有跑什麼測試(這也合理)。 之後有人發現網路測試中,LAGG沒有拆掉,導致後面一堆測試錯亂,所以『修正』了。 所以後面我們大規模測試也沒有測出這問題。 客戶環境,就是使用LAGG。而QA也有測LAGG,也有測A的功能,就是沒有兩個一起測過。 關於B的處理,補充一段後續。 會議當下我聽到B自爆,我正在想要怎麼處理,要去找B的主管。 結果QA直接report給老 闆這件事,我們就不得不處理。 我/B/B的主管,三個人在會議室。 我問B:你是看到A/QA把bug close後,你又測了一次發現還是一樣,所以才打算commit上 去想要highlight他是嗎? B說:沒有,後來就沒有測。 我問:你沒有測,你怎麼會知道這個問題還在? B說:他就說can not reproduce啊,所以問題一定還在。 我說:這不一定吧? B的主管:所以你只是因為他沒有解,所以你認定問題還在,才想要highlight這個問題? B說:對,我只是想提醒大家問題沒有被解決。 我說:那你到底測過幾次? B想了一下說:1次 我說:可是你寫always耶! B說:我就想說測1次中一次就100%啊。 後來B先被請出去了,我跟他主管談這件事。 我們最後的共識是相信B主管的總結:因為bug close當下,那段有問題的LAGG test code 已經被修掉很久了。 B不太可能有真的機會複製出這個問題。 而且LAGG test code被修 掉這件事,也可以解釋為何我跟QA沒有辦法複製。 這個說法,大家都會有台階下。 所以最後我沒有去糾結為何他那麼明確知道bug還在這件事.....我接受B主管的說法了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.74.78 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1690282742.A.167.html

588 則留言

※ 編輯: pokkys (122.116.74.78 臺灣), 07/25/2023 19:01:23

xam, 1F
B只有遇到一次,且無法複製,那就是Once,不是Always

awenracious, 2F
別的不說 B的個性人品道德應該是有問題的

ybon3, 3F
有些大環境的管理方式真的是很打擊前線人員士氣

ko27tye, 4F
B只出現一次 那把功能打開不是正常嗎 A和QA都確認過了

pokkys, 5F
的確只有一次,他不是QA,也不好要求多測幾次。總之我是

pokkys, 6F
接受。

pokkys, 7F
所以B根本不需要講他是故意的話。

airtsubasa, 8F
自爆的場合是跟你一對一閒聊?

sirlers, 9F
QA建完測項沒跟PM/leader核對過需求嗎? 這補述B根本該0

sirlers, 10F
責 真的做出release到客戶端的是QA呀 你們這流程B當時的

sirlers, 11F
確就該commit了

viper9709, 12F
推四樓

superpandal, 13F
B不講但是B commit了 頂多責任比較少才算公正

airtsubasa, 14F
測試沒有做整合測試也是恐怖?

superpandal, 15F
這不是純一個人的問題 不可能零責的

pokkys, 16F
沒錯原本以為B是無責,在我bug review找他進來幫忙時自爆

pokkys, 17F
,我都不知道他是哪裡搞錯。 我猜他沒有意識到現在是在討

pokkys, 18F
論炸在客戶的問題。 他當下也不是故意commit的,因為他只

pokkys, 19F
測過一次。 A mark 無法複製後,他是沒有複驗的。 我猜

pokkys, 20F
測他只是聽到A的bug 被客戶打出來之後想要嘴一波。

sirlers, 21F
你說"原本以為" 那現在回看呢? B作業上的疏失在哪?

pokkys, 22F
如果B是明知道code 有問題,但是他故意不擋,那就有責任

pokkys, 23F
了。 但是他不自白,沒人會知道他是故意的。 就算我事後

pokkys, 24F
覺得他可能只是嘴秋,但是會議上留紀錄了啊。

superpandal, 25F
不講責任小 講了責任大

superpandal, 26F
他是統整的人還是會有小小的責任

CindyK, 27F
推mindset

justfortest, 28F
怎麼覺得 B 會被究責原因的在心態(用客戶HL),不然

justfortest, 29F
處理的方法很合理阿。owner + QA 都說沒問題,憑甚

justfortest, 30F
麼要求 B 說要擋。再退一步,不管 B 心態有沒有問題

justfortest, 31F
,就算是他故意這樣做,不是都有A +QA 背書嗎,根因

justfortest, 32F
還是 A + QA 把關失誤。不過話說回來,用客戶 HL 是

justfortest, 33F
真的蠻猛的,自己也是會怕這樣的同事就是了XD

sirlers, 34F
那再問你們這制度B該怎麼擋? 是要他承擔QA責任?

sirlers, 35F
這篇問題二就說了 該issue身為項目負責人的原po是給關的

sirlers, 36F
B真要HL是要越級申訴到大老闆嗎?

superpandal, 37F
B可以向上反映 A要把什麼關...寫一個可以預知所有情

ikachann, 38F
B的問題一直都不是在流程上,是個人道德問題,不管是知

ikachann, 39F
道還推並自白,或是知道也推但裝死,這個人格真的不行

GoalBased, 577F
你說QA直接report給老闆,是說QA跟老闆說有人故意破壞

GoalBased, 578F
的意思嗎?

GoalBased, 579F
這篇看的話B的確沒責任,但相關人士或老闆知道他可能

GoalBased, 580F
是"故意"的話,以後不被信任或被處理就很正常

shadow0326, 581F
請人代打卡就被火掉 我看公司也是早就想火他了啦

kingofage111, 582F
原po問題也不會少到那,只想把整件事情推向b是故意

kingofage111, 583F
心態

windlll, 584F
我覺得最屌的就是B自己用什麼環境,他其實沒搞清楚

super2457, 585F
我自己如果是A,複製不出來如果要改status應該是退給B

super2457, 586F
不會轉給QA,就算真的轉到QA複製不出來也會跟A+B討論吧

natsufi, 587F
覺得三方都蠻衰的,複合情境難免漏測,但讓你們心累認為

natsufi, 588F
是鬼故事的應該是B的態度

class177, 589F
呵呵呵 講了這麼多,出問題那段code誰寫的?A 100%全責