顯示廣告
隱藏 ✕
※ 本文轉寄自 ptt.cc 更新時間: 2023-07-28 17:42:02
看板 Soft_Job
作者 handsomeLin (NickLin)
標題 Re: [心得] 我在科技業遇到的鬼故事之一
時間 Fri Jul 28 02:54:28 2023



閒閒沒事來回第三篇繼續捍衛一下B

我拿我自身經驗分享一下,我在亞麻在Amazon模改的Android OS底下開發過Android Appl
ication,雖然不完全一樣但是應該有點相似

首先是討論開Ticket關Ticket的問題,如果今天用新的OS版本炸掉過一次我開Ticket給OS
組,OS組回說不可能有問題然後我也剛好沒法在重現的話,肯定是讓Ticket關了,Reopen
的條件是我馬上能在Repro一次


原因很簡單:我不負責你組的Code我不可能去看你的Code然後再跟你說你哪邊有Risk,且
確實也有可能是我自己的錯誤(環境、我自己的Feature沒寫好等等),如果你拍胸脯保
證你的OS change沒問題能進版,我在app組有什麼能力去Block你?我最多也只會在會議
裡稍微提醒說要注意畢竟沒遇過第二次,那這個問題你們整組都知道了我想絕對不是一次
溝通而已


那你說B自爆說硬要highlight這個問題,我是覺得高機率是屁話或純粹跟你們吵架而已,
他自己肯定不可能100%Repro,如果會100%發生他要怎麼開發?搞不好你走到他機器旁邊
就遇到資料毀損呢,感覺是你們組太常搞被開Ticket不解決就關的問題,這次讓你們知道
嚴重性而已


希望你們在職場上永遠不要成為B,發現Bug還要被Bug Owner甩鍋責備發現過還不堅持到
底,謝謝大家

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 70.183.16.146 (美國)
※ 作者: handsomeLin 2023-07-28 02:54:28
※ 文章代碼(AID): #1amhrc-E (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1690484070.A.F8E.html
luciferii: 但是B最後的自我辯護不是無法repro,而是完全沒作。1F 07/28 02:56
luciferii: 然後沒測就開出去了。
luciferii: 如果真的測了但無法repro,其實他不需要說謊。
luciferii: 只測一次是B自己講的,100% repro也是B自己講的,所以
luciferii: 只測一次就失敗,回報後也不複測的B,還是開發完了還
brucetu: 其實B沒有義務repro並跟進這個bug那是A組的事6F 07/28 03:05
luciferii: release出去,如果他不是故意才更恐怖吧,代表他都是閉7F 07/28 03:05
luciferii: 著眼開發。
labbat: 現在根本沒有B現身說法唄,是只重現出一次或沒有重現出來9F 07/28 03:06
luciferii: 照上篇說法,B至少要UT,所以第一次 UT 失敗開Bug。10F 07/28 03:07
luciferii: 沒完成UT當然責無旁貸。除非他說第二次UT無法repro。
luciferii: 但他是説第二次他沒UT。
labbat: 這分兩部分,UT自清或者UT高光13F 07/28 03:11
labbat: 不論他UT自清做到百分之一百都不是老闆想知道的
labbat: 老闆要知道這個已經在客戶爆炸的bug的UT有沒有測
labbat: 究責的是UT高光有沒有跑徹底,至於自清沒做到那是延伸
luciferii: 他的UT工作跟自清或高光無關吧,本職上就是UT自己這關17F 07/28 03:15
luciferii: 的東西確認沒問題才交下一關。
labbat: 這種情境要回應老闆認為的UT,簡單來說就是回應沒有做到19F 07/28 03:15
labbat: 看了好久我看不懂你的意思,什麼是自己這一關
luciferii: 流程: A code (UT) -> B(UT)(整合)(UT) -> QA21F 07/28 03:20
luciferii: 不管有沒有 Bug 都是這流程,所以B第一次回退後,A
labbat: 你是要說B UT自清 還是整合UT高光23F 07/28 03:22
luciferii: close後再送過來的東西,B還是要UT和整合完才下一步。24F 07/28 03:22
labbat: 整合不也是UT,什麼叫作UT和整合25F 07/28 03:23
luciferii: B無責:A code -> B UT無法復現 -> QA26F 07/28 03:23
luciferii: B重責:A code -> B UT復現,故意放過-> QA
luciferii: B輕責:A code -> B 沒UT -> QA
luciferii: UT(Unit Test)整合(integration)IT(integ. Test)
labbat: A掛理想B behavior driver UT PASS,B 掛理想A behavior30F 07/28 03:26
labbat: driver UT PASS
labbat: 退一萬步是整合UT沒測過
luciferii: 但B是說他第二次完全沒作UT。33F 07/28 03:28
luciferii: 沒什麼「掛理想對方作過」,照上篇原PO提到公司流程,
labbat: 前文沒有提到是指B掛真A的UT,或者B掛A BM的UT 阿35F 07/28 03:30
luciferii: 每個環節都要自己作UT。36F 07/28 03:30
labbat: 每個環節都要,這不就是系統測試了37F 07/28 03:31
labbat: 我不是刁難,而是自己的每個環節都要UT,與整合後的每個
labbat: 環節的UT,這兩個落差很大
luciferii: B的東西要用到A,所以B的UT一定會包含到A的code40F 07/28 03:38
luciferii: 不是UT階段就是IT階段。
有人UT有在掛別人的code UT的嗎?這還叫UT嗎? 那怎麼不說A在UT的時候就發現問題?
要是今天有C有D,D發現問題難道叫D解決?我是不相信B今天自己測不過敢交啦,自己的
環境都會炸了怎麼可能交,你說OS每天在炸我開發我還能交,要是這麼好Repro我還不一
秒鐘拿給隔壁組看個三百次還要拖三個禮拜?
你這種態度不就最接近Customer端的人最衰,反正底層的人亂寫只要說上面的人不好好測
就拍拍屁股走了?
labbat: 如果貴單位覺得合理,那我承認是我錯了42F 07/28 03:39
luciferii: 啊不是,不管A寫的code怎樣,B自己要交給QA的東西自己43F 07/28 03:41
luciferii: 都說沒測過,怎麼樣都說不過去吧。
labbat: 對對,太不禮貌了45F 07/28 03:45
holebro: 大家不睡覺在聊工作的事也太辛苦了吧46F 07/28 04:21
※ 編輯: handsomeLin (172.58.208.15 美國), 07/28/2023 04:52:50
xam: 也是碰過有一派會說他自己寫完不用測整套,直接給QA去驗merge47F 07/28 04:49
xam: 起來的
DrTech: 關鍵在於該公司的UT,是在開發者電腦上自測的而且沒有記錄49F 07/28 08:05
DrTech: 。這種體制,有沒有UT其實不重要了,UT 淪為自由心證。該
DrTech: 公司根本沒有正常有經驗的管理者。
DrTech: 當然淪為情緒與政治之爭。
DrTech: 如果UT是在第三方測試電腦上,B只要能成功執行Bug一次,其
DrTech: 他人自然也容易復現Bug,也沒那麼多問題了。
DrTech: 有沒有UT,竟然是靠嘴巴說出來的,而且大家還採信,真是奇
DrTech: 葩公司啊。
wtl: B的UT就只是確保B自己code沒問題就好了吧 B做事類似開發UI把A57F 07/28 08:16
wtl: 的function給使用者點 至於點下去不會爆炸 那是A的UT要做的
wtl: 事
Litfal: 沒有模擬環境的測試,UT再多也是另一回事阿60F 07/28 08:35
wmtsung: 這裡有個點是我覺得A這邊最該負責的,那個A要關掉bug時61F 07/28 09:35
wmtsung: 已經說是B把環境搞砸,那這時候B要UT什麼?B真的UT且fai
wmtsung: l那也符合A說的B搞砸環境啊
wmtsung: B這時候無法證明自己環境沒問題也只能用在A和QA的環境下
wmtsung: 跑沒問題的結果當UT不是嗎?
wmtsung: 當然最正常的情況應該像DrTech講的,不然在被A判斷為環
wmtsung: 境搞砸時,B即使在自己機器上複驗fail也已經沒有意義
jamesho8743: OS修好 B是feature owner總是要測過一遍吧? 這邊的68F 07/28 10:08
jamesho8743: 問題是B自己說他知道還是會炸 不是你說的剛好沒辦法
jamesho8743: 重現
wmtsung: B說還是會炸其實沒啥問題,因為A已經說B搞砸環境了,那71F 07/28 10:13
wmtsung: 就算B的環境一直fail也符合A認為可以關掉bug的條件啊
jamesho8743: 最上層 或者最接近customer端的本來就最衰 底層出了73F 07/28 10:22
jamesho8743: 問題如果死不承認 大家還是會去追UI面 變成你要去證
jamesho8743: 明是底層的問題
wmtsung: B有部分責任我是沒意見,但要說B故意炸客戶或是主責我認76F 07/28 10:24
wmtsung: 為完全沒道理
luciferii: B一開始就自己說要故意炸客戶來HL啊,之後調查B主管才78F 07/28 10:38
luciferii: 提出追加解釋。所以原PO才說,如果B講的真話而不是氣話
luciferii: 那就非常嚴重。
q253upng: 檢討B的心境到底有什麼魔力?看到不少人包含原po很愛討81F 07/28 10:47
q253upng: 論這個,正常公司就是去檢討A那端為何攔不了,盡力去補
q253upng: 強最原始的漏洞,檢討B真的有助於公司的流程改善嗎
luciferii: 說B不敢交,但他就真的交了,不管是因為(1)他自己說沒84F 07/28 10:48
luciferii: 測,或(2)他測了沒過還是硬交,現實就是他交了。
luciferii: 除非是(3)他測了,沒法復現,所以安心交了。但他自己否
luciferii: 認了這條路...
luciferii: 檢討B很重要,就像B知道輪胎有問題,還故意組裝到車上
luciferii: 害死人後,他不能說「輪胎又不是我作的,跟我無關。」
luciferii: B主管也知道不能這樣講,所以才改成「B組裝完沒再試開
luciferii: 過,所以他只是猜測輪胎有問題,不是故意。」
wmtsung: B發現的問題被A說是B搞砸環境啊,你A先扣人家這樣一個大92F 07/28 10:57
wmtsung: 帽子再來說人家沒複測?我就問B複測fail的話不是符合A講
wmtsung: 的B環境有問題嗎?還是B要自證環境沒問題?那A說B環境有
wmtsung: 問題前有先提供證明嗎?
q253upng: B是嚴重懷疑輪胎有問題,原廠回信說你搞錯了,是測試方96F 07/28 11:05
q253upng: 法有問題,B鼻子摸摸把輪胎裝上去結果出事死人,那請問
q253upng: 誰該被優先檢討呢
wmtsung: 在A說B搞砸環境後B複測兩種結果基本上都是自己有問題啊99F 07/28 11:09
wmtsung: ,pass就是當初自己步驟有問題,fail就是A說的環境搞砸
wmtsung: 不可信,在那個當下A部門就穩贏的,現在還在意那個複測
wmtsung: ?
giacch: 事後調查輪框上有一顆螺絲規格不合(LAGG)103F 07/28 11:17
q253upng: 今天B還可能要裝5種輪胎,B也只能看看每個輪胎外觀是否104F 07/28 11:18
q253upng: 有明顯毀損,真正該知道問題並且有能力把問題修復的也
q253upng: 只有原廠,
q253upng: 事後出事B就在mur mur,那個我早就知道會出事了啦,請
q253upng: 問這個系統我們該優先檢討誰呢
wtl: B不裝輪胎還會被上面的老闆罵 原廠都跟你說沒問題了 還不裝109F 07/28 11:22
luciferii: 現在就是B自己說他第二次連外觀都沒看就放行了110F 07/28 11:23
luciferii: 這兩次code不一樣喔,B不管這Bug有沒有修,都要重測吧
giacch: 你問我就是B, 因為B反應問題卻不協助處理, 要A自己通靈112F 07/28 11:24
luciferii: 而且B說的不是「我早知有問題」而是「我早知有問題但是113F 07/28 11:25
giacch: 原廠是說無法重現B說的狀況, 不是說沒這回事114F 07/28 11:25
luciferii: 故意裝上去要看它出事。」115F 07/28 11:25
q253upng: 今天很多人糾結B沒有再測一次,那請問輪胎師父收到原廠116F 07/28 11:26
q253upng: 回覆沒問題的回信後,請問輪胎師父要繼續跟原廠說,你
q253upng: 的輪胎就是有問題,找出問題再回我一次,這樣更不合理
q253upng: 吧
luciferii: 原廠送來第二顆輪胎了喔,不是原本那顆。120F 07/28 11:27
giacch: 就說A沒保證沒問題, 是說測不出資料毀損的狀況, 中文不好?121F 07/28 11:28
luciferii: 原PO和A有改過code重新commit。122F 07/28 11:28
wmtsung: 在當下B在自己電腦上測已經沒任何意義了啊,環境被判定123F 07/28 11:29
wmtsung: 搞砸,那用A和QA的環境來測試當結果有啥問題?
giacch: 那是只是用猜測問題點來改(就是在通靈啦), 並非針對問題點125F 07/28 11:30
luciferii: 正常流程也是要找出B環境的問題,萬一客戶跟B同環境呢?126F 07/28 11:31
wmtsung: A認為他複製不出來這個問題,肯定是B把自己環境搞砸了…127F 07/28 11:31
wmtsung: 這首篇原po自己寫的,誰中文不好?
luciferii: 後來證明也是。129F 07/28 11:31
wmtsung: A懷疑B環境有問題是A要證明還是B130F 07/28 11:32
giacch: 關鍵的LAGG是誰的, 有沒有問題, 就原PO文章我看不出來131F 07/28 11:32
luciferii: A和B要一起查,這沒法靠單邊找出來問題。132F 07/28 11:33
luciferii: 所以說兩邊不願意合作就要叫主管。
justfortest: 還是我們這邊請主管說有沒有讓 A B合作找問題 XD134F 07/28 11:38
q253upng: 要找出B環境問題完全同意,但我自己認為這是在A被開iss135F 07/28 11:38
q253upng: ue這段時間該做;就像原廠收到輪胎問題不能確定,起碼
q253upng: 跟輪胎師父說先緩緩不要裝,而不是回信說是你環境有問
q253upng: 題
luciferii: A只寫無法復現吧,系統上通常不會白目去標是B有問題。139F 07/28 11:40
giacch: 如果去車行換輪胎, 結果輪胎脫落, 是找車行還是原廠140F 07/28 11:40
justfortest: 找車行,然後師父裝的按照流程,就會找原廠 我猜啦141F 07/28 11:42
giacch: 然後車行發現原廠胎有瑕疵, 之前也有發現鎖不緊的情況142F 07/28 11:42
justfortest: 對啊 但原廠說沒問題不是嗎 還是師父比原廠懂輪胎143F 07/28 11:43
giacch: 車行有跟原廠反應, 但原廠說經測試無論胎脫落的情況144F 07/28 11:44
q253upng: 先找車行找出問題,但假設是原廠說沒問題的輪子出包,145F 07/28 11:44
q253upng: 所有因輪胎脫落造成的損害要跟原廠求償
giacch: 所以車行照常交車給客戶, 害客戶出車禍147F 07/28 11:45
giacch: 後續文章資料就不齊全了 => 後來車行發現同時安裝LAGG會
giacch: 後來車行發現同時安裝LAGG會導致輪胎脫落
giacch: 這邊LAGG是不是原廠, 有沒有瑕疵, 文章都看不出來
justfortest: 按照原文 LAGG 是客戶車上有的歐,不是師父另外裝的151F 07/28 11:50
justfortest: 吧
luciferii: 問題就是B自己說他確信輪子會出包,故意裝上去要HL原廠153F 07/28 11:50
giacch: 只知道不要同時安裝LAGG(或LAGG已修正? 修掉?) 就沒事154F 07/28 11:50
giacch: 對 就是剛好LAGG客戶的車上有, 所以就出車禍了
luciferii: LAGG是客戶原本有,但原廠沒想到,所以這是原廠的鍋156F 07/28 11:51
luciferii: 車行剛好有LAGG的車子,但是也沒想到是這問題,只想釘
luciferii: 原廠,就變事故了。
giacch: 而且這LAGG應該也是車行裝的? 那要怎麼究責呢?159F 07/28 11:53
q253upng: 別忘記B有拿到原廠的回覆信,而且最終也只有輪胎廠能修160F 07/28 11:53
q253upng: 復這問題,輪胎師父能做的就是被客人罵而已
justfortest: 等等 LAGG 什麼時時候變成車行裝的162F 07/28 11:53
giacch: 好修正一下 LAGG不知道怎麼來的 我只是猜測是車行(B)裝的163F 07/28 11:55
luciferii: LAGG是客戶環境標配,不在開發案本身裏。164F 07/28 12:01
luciferii: 但應該在開發前要調查清楚。
labbat: 車行有沒有是未知的,只是客戶有且裝了穩定出bug166F 07/28 12:03
giacch: 但B有踩到LAGG, 所以我是猜LAGG是公司做的功能167F 07/28 12:04
labbat: 時間上LAGG是亡羊補牢發現,或者發覺到上新code還是錯的168F 07/28 12:10
labbat: 至於誰有誰沒有,兩邊互推串資源義務無益釐清事實
giacch: LAGG -> Link Aggregation? 所以是在講NAS喔 XD170F 07/28 12:12
luciferii: 1.是,但不是只有NAS會用。171F 07/28 12:26
giacch: 若是分享器更新完弄壞資料, 廠商會跑來救資料也是很神奇172F 07/28 12:32
wmtsung: 後來發現LAGG會造成問題的不是車行是原廠,車行的環境在173F 07/28 12:36
wmtsung: 客戶炸了之後原廠拿去測也無法復現,最後原廠才知道師父
wmtsung: 在測到問題前一天做過網路測試所以有LAGG
brucetu: 是啊 不知道LAGG是什麼也可以討論客戶車上有LAGG、LAGG是176F 07/28 12:37
brucetu: 不是原廠,討論半天..
brucetu: 在有LAGG的環境會炸掉A的能力就是很弱,不知道有什麼好
brucetu: 說,原原Po還想要講A是RD不想讓他揹這個bug的責任
brucetu: 我寫一個database driver給你用,在cluster環境會把資料
brucetu: 炸掉,但是我只有在單機環境測過都沒問題啊,一定是你環
brucetu: 境有問題,看誰聽得下去
brucetu: 「誰叫你們不說你們有用到cluster,沒說是要我通靈解bug
brucetu: ?」A就這態度
giacch: 原PO有提到LAGG技術有不照原本順序的特性185F 07/28 12:44
giacch: 所以車行原本是編號順序裝螺絲, 結果用了LAGG技術導致
giacch: 導致螺絲裝錯位置, 所以輪胎就脫落了 XD
wmtsung: 照樓上說法公司該去跟客戶說你們搞砸環境啊…188F 07/28 12:48
brucetu: 不是好嗎你在亂比喻什麼189F 07/28 12:48
giacch: 沒有給A LAGG環境是原PO的錯, A應該只是照需求做190F 07/28 12:48
brucetu: 就事論事如果你想要比喻就拿完全可類比的範例,不要已經191F 07/28 12:49
brucetu: 是不可類比的領域還硬要繼續用這個範例
giacch: 不好意思 讓你困惑了 哈哈哈193F 07/28 12:52
w0005151: 我覺得B講那些話只是意氣用事,他肯定沒有能力repro194F 07/28 12:52
w0005151: 如果能的話以B個性不可能不嘴一頓A/QA,然後公司面究責
w0005151: 要以local UT的狀況當依據更是沒道理,你不能因為一個人
w0005151: 講話機歪就說他責任最大,我還是傾向與其看一個人說了
w0005151: 什麼,不如看他做了什麼,事實就是B已經做了他職責內能
w0005151: 做的所有事,但A以及QA都沒有把他當一回事
giacch: 我認為B不該沒驗證通過就把功能啟用 that's all200F 07/28 12:57
brucetu: 樓上,同理,那QA的職責呢?201F 07/28 12:59
giacch: QA失能 應該整組換掉 -> 後來看原PO說QA是老闆的人 XD202F 07/28 13:00
brucetu: 現在是B沒過QA卻過了?結果是整個開發流程有問題,這樣203F 07/28 13:01
brucetu: 還算不算B的問題?
wmtsung: 這部分就我說的,A認為B環境不可信,所以B以QA結果當驗205F 07/28 13:01
wmtsung: 證你也不能說他故意搞事
brucetu: 事實上B測第二次爆第二次也只會被A說你就環境有問題207F 07/28 13:02
giacch: QA過了 就扯到原PO了 沒提LAGG環境208F 07/28 13:02
w0005151: 阿如果他堅持不啟用,理由是我的local沒測過,然後delay209F 07/28 13:02
w0005151: 客戶不爽跑掉,是不是又要說B責任最大
w0005151: 應該要檢討的是CICD有沒有跑UT,跑integration test
giacch: 你我看法不同 如此而已212F 07/28 13:04
wmtsung: 我就說當下A部門怎樣都贏,但在客戶那裡炸了還回來找B究213F 07/28 13:04
wmtsung: 責真是可怕…
w0005151: 現在講都事後諸葛,回到release前看,QA測沒事,A測沒事215F 07/28 13:04
w0005151: CICD(不知道有沒有)有過,就B的local有問題,那怎算?
giacch: w0說的並沒發生 因為往不同方向發展了 是要討論別的案子嗎217F 07/28 13:05
giacch: 就B原本是救世主, 但不知為何後來裝沒看到, 微笑插刀
brucetu: w0說的就是原原PO描述的release前的事實啊219F 07/28 13:11
wmtsung: A部門一開始真把B當救世主就不會在客戶那裡炸了220F 07/28 13:11
wmtsung: 不要人當初都被你們殺了,事後需要時再來封聖好嗎
giacch: 我是指w0講delay客戶跑掉那段222F 07/28 13:44
luciferii: B的local沒測過就是把環境和repro證明錄下來證明就好了223F 07/28 13:44
luciferii: 只要有人環境沒測過就是要找環境或code哪有問題
luciferii: 你能復現就不會是你問題,現在是B除了一開始說有問題後
luciferii: 就不管了,也不提供驗證方法,最後也不複測。
luciferii: 不然就是你復現不了,那也不會有你責任。
gn00670191: 檢討B根本沒用 來個CDEF還不是一樣 該討論的是怎麼擋228F 07/28 14:38
gn00670191: 好啦 就讓B被火 然後CDEF還是一樣 你天天都在管人而已
gn00670191: 每天問底下所有員工是不是有不爽就好啦 事情都不用做
w0005151: 就算客戶沒跑,feature因為一個RD自己也無法重現的local231F 07/28 15:43
w0005151: test fail而delay,你覺得他不會被HL更嚴重?
w0005151: B堅持不開feature,大家就覺得在無理取鬧而已,根本沒用
giantwinter: 講真的 主管只是遷怒B而已  有問題的是A跟QA234F 07/28 16:34

--
※ 看板: Soft_Job 文章推薦值: 0 目前人氣: 0 累積人氣: 46 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇