PTT評價

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

看板Soft_Job標題Re: [心得] 我在科技業遇到的鬼故事之一作者
handsomeLin
(NickLin)
時間推噓61 推:63 噓:2 →:187

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

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

首先是討論開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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 70.183.16.146 (美國)
PTT 網址

luciferii07/28 02:56但是B最後的自我辯護不是無法repro,而是完全沒作。

luciferii07/28 02:56然後沒測就開出去了。

luciferii07/28 02:57如果真的測了但無法repro,其實他不需要說謊。

luciferii07/28 03:04只測一次是B自己講的,100% repro也是B自己講的,所以

luciferii07/28 03:04只測一次就失敗,回報後也不複測的B,還是開發完了還

brucetu07/28 03:05其實B沒有義務repro並跟進這個bug那是A組的事

luciferii07/28 03:05release出去,如果他不是故意才更恐怖吧,代表他都是閉

luciferii07/28 03:05著眼開發。

labbat07/28 03:06現在根本沒有B現身說法唄,是只重現出一次或沒有重現出來

luciferii07/28 03:07照上篇說法,B至少要UT,所以第一次 UT 失敗開Bug。

luciferii07/28 03:08沒完成UT當然責無旁貸。除非他說第二次UT無法repro。

luciferii07/28 03:08但他是説第二次他沒UT。

labbat07/28 03:11這分兩部分,UT自清或者UT高光

labbat07/28 03:11不論他UT自清做到百分之一百都不是老闆想知道的

labbat07/28 03:12老闆要知道這個已經在客戶爆炸的bug的UT有沒有測

labbat07/28 03:13究責的是UT高光有沒有跑徹底,至於自清沒做到那是延伸

luciferii07/28 03:15他的UT工作跟自清或高光無關吧,本職上就是UT自己這關

luciferii07/28 03:15的東西確認沒問題才交下一關。

labbat07/28 03:15這種情境要回應老闆認為的UT,簡單來說就是回應沒有做到

labbat07/28 03:18看了好久我看不懂你的意思,什麼是自己這一關

luciferii07/28 03:20流程: A code (UT) -> B(UT)(整合)(UT) -> QA

luciferii07/28 03:21不管有沒有 Bug 都是這流程,所以B第一次回退後,A

labbat07/28 03:22你是要說B UT自清 還是整合UT高光

luciferii07/28 03:22close後再送過來的東西,B還是要UT和整合完才下一步。

labbat07/28 03:23整合不也是UT,什麼叫作UT和整合

luciferii07/28 03:23B無責:A code -> B UT無法復現 -> QA

luciferii07/28 03:23B重責:A code -> B UT復現,故意放過-> QA

luciferii07/28 03:24B輕責:A code -> B 沒UT -> QA

luciferii07/28 03:26UT(Unit Test)整合(integration)IT(integ. Test)

labbat07/28 03:26A掛理想B behavior driver UT PASS,B 掛理想A behavior

labbat07/28 03:26driver UT PASS

labbat07/28 03:28退一萬步是整合UT沒測過

luciferii07/28 03:28但B是說他第二次完全沒作UT。

luciferii07/28 03:30沒什麼「掛理想對方作過」,照上篇原PO提到公司流程,

labbat07/28 03:30前文沒有提到是指B掛真A的UT,或者B掛A BM的UT 阿

luciferii07/28 03:30每個環節都要自己作UT。

labbat07/28 03:31每個環節都要,這不就是系統測試了

labbat07/28 03:36我不是刁難,而是自己的每個環節都要UT,與整合後的每個

labbat07/28 03:36環節的UT,這兩個落差很大

luciferii07/28 03:38B的東西要用到A,所以B的UT一定會包含到A的code

luciferii07/28 03:38不是UT階段就是IT階段。

有人UT有在掛別人的code UT的嗎?這還叫UT嗎? 那怎麼不說A在UT的時候就發現問題? 要是今天有C有D,D發現問題難道叫D解決?我是不相信B今天自己測不過敢交啦,自己的 環境都會炸了怎麼可能交,你說OS每天在炸我開發我還能交,要是這麼好Repro我還不一 秒鐘拿給隔壁組看個三百次還要拖三個禮拜? 你這種態度不就最接近Customer端的人最衰,反正底層的人亂寫只要說上面的人不好好測 就拍拍屁股走了?

labbat07/28 03:39如果貴單位覺得合理,那我承認是我錯了

luciferii07/28 03:41啊不是,不管A寫的code怎樣,B自己要交給QA的東西自己

luciferii07/28 03:41都說沒測過,怎麼樣都說不過去吧。

labbat07/28 03:45對對,太不禮貌了

holebro07/28 04:21大家不睡覺在聊工作的事也太辛苦了吧

※ 編輯: handsomeLin (172.58.208.15 美國), 07/28/2023 04:52:50

xam07/28 04:49也是碰過有一派會說他自己寫完不用測整套,直接給QA去驗merge

xam07/28 04:49起來的

DrTech07/28 08:05關鍵在於該公司的UT,是在開發者電腦上自測的而且沒有記錄

DrTech07/28 08:05。這種體制,有沒有UT其實不重要了,UT 淪為自由心證。該

DrTech07/28 08:05公司根本沒有正常有經驗的管理者。

DrTech07/28 08:05當然淪為情緒與政治之爭。

DrTech07/28 08:07如果UT是在第三方測試電腦上,B只要能成功執行Bug一次,其

DrTech07/28 08:08他人自然也容易復現Bug,也沒那麼多問題了。

DrTech07/28 08:14有沒有UT,竟然是靠嘴巴說出來的,而且大家還採信,真是奇

DrTech07/28 08:14葩公司啊。

wtl07/28 08:16B的UT就只是確保B自己code沒問題就好了吧 B做事類似開發UI把A

wtl07/28 08:16的function給使用者點 至於點下去不會爆炸 那是A的UT要做的

wtl07/28 08:16

Litfal07/28 08:35沒有模擬環境的測試,UT再多也是另一回事阿

wmtsung07/28 09:35這裡有個點是我覺得A這邊最該負責的,那個A要關掉bug時

wmtsung07/28 09:35已經說是B把環境搞砸,那這時候B要UT什麼?B真的UT且fai

wmtsung07/28 09:35l那也符合A說的B搞砸環境啊

wmtsung07/28 09:38B這時候無法證明自己環境沒問題也只能用在A和QA的環境下

wmtsung07/28 09:38跑沒問題的結果當UT不是嗎?

wmtsung07/28 09:41當然最正常的情況應該像DrTech講的,不然在被A判斷為環

wmtsung07/28 09:41境搞砸時,B即使在自己機器上複驗fail也已經沒有意義

jamesho874307/28 10:08OS修好 B是feature owner總是要測過一遍吧? 這邊的

jamesho874307/28 10:08問題是B自己說他知道還是會炸 不是你說的剛好沒辦法

jamesho874307/28 10:08重現

wmtsung07/28 10:13B說還是會炸其實沒啥問題,因為A已經說B搞砸環境了,那

wmtsung07/28 10:13就算B的環境一直fail也符合A認為可以關掉bug的條件啊

jamesho874307/28 10:22最上層 或者最接近customer端的本來就最衰 底層出了

jamesho874307/28 10:22問題如果死不承認 大家還是會去追UI面 變成你要去證

jamesho874307/28 10:22明是底層的問題

wmtsung07/28 10:24B有部分責任我是沒意見,但要說B故意炸客戶或是主責我認

wmtsung07/28 10:25為完全沒道理

luciferii07/28 10:38B一開始就自己說要故意炸客戶來HL啊,之後調查B主管才

luciferii07/28 10:39提出追加解釋。所以原PO才說,如果B講的真話而不是氣話

luciferii07/28 10:39那就非常嚴重。

q253upng07/28 10:47檢討B的心境到底有什麼魔力?看到不少人包含原po很愛討

q253upng07/28 10:47論這個,正常公司就是去檢討A那端為何攔不了,盡力去補

q253upng07/28 10:47強最原始的漏洞,檢討B真的有助於公司的流程改善嗎

luciferii07/28 10:48說B不敢交,但他就真的交了,不管是因為(1)他自己說沒

luciferii07/28 10:49測,或(2)他測了沒過還是硬交,現實就是他交了。

luciferii07/28 10:49除非是(3)他測了,沒法復現,所以安心交了。但他自己否

luciferii07/28 10:49認了這條路...

luciferii07/28 10:52檢討B很重要,就像B知道輪胎有問題,還故意組裝到車上

luciferii07/28 10:53害死人後,他不能說「輪胎又不是我作的,跟我無關。」

luciferii07/28 10:54B主管也知道不能這樣講,所以才改成「B組裝完沒再試開

luciferii07/28 10:55過,所以他只是猜測輪胎有問題,不是故意。」

wmtsung07/28 10:57B發現的問題被A說是B搞砸環境啊,你A先扣人家這樣一個大

wmtsung07/28 10:57帽子再來說人家沒複測?我就問B複測fail的話不是符合A講

wmtsung07/28 10:57的B環境有問題嗎?還是B要自證環境沒問題?那A說B環境有

wmtsung07/28 10:57問題前有先提供證明嗎?

q253upng07/28 11:05B是嚴重懷疑輪胎有問題,原廠回信說你搞錯了,是測試方

q253upng07/28 11:05法有問題,B鼻子摸摸把輪胎裝上去結果出事死人,那請問

q253upng07/28 11:05誰該被優先檢討呢

wmtsung07/28 11:09在A說B搞砸環境後B複測兩種結果基本上都是自己有問題啊

wmtsung07/28 11:09,pass就是當初自己步驟有問題,fail就是A說的環境搞砸

wmtsung07/28 11:09不可信,在那個當下A部門就穩贏的,現在還在意那個複測

wmtsung07/28 11:09

giacch07/28 11:17事後調查輪框上有一顆螺絲規格不合(LAGG)

q253upng07/28 11:18今天B還可能要裝5種輪胎,B也只能看看每個輪胎外觀是否

q253upng07/28 11:18有明顯毀損,真正該知道問題並且有能力把問題修復的也

q253upng07/28 11:18只有原廠,

q253upng07/28 11:19事後出事B就在mur mur,那個我早就知道會出事了啦,請

q253upng07/28 11:19問這個系統我們該優先檢討誰呢

wtl07/28 11:22B不裝輪胎還會被上面的老闆罵 原廠都跟你說沒問題了 還不裝

luciferii07/28 11:23現在就是B自己說他第二次連外觀都沒看就放行了

luciferii07/28 11:23這兩次code不一樣喔,B不管這Bug有沒有修,都要重測吧

giacch07/28 11:24你問我就是B, 因為B反應問題卻不協助處理, 要A自己通靈

luciferii07/28 11:25而且B說的不是「我早知有問題」而是「我早知有問題但是

giacch07/28 11:25原廠是說無法重現B說的狀況, 不是說沒這回事

luciferii07/28 11:25故意裝上去要看它出事。」

q253upng07/28 11:26今天很多人糾結B沒有再測一次,那請問輪胎師父收到原廠

q253upng07/28 11:26回覆沒問題的回信後,請問輪胎師父要繼續跟原廠說,你

q253upng07/28 11:26的輪胎就是有問題,找出問題再回我一次,這樣更不合理

q253upng07/28 11:26

luciferii07/28 11:27原廠送來第二顆輪胎了喔,不是原本那顆。

giacch07/28 11:28就說A沒保證沒問題, 是說測不出資料毀損的狀況, 中文不好?

luciferii07/28 11:28原PO和A有改過code重新commit。

wmtsung07/28 11:29在當下B在自己電腦上測已經沒任何意義了啊,環境被判定

wmtsung07/28 11:29搞砸,那用A和QA的環境來測試當結果有啥問題?

giacch07/28 11:30那是只是用猜測問題點來改(就是在通靈啦), 並非針對問題點

luciferii07/28 11:31正常流程也是要找出B環境的問題,萬一客戶跟B同環境呢?

wmtsung07/28 11:31A認為他複製不出來這個問題,肯定是B把自己環境搞砸了…

wmtsung07/28 11:31這首篇原po自己寫的,誰中文不好?

luciferii07/28 11:31後來證明也是。

wmtsung07/28 11:32A懷疑B環境有問題是A要證明還是B

giacch07/28 11:32關鍵的LAGG是誰的, 有沒有問題, 就原PO文章我看不出來

luciferii07/28 11:33A和B要一起查,這沒法靠單邊找出來問題。

luciferii07/28 11:33所以說兩邊不願意合作就要叫主管。

justfortest07/28 11:38還是我們這邊請主管說有沒有讓 A B合作找問題 XD

q253upng07/28 11:38要找出B環境問題完全同意,但我自己認為這是在A被開iss

q253upng07/28 11:38ue這段時間該做;就像原廠收到輪胎問題不能確定,起碼

q253upng07/28 11:38跟輪胎師父說先緩緩不要裝,而不是回信說是你環境有問

q253upng07/28 11:38

luciferii07/28 11:40A只寫無法復現吧,系統上通常不會白目去標是B有問題。

giacch07/28 11:40如果去車行換輪胎, 結果輪胎脫落, 是找車行還是原廠

justfortest07/28 11:42找車行,然後師父裝的按照流程,就會找原廠 我猜啦

giacch07/28 11:42然後車行發現原廠胎有瑕疵, 之前也有發現鎖不緊的情況

justfortest07/28 11:43對啊 但原廠說沒問題不是嗎 還是師父比原廠懂輪胎

giacch07/28 11:44車行有跟原廠反應, 但原廠說經測試無論胎脫落的情況

q253upng07/28 11:44先找車行找出問題,但假設是原廠說沒問題的輪子出包,

q253upng07/28 11:44所有因輪胎脫落造成的損害要跟原廠求償

giacch07/28 11:45所以車行照常交車給客戶, 害客戶出車禍

giacch07/28 11:48後續文章資料就不齊全了 => 後來車行發現同時安裝LAGG會

giacch07/28 11:48後來車行發現同時安裝LAGG會導致輪胎脫落

giacch07/28 11:49這邊LAGG是不是原廠, 有沒有瑕疵, 文章都看不出來

justfortest07/28 11:50按照原文 LAGG 是客戶車上有的歐,不是師父另外裝的

justfortest07/28 11:50

luciferii07/28 11:50問題就是B自己說他確信輪子會出包,故意裝上去要HL原廠

giacch07/28 11:50只知道不要同時安裝LAGG(或LAGG已修正? 修掉?) 就沒事

giacch07/28 11:51對 就是剛好LAGG客戶的車上有, 所以就出車禍了

luciferii07/28 11:51LAGG是客戶原本有,但原廠沒想到,所以這是原廠的鍋

luciferii07/28 11:52車行剛好有LAGG的車子,但是也沒想到是這問題,只想釘

luciferii07/28 11:52原廠,就變事故了。

giacch07/28 11:53而且這LAGG應該也是車行裝的? 那要怎麼究責呢?

q253upng07/28 11:53別忘記B有拿到原廠的回覆信,而且最終也只有輪胎廠能修

q253upng07/28 11:53復這問題,輪胎師父能做的就是被客人罵而已

justfortest07/28 11:53等等 LAGG 什麼時時候變成車行裝的

giacch07/28 11:55好修正一下 LAGG不知道怎麼來的 我只是猜測是車行(B)裝的

luciferii07/28 12:01LAGG是客戶環境標配,不在開發案本身裏。

luciferii07/28 12:01但應該在開發前要調查清楚。

labbat07/28 12:03車行有沒有是未知的,只是客戶有且裝了穩定出bug

giacch07/28 12:04但B有踩到LAGG, 所以我是猜LAGG是公司做的功能

labbat07/28 12:10時間上LAGG是亡羊補牢發現,或者發覺到上新code還是錯的

labbat07/28 12:12至於誰有誰沒有,兩邊互推串資源義務無益釐清事實

giacch07/28 12:12LAGG -> Link Aggregation? 所以是在講NAS喔 XD

luciferii07/28 12:261.是,但不是只有NAS會用。

giacch07/28 12:32若是分享器更新完弄壞資料, 廠商會跑來救資料也是很神奇

wmtsung07/28 12:36後來發現LAGG會造成問題的不是車行是原廠,車行的環境在

wmtsung07/28 12:36客戶炸了之後原廠拿去測也無法復現,最後原廠才知道師父

wmtsung07/28 12:36在測到問題前一天做過網路測試所以有LAGG

brucetu07/28 12:37是啊 不知道LAGG是什麼也可以討論客戶車上有LAGG、LAGG是

brucetu07/28 12:37不是原廠,討論半天..

brucetu07/28 12:38在有LAGG的環境會炸掉A的能力就是很弱,不知道有什麼好

brucetu07/28 12:38說,原原Po還想要講A是RD不想讓他揹這個bug的責任

brucetu07/28 12:40我寫一個database driver給你用,在cluster環境會把資料

brucetu07/28 12:40炸掉,但是我只有在單機環境測過都沒問題啊,一定是你環

brucetu07/28 12:40境有問題,看誰聽得下去

brucetu07/28 12:41「誰叫你們不說你們有用到cluster,沒說是要我通靈解bug

brucetu07/28 12:41?」A就這態度

giacch07/28 12:44原PO有提到LAGG技術有不照原本順序的特性

giacch07/28 12:45所以車行原本是編號順序裝螺絲, 結果用了LAGG技術導致

giacch07/28 12:46導致螺絲裝錯位置, 所以輪胎就脫落了 XD

wmtsung07/28 12:48照樓上說法公司該去跟客戶說你們搞砸環境啊…

brucetu07/28 12:48不是好嗎你在亂比喻什麼

giacch07/28 12:48沒有給A LAGG環境是原PO的錯, A應該只是照需求做

brucetu07/28 12:49就事論事如果你想要比喻就拿完全可類比的範例,不要已經

brucetu07/28 12:49是不可類比的領域還硬要繼續用這個範例

giacch07/28 12:52不好意思 讓你困惑了 哈哈哈

w000515107/28 12:52我覺得B講那些話只是意氣用事,他肯定沒有能力repro

w000515107/28 12:53如果能的話以B個性不可能不嘴一頓A/QA,然後公司面究責

w000515107/28 12:54要以local UT的狀況當依據更是沒道理,你不能因為一個人

w000515107/28 12:54講話機歪就說他責任最大,我還是傾向與其看一個人說了

w000515107/28 12:55什麼,不如看他做了什麼,事實就是B已經做了他職責內能

w000515107/28 12:55做的所有事,但A以及QA都沒有把他當一回事

giacch07/28 12:57我認為B不該沒驗證通過就把功能啟用 that's all

brucetu07/28 12:59樓上,同理,那QA的職責呢?

giacch07/28 13:00QA失能 應該整組換掉 -> 後來看原PO說QA是老闆的人 XD

brucetu07/28 13:01現在是B沒過QA卻過了?結果是整個開發流程有問題,這樣

brucetu07/28 13:01還算不算B的問題?

wmtsung07/28 13:01這部分就我說的,A認為B環境不可信,所以B以QA結果當驗

wmtsung07/28 13:01證你也不能說他故意搞事

brucetu07/28 13:02事實上B測第二次爆第二次也只會被A說你就環境有問題

giacch07/28 13:02QA過了 就扯到原PO了 沒提LAGG環境

w000515107/28 13:02阿如果他堅持不啟用,理由是我的local沒測過,然後delay

w000515107/28 13:03客戶不爽跑掉,是不是又要說B責任最大

w000515107/28 13:03應該要檢討的是CICD有沒有跑UT,跑integration test

giacch07/28 13:04你我看法不同 如此而已

wmtsung07/28 13:04我就說當下A部門怎樣都贏,但在客戶那裡炸了還回來找B究

wmtsung07/28 13:04責真是可怕…

w000515107/28 13:04現在講都事後諸葛,回到release前看,QA測沒事,A測沒事

w000515107/28 13:05CICD(不知道有沒有)有過,就B的local有問題,那怎算?

giacch07/28 13:05w0說的並沒發生 因為往不同方向發展了 是要討論別的案子嗎

giacch07/28 13:07就B原本是救世主, 但不知為何後來裝沒看到, 微笑插刀

brucetu07/28 13:11w0說的就是原原PO描述的release前的事實啊

wmtsung07/28 13:11A部門一開始真把B當救世主就不會在客戶那裡炸了

wmtsung07/28 13:13不要人當初都被你們殺了,事後需要時再來封聖好嗎

giacch07/28 13:44我是指w0講delay客戶跑掉那段

luciferii07/28 13:44B的local沒測過就是把環境和repro證明錄下來證明就好了

luciferii07/28 13:45只要有人環境沒測過就是要找環境或code哪有問題

luciferii07/28 13:46你能復現就不會是你問題,現在是B除了一開始說有問題後

luciferii07/28 13:46就不管了,也不提供驗證方法,最後也不複測。

luciferii07/28 13:47不然就是你復現不了,那也不會有你責任。

gn0067019107/28 14:38檢討B根本沒用 來個CDEF還不是一樣 該討論的是怎麼擋

gn0067019107/28 14:39好啦 就讓B被火 然後CDEF還是一樣 你天天都在管人而已

gn0067019107/28 14:40每天問底下所有員工是不是有不爽就好啦 事情都不用做

w000515107/28 15:43就算客戶沒跑,feature因為一個RD自己也無法重現的local

w000515107/28 15:43test fail而delay,你覺得他不會被HL更嚴重?

w000515107/28 15:48B堅持不開feature,大家就覺得在無理取鬧而已,根本沒用

giantwinter07/28 16:34講真的 主管只是遷怒B而已 有問題的是A跟QA

superpandal07/28 18:32他是指環境如果錯了100%復現 環境對了0%復現

superpandal07/28 18:33他也只測一次就肯定問題還是有 不然也不用說要

superpandal07/28 18:33highlight什麼

superpandal07/28 18:35很多人會把B說詞往亂講話的方向解讀 可是沒有足夠的

superpandal07/28 18:35證據 都是各位的自由心證

labbat07/28 19:43要明說客戶是錯的就直說唄,不用繞圈子講

labbat07/28 19:45明白表示客戶用錯,所以資料蒸發了也是客戶要take care

superpandal07/28 20:03這事件誰去責怪客戶? 不要打迷糊仗 認為B有問題不代

superpandal07/28 20:03表認為客戶有問題 兩個綁在一起是在詭辯是嗎?

luciferii07/28 21:12B的問題不是他的環境,是他自己own的程式爆了還放過的

luciferii07/28 21:12作為。

darkMood07/29 05:48B這種心態也有人挺,真的笑死。

airtsubasa07/29 06:23整個團隊就是各個組自己爽,沒人敢跨部門要,職場這樣

airtsubasa07/29 06:23正常啦

yinxuanh07/30 20:02大家有發現我們知道的B,只是由他人轉述來的

strlen07/30 21:49不好意思 關鍵就在他「直接講要highrlight這問題」

strlen07/30 21:49你管不到別人家的東西測不出來 就要裝無辜裝死到底OK?

strlen07/30 21:50這一點人情世故都不懂