sponsored links
    

跟Partner合寫一個A+B的功能

A+B又可分為A和B, 我負責A他負責B

總之就是A功能做完後產生的output要變成B的input

專案前期我說我可以負責合成部分, 也就是A+B的整合

整合期間我做得事就是確保A所產生的種種參數都是B要的 然後又因為B用了很多全域變數(歷史原因), 造成合成時諸多困難

這些我覺得都還好 就只是要多花時間把B的function和variable調整一下

之後 我在測試合成結果(A+B)時

發現結果不符合期待

究其原因是B所要求的參數, A沒有給

但奇怪的是 A沒給指定參數 B卻可以跑且產生結果(只是不合理) 請問這樣誰的問題比較大?

再來 現在要修改合成後的東西(A+B)讓結果符合期待

討論結果是B的function要做更動

但對方覺得B要改得東西太多了 幾乎是全改B

所以不是很願意改

反而要求我(因為我當時說可以負責合成部分)去研究B的部份並做修改, 但B幾乎99.9%都是對方寫

首先我要花大量時間理解對方的邏輯

再者我做修改可能也不及對方做修改來得有效率且兼顧正確性

請問這樣的要求合理嗎

是否我當時不該說我可以弄合成

謝謝




-----
Sent from JPTT on my Samsung SM-G955U.

--

    

※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.8.1.250 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1557824638.A.04B.html
ericthree: B的input少給 是你沒做好還是他當時沒講?05/14 17:15
MOONY135: 要看當初怎樣談的 參數怎樣丟到b然後出來結果是怎樣 05/14 17:26
MOONY135: 我之前開接口給同事用的時候 會先看一下對方風格05/14 17:27
MOONY135: 除非合作很久了 不然我很不喜歡這種只有一開始講05/14 17:29
MOONY135: 然後就直接到驗貨的時候才見真章的東西 容易白工05/14 17:30
ESRI99: 當初架構怎麼寫的?不會只是口頭吧?05/14 17:30
MOONY135: 看描述應該只有口頭吧05/14 17:32
因為我們都是在校生 菜逼八沒有寫過這種大型專案 所以spec都是口頭講講.. 現在回頭看真的是不能太快開始coding, 架構及spec都要先討論得越清楚越好 算是學到很重要的一課 B的input少給 是因為某個其他原因, 導致我以為不需要這個input, 而我以為對方會知道這 現在就是 沒給B最一開始講好的input 但他還是能動, 是直到最後檢查結果時 才發現是因為B沒有吃到該吃的Input
feeya: input output 交接最好是用純文字檔來溝通 05/14 17:53
feeya: 你多做個txt output 對方多做個txt read就好了 05/14 17:54
kurtsgm: 你的問題比較大 給B的input給錯了 他本來就不可能得出正 05/14 18:00
kurtsgm: 確結果,B的程式沒有做防禦那是他的事,但至少他如果吃到 05/14 18:00
kurtsgm: 正確的input就能產出正確的output的話(?) 也算能交差了 05/14 18:01
kurtsgm: 至於要你去看B的module 我是覺得滿奇怪的啦.... 05/14 18:02
kurtsgm: 是說為啥你少給input 卻要改B的東西啊.... 05/14 18:02
因為我一開始說 "合成的部分我來弄" 對方就認定, 只要是跟合成(A+B)有關, 就是我弄
lion741205: 你的任務是"確保A所產生的種種參數都是B要的",所以以 05/14 18:09
lion741205: 目標導向的管理思維,你負責是合理的 05/14 18:09
對沒錯, 但還來有另外討論某個其他原因(就是上面所說的), 這個某個原因 會影響到A+B的介面參數 簡單說就是因為這個某個原因 我擅作主張省去給B當初談好的input(我以為"這個原因會讓當初談好的input有所變化" 這件事 對方也知道, 因此就沒有主動找對方談)
xxi511: 你讓A多給不行嗎? 05/14 18:28
以現在來說不行, 因為上面說得某個原因, 導致現在如果再給B最一開始要得input, 不合理
brianhsu: 參數是你沒給,整合是你的工作,你負責合理阿!比較奇怪 05/14 18:44
brianhsu: 的是如果 B 吃到正確的參數就可以正常運作,為什麼不是 05/14 18:44
brianhsu: 讓 A 去補產生這個參數丟過去,而要大改 B 的程式碼? 05/14 18:44
我覺得不太合理的地方在於, 目前合成後的A+B, 產生的結果就是不如預期 討論後的修改方向是B做修改以符合A的output 那B整個module的code 99%都是對方寫 我再花時間及精力去改B來符合A 應該不符效益吧? 至於為何不是讓A補參數, 原因在上面有說 是因為 "某個原因", 使得A補參數這件事, 現在變得不合理 既然不合理了, 那麼A+B產生的結果也就是錯的 因此討論後決定改B
abccbaandy: 87%是程式global variable滿天飛改不動了吧XD 05/14 18:49
loadingN: 學生專案還有歷史原因... 05/14 18:54
歷史原因是 我是後來比較晚加入這個project的 還沒加入前 幾乎都是對方自己在弄 然後他又把project當成OJ在寫 function / module不拆開完全放一個檔案內 87%是程式global variable 這完全說中我弄合成時的痛點 對方就是5~6000行全部寫在一個檔案內 搞得我合成A+B時, 要呼叫B非常麻煩 我個人認為像這種大型專案, 應該都要拆成好幾個module各自維護 而不是全部function寫在同一個檔案 但對方說 "阿功能對, 有結果就好有差嗎" 因為他比較早弄project, 而且的確, 在我加入之前 他這樣的方式(寫在同一個檔案) 的確可以達成目的 因此我不知怎麼回答
ckvir: 你就改code增加實力啊 反正學生寫的應該也沒多複雜 05/14 18:59
好的, 如果是這理由的話, 那我算完全接受由我這邊改他的code
abraxas: 他寫得爛,但那塊是你負責的,所以是你的鍋。問題點你又 05/14 19:06
abraxas: 只說得出某個原因,那還能說什麼? 05/14 19:06
不是啦, 以上我說得"某個原因" 可能要是在這個field的人才會比較了解 為什麼這個原因, 會導致原先說好的input變得不需要 並不是我不想講某個原因到底是甚麼原因 只是簡化問題描述的一種方式
chuegou: 未經討論就修改介面時 討論的重點就應該是誰要吞下去 05/14 19:21
目前看來是對方吞下但吞得很不甘願 但上面有前輩說 就改code增加實力 儘管也有自己的A要維護, 但我應該是會再多花其他時間看對方及修改對方的code
sxy67230: 口頭上描述的話,那責任歸屬是誰你也沒辦法說清楚,inpu 05/14 19:26
sxy67230: t、output沒說清楚的情況下,那就是整合那方要背鍋 05/14 19:26
shooter555: 都已經定好protocol 當然要遵守 該給的output要給就 05/14 19:32
shooter555: 好 05/14 19:32
sxy67230: 而且你整合的,B大可以說整合的是你,我不知道你整合後 05/14 19:32
sxy67230: 怎麼改,到最後還是只有你能改。當作學教訓。任何專案 05/14 19:32
sxy67230: 啟動前,就該用文件白紙黑字寫清楚,你的系統要吃什麼in 05/14 19:32
sxy67230: tput、吐什麼output,對方要吃什麼吐什麼輸出,細節不 05/14 19:32
sxy67230: 必一開始就描述的很詳細,但架構要有,中途要修正也是 05/14 19:33
sxy67230: 先修正文件 05/14 19:33
這個倒是真的學到教訓 我以為像學生弄這樣的project 就是口頭講好就好, 對方應該也是這樣想 我們並沒有很正式的白紙黑字寫清楚是我們的疏失
sxy67230: 可以用google doc把你們的專案文件做雲端同步,多人協作 05/14 19:45
sxy67230: 可以追蹤大家修改的內容,還可以發送通知標記對方 05/14 19:45
關於多人協作 這個我想小小抱怨一下 當然這只是我單方面說法, 聽聽就好 我剛加入project時, 就一直希望對方能用github做版控, 大家也比較能知道對方的code 可是我講了好久 對方只有在第一週上傳他的code 後面就不鳥了 老師問我們知不知道對方方法, 我實在不知怎回答 我們缺少溝通 但每次我嘗試溝通時, 對方都會不耐煩 我不知道對方是不是特別針對我, 還是他以前沒有和其他人合作過 ※ 編輯: abstract3 (140.114.235.123), 05/14/2019 19:54:13
jyunwei: 左轉男女版(?) 05/14 19:57
hasroten: 沒版控我覺得就可以左轉了(X 05/14 20:02
dreamnook: 沒有事先要求的話B可以跑沒什麼不合理(預設參數 05/14 20:15
dreamnook: 後面我就不曉得對方在要求啥毀了 05/14 20:16
loadingN: 學生時代,很多阿宅都只會自幹又難溝通,你改的動就自己 05/14 20:22
loadingN: 改,不然拖下去真的會氣死 05/14 20:22
stkoso: 這是開始學test-driven develop的好時機 05/14 20:37
stkoso: 你現在該做的不是找戰犯 而是試著從中學到教訓 05/14 20:40
thefattiger: 教訓要學,戰犯當然也要找,以後合作注意點 05/14 20:41
nevak: 學生時期除了學技術,更重要的事學習與人相處和溝通啊,孩 05/14 20:43
nevak: 子 05/14 20:43
vi000246: test case要訂啊 interface也要訂啊 最重要的設計階段 05/14 20:43
vi000246: 會影響後來修改難易度 現在這情況你的責任比較大 05/14 20:44
testPtt: 沒有先一起確認宣告再實作常常會做白工 整合一開始就要做 05/14 20:45
vi000246: B的code爛歸爛 bug仍是因你而起的 你要負責收這設計不完 05/14 20:45
vi000246: 全 溝通也不完全的鍋 05/14 20:45
sxy67230: 我以為板控是每個工程師都要會基本工的說...... 05/14 21:02
sxy67230: 至於interface跟test case,其實在大型專案,尤其需求 05/14 21:08
sxy67230: 不明確,但有時效的專案。通常可以訂個大概就好,但要隨 05/14 21:08
sxy67230: 著專案補齊文件。做文件做越詳細的好處是你日後來看會 05/14 21:08
sxy67230: 變得很容易,畢竟人還是很健忘的。我自己是習慣不管簡 05/14 21:08
sxy67230: 單還是難的專案或是作業都做一下文件,以後看起來就是 05/14 21:09
sxy67230: 很漂亮,也可以當作品面試使用。 05/14 21:09
idok: 我覺得你一開始A不給input不太對 但溝通感覺問題更大 05/14 21:14
hidog: 一般來講至少會有email討論界面吧.... 05/14 21:36
hidog: 稍微有點規模的公司都會要求寫開發文件了 沒文件也要有信件 05/14 21:37
abccbaandy: 每次看PTT都有種平行世界的感覺,現在一堆公司打著 05/14 22:00
abccbaandy: 敏捷開發的口號不寫文件吧... 05/14 22:01
swhss: 敏捷開發又不寫文件,會容易失焦,即使完成了,接手維護的 05/14 22:47
swhss: 人也會很慘 05/14 22:47
ripple0129: 一個參數改的這麼痛苦,code是有多糊啊 05/14 22:55
kenwufederer: A的問題卻去追究B,你覺得合理嗎? 05/14 23:38
kenwufederer: 至於什麼原因不用知道,就是A很偉大 05/14 23:39
kenwufederer: 不是B揹鍋就是你揹鍋,問題在於你的心態 05/14 23:39
lukelove: 這種很常見啦, 老闆就是要看結果, 跨team溝通總是要有人 05/15 00:15
lukelove: 扛糞 一直追, 兩邊都耍屌還是要追,不然就A+B+你一起吃屎 05/15 00:15
molopo: 錢有下來 能力上去 騎驢找馬 管理有問題的公司 根本不值得 05/15 00:36
molopo: 賣命 05/15 00:36
CloudyWing: 如果你擅自變動輸出格式本來就有問題,雖然對方不能 05/15 01:15
CloudyWing: 溝通問題很大,並且那個部分到底多紙糊... 05/15 01:15
BignoZe: 整合的人通常能力是最強的 一開始就要不斷關注兩邊可能發 05/15 01:57
BignoZe: 生的問題點 不斷修正方向 不是等到最後開天窗才在說這算 05/15 01:57
BignoZe: 誰的 05/15 01:58
dini2012: 5000 行是啥鬼 05/15 02:02
dini2012: 我一份.py 如果超過 100行 都會被主管說太大 05/15 02:02
fanatics5566: 「 B的input少給 是因為某個其他原因, 導致我以為 05/15 02:59
fanatics5566: 不需要這個input, 而我以為對方會知道」,最後不就 05/15 02:59
fanatics5566: 是你自以為並在沒知會對方的情況下擅自更動了最初 05/15 02:59
fanatics5566: 你們說好的規格? 05/15 02:59
fanatics5566: 改B不改A,不會87%都是你的意思吧? 說不定對方還 05/15 03:11
fanatics5566: 覺得明明是你A少給當初說好參數,為什麼到頭來是他 05/15 03:11
fanatics5566: 那份要大改? 05/15 03:11
mathrew: 同意樓上 05/15 06:44
sxy67230: 沒有敏捷就不用寫文件溝通這回事吧?敏捷是指盡可能不去 05/15 07:58
sxy67230: 寫太多不必要的文件,但沒有不寫文件這回事。 05/15 07:58
sxy67230: 工程師之間合作本來就溝通、板控、文件缺一不可,溝通是 05/15 08:07
sxy67230: 協調彼此的架構,板控避免有人脫序,文件是強化溝通( 05/15 08:07
sxy67230: 不是每個需求都是簡單溝通大家就能理解的,相同的任務大 05/15 08:07
sxy67230: 家理解的方式可能就是有差異) 05/15 08:07
TuCH: 在寫一個C 做AB之間的轉換如何? A->C->B 05/15 08:08
y3k: 就菜而已 看是要給文件或由你去實作中間介面給他們用 05/15 08:21
s06yji3: 你的問題比較大,因為你沒給指定的參數 05/15 08:26
deray: 一樣辣雞 不分上下 05/15 09:17
ericthree: 另外 什麼認為不用給參數以為他也知道… 05/15 09:29
ericthree: 有疏失認錯就好了 好好講他可能還會幫你 05/15 09:30
zased: 都沒經驗 就不要隨便指責別人了 感覺學會你不會的東西 05/15 09:32
ts01000884: 感覺兩條路 你補該給的變數給B 他也去改他該改的 05/15 09:55
ts01000884: 或者 你們需要交紙本告報之類的要有人去弄 你再協調 05/15 09:55
ts01000884: 一個人去搞其他工作 一個人去把B搞好 05/15 09:56
nelley: 規格書沒定之前不要開工寫code是常識阿... 05/15 11:13
testPtt: 看起來像A給的參數要B產生出來 所以要改B 05/15 11:36
OriginStar: 去找本"當責"的書來看,權責劃分分清楚來 05/15 14:32
OriginStar: 台灣人就老是要用講的,出問題時就推來推去 05/15 14:33
Jichang: 感覺 B 有問題 B Input 不對 Output 也不對 當然是改 B.. 05/15 17:27
hakama99: B寫的出testcase就妳的問題 05/16 01:32
deray: 4 滾 05/16 09:37
rocwild: B出現了喔你們要不要現實生活中面對一下? 05/16 09:53
NonAir: 下去修練 05/16 11:22
iamshiao: 你就負責整合,改規格不 sync,假設對方自己要知道,最 05/16 12:51
iamshiao: 後導致對方模組要大改還要吞下去,然後所有你有責任的 05/16 12:51
iamshiao: 地方都用「某個原因」這種講法避重就輕,通篇看下來就 05/16 12:51
iamshiao: 是你的問題 05/16 12:51
ILYY: 你不就負責整合的 還想怪誰 05/16 16:26
nctukmdick: 尷尬一波 05/16 20:05
brucetu: "但奇怪的是 A沒給指定參數 B卻可以跑且產生結果" 05/17 03:20
brucetu: 意思是B把那個參數hard code, function B沒有要求 05/17 03:21
brucetu: 那個參數嗎? 那就是不符一開始談的spec了 05/17 03:21


網友評論

sponsored links

搜尋主題

sponsored links
sponsored links

推薦閱讀

大家正在看

sponsored links
BTrend 2018 Abuse form