碼農們最常說的「謊言」有哪些?
再有一天/一周/一個月就做完了
類似問題:產品經理們最常說的「謊言」有哪些? - 知乎
//TODO
這是最後一個bug了,修了就好!
我覺得碼農的一個很大的困擾就是,由於其工作內容非常專業和需要一個人持續持久的專註度,導致工作內容的不透明性,不可見性,抽象性,不可測量的屬性。由於其他人只能通過可觀察的角度去衡量其工作內容和進展,所以就會在雙方之間造成很多困擾和誤解。另一方,可以認為是監工和監督方,管理者,客戶等,用甲來指代。程序員用乙指代。
(1)甲認為乙的工作性質是,因為乙掌握了工作方法和技能,所以天然的就會做其工作。實際上,在很多情況下,乙在接到一個實現需求時,通常不知道如何做到,它需要一定時間去摸索,研究,學習和熟練,才能進入正常工作節奏。
(2)甲認為乙可以準確的預估一個項目的完成時間。錯誤,實際上很多情況下,由於未知因素太多,乙無法準確預估其完成時間。
(3)甲認為工作內容可以被剝離拆分和簡化,可以在此基礎上取捨來加快速度。這一條當然嚴格上來說不是錯的,但是由於甲不了解也不願技術實現細節,所以其想法很可能和實際不兼容不可行,所以他們認為的東西經常不會被乙接受和認可。
(4)甲認為工作內容是線性增長的。這一條當然宏觀上也是正確的,但是對於碼農來說,尤其在微觀上卻極不規律,微觀上根本就不可能做到線性。因為工作內容就不是線性關係。換句話說,也許,2年的工作成果是一年的二倍。但兩天的工作成果經常不會是一天的二倍。在實現時,是一個圍觀上經常重構的過程,就好像搭建一個機器人,這個機器人不斷的局部成型,又不斷的被局部拆散,工作不像滾雪球,越滾越大,而是好像揉麵糰,每加入一點新的麵粉,程序員就不斷的揉踹麵糰,才能讓新的麵粉和現有的麵糰融為一體。所以有一個答案里提到這一天,就是工作回報上的進度,看起來貌似在和時間成線性關係,例如,這個月 10%,下個月 20%,到了第 10 個月,你會發現程序員的進度,開始以越來越小的幅度增加,成為逼近 100% 的漸進線。這當然無法反應實際進展,然而,確實被甲方需要逼迫的產物。
先猥瑣處理了,到時候想個好方案重構...
"到時候""一般是"到天荒地老的時候"的縮寫...
這個簡單,我一天就能寫完。
"一天過去了..."
"又一天過去了..."
"又又一天過去了..."
第一周:項目已完成10%(實際完成0%
第二周:項目已完成30%(實際完成5%
第三周:項目已完成50%(實際完成10%
第四周:項目已完成90%(實際完成15%
第五周:項目已完成100%(實際完成100%
太累了今晚一定早點睡
「做肯定是能做,」
分享一些程序員常見謊言。。
00. 我以後再給代碼寫注釋和文檔。(絕對是最大的謊言)
01. 這只是個臨時方案,不會用在實際版本中。
02. 搞定了!只剩一些小事要處理。
03. 那個簡單,幾天就搞定了。
04. TODO
05. 就改一行代碼,不會影響其他東西的。
06. 在我機器上好好的……
07.
開發人員:這個需要10天做完
老 板:你5天可以做完么?
開發人員:可以!
08. 這不可能發生
09. 我不用給那程序測試,我已經知道它可以奏效!
10.對,這是一個已知 Bug。
11. 下次修改代碼時我會增加單元測試。
12. 我已經完成 90% 了 。
13. 「這個兩分鐘就可以修復的!」
14.(適用於嵌入式開發人員:)」這是硬體問題。和軟體木關係!」
15. 後續修改會加上測試。
16. 對,我已經測試了!
17. 我在讀文檔。
18. 這不是 Bug,這是特性!
19. 我沒有偷懶,我的代碼在編譯著呢!
20. 昨天還好好的啊!
21. 這 Bug 不在我代碼中,你肯定使用姿勢不對啊!
為啥我覺得都是真話呢。。。
在我的電腦上沒問題啊!!
- 這個我們後面抽空改一下(後面永遠也抽不出空來)。
- 需求就是這樣的啊(誰提的需求忘記了,反正死無對證)
- 我本地好的啊,不信過來看看(用戶不會到你本地用系統啊)
- 以後要多寫點注釋(現在已經是以後了,說好的注釋呢?)
- 這個我五分鐘就可以搞定 (打開Eclipse就用了三分鐘)
- 哦,這個問題我已經知道了,正在改呢(kao,我咋這麼低級的錯誤也能犯)
- 這個問題暫時只能這麼改改了,後面再優化一下(只聽前半句就行了)
- 我不可能所有功能全都測試一遍吧。(恩,我其實就沒測試過)
- 這不可能是問題原因(賣個關子,問題原因我知道,不過真沒臉告訴你啊)。
- 程序能用,不過還沒有測試(恩,剛剛編譯通過)。
- 誰改我代碼了吧?(幸虧組裡不止我一個碼農,先替我擋擋)
- 昨天還好好的啊(其實昨天誰也沒用過這個功能)。
- 程序應該沒問題的?(恩,正常情況下)
- 你的系統不支持(恩,我改好這個BUG就支持了)
- 開發已經完成了(恩,應該能編譯通過)
- 開發基本上完成了(估計編碼進行了80%了)。
最後幾句話:
外行人對碼農這個群體除了苦、累、呆、萌之外,也沒有什麼其他歧視性看法,所以我上面列的這些以自嘲居多。
還記得剛畢業的時候,自己被測試大姐叫過去演示我的BUG的時候,當時的內心是崩潰的,像犯了錯的小學生,甚至有點語無倫次,不知道怎麼解釋才好,後來BUG越來越多了,自己也學到了「BUG是不可能消滅完」的真理,慢慢坦然多了。
碼農也有糾結的時候,內心的那點虛榮、自尊與我們所崇尚的職業精神總有短暫交鋒的時候,隨著自己的職業成長,這些謊言會越來越少,我們的內心也會越來越強大。「精通C++」。
「快搞定了。」
一般被騙的都是自己。產品: 把啦啦啦啦啦啦啦啦啦啦啦啦啦啦.....
我: &<眉頭緊鎖, 目不轉睛&>
產品: 需求大概就是這樣, 你估算一下大概要多久?
我: 恩......&<深思中&> =&> (發獃中)
產品: 怎麼樣?
我: 需求有點難度, 至少大概要一個星期....&<慎重的表情&>
產品: 行, 那就一個先一個星期, 如果時間不夠到時候再說
-----分割線--------一星期後的最後一天的中午......
產品: 上次和你說的需求怎麼樣
我: 哦.. 你說那個啊&<卧槽, 什麼需求? 小本子呢?&> , 我看看哈,恩, 快完成了, 過程比較順利
產品: 下午能出來吧, 沒問題吧
我: 沒問題
-----分割線----2-3 小時後
我: 好了, 你們測吧(充實的一星期又過去了)
只要兩周
01
這個我辦不到。
真相:我可能可以做到,而且這個其實也花不了我太多時間,但是我現在不知道該怎麼做,所以如果可以的話,我不想涉足其中。
02
我最多三天就做能做完這個。
真相:兩周
03
這就是個雛形,不會用到產品中~
真相:這個代碼完全會用在最終的項目中,除非問題嚴重到我們要不得不逐字重寫(重寫不會花費太多時間,但總是值得的)。
04
嘿 您想要什麼都行!
真相:我真是痛恨你想要這個討人厭的東西來實現這種沒什麼用的功能。
05
我們預計這將在第 2 季度的時候出來。
真相:第 4 季度
06
沒有人會注意到這個bug的
真相:我希望沒有用戶看到……
07
好的,我只要重置一下緩存,請再試試看,現在應該可以了。
真相:我不知道發生了什麼,我也沒做任何修改,我就是希望我忽略它的話,這個問題就會自動消失~
08
如果女朋友沒有技術背景的話——
女友(打電話):寶貝,在幹嘛呢?
程序員:啊……我不知道怎麼回事,我被困在編程里了(Blah Blah Blah一堆技術性用語)
女友:哎呀,你肯定很忙,慢慢來不急,我明天再打給你。
真相:不要打擾我,親愛的。我在玩遊戲/看電視劇。
09
如果經理沒有技術背景的話——
經理:開發這個東西需要多久?
程序員(認真看過後):要一個禮拜吧,您這個要求挺複雜的。
真相:一小時就能搞完,不過我可不想這樣。
10
經理(對他的客戶):我們有很多才華出眾的開發人員,工作會按時完成的。
經理(對他的開發人員):我完全信任你能夠按時完成。(他的意思是,拜託不要再搞砸了!)
開發人員:嗯 當然了!在您的監督下,我們肯定能按時開發出來。
真相:他還沒想好怎麼開始開發。
11
程序員:我沒法重現這個問題。這在我的機器上沒問題啊,不用管這個bug。
測試人員:我才不管這玩意兒在你機器上怎麼樣,我們又不會把你的機器給客戶。
真相:他從沒嘗試過去重現這個問題
12
測試人員:此測試用例不符合您的代碼。
於是您將聽到一段讓人驚心動魄的回答——
這玩意兒不是我開發的!這怎麼可能?你重啟了沒?
還有最後一句——這不是有效的測試用例。
真相:
我什麼時候寫了這堆sh!t ~
WTF,我怎麼漏掉了這個!
你重啟以後,我應該能想出一些好借口~
先通過這個代碼,看看在產品伺服器里會怎樣~
13
客戶:你能讓軟體……嗎?
程序員:不~
真相:
我們當然可以做到,但是:
這要花很長時間。
你負擔不起。
如果真的這樣改,就不能再賣給別人了,因為這是個糟糕的想法。
等我們做完了,你就不想要這個功能了。
(參考:Quora)
【推薦閱讀】
計算機本科應屆畢業生要有怎樣的能力才算比較好的? - 知乎如何製作高水平簡歷? - 知乎
本科生如何才能進入騰訊,阿里等一流的互聯網公司? - 知乎
歡迎關注我的微信公眾號:九章演算法(ninechapter ),帶你了解IT前沿技術,幫你通過面試,拿到offer,找到好工作!
就差寫單元測試了
他們說「這個做不了」的時候,往往是因為太麻煩不想做。
他們說「這個很簡單」的時候,往往都會delay。
僅供娛樂,我知道有些事情確實如此,請各位工程師不要太計較( ′ ▽ ` )?
===========================
1.這個很困難,但是我會馬上修好它
2.這個很簡單
3.我快做完了
4.如果這裡有個bug,那肯定不是我寫的
5.我會在下個版本里加Unit Test case
6.我等會會在我的代碼里寫comment
7.這不是個bug,這是個feature
8.這個晚上之前會做好,我快做完了
9.這個在我的機器上能運行的
10.已經完成90%了
11.我正在深入調查請求量,馬上會進入開發
12.這只是個暫時的解決方法,不會在產品中用到
13.我會把它放進我的to do list
14.我覺得這個是瀏覽器的問題
15.我周一會開始做的
16.已經做好了,只是還在測試
17.這個很簡單,只要一星期就好了
18.這個昨天還能運行的,但不知道為什麼現在不能了!
19.我能弄好這個,別擔心
20.這是用戶的問題!
21.在我的系統里可以完美運行,可能是你系統有毛病
reference:
https://www.quora.com/What-are-the-most-common-lies-told-by-programmers
他那是沒有明顯BUG,我的是明顯沒有BUG
推薦閱讀:
※IT行業都有哪些職位,初學者(0基礎,新人)該如何選擇,才能夠快速進入這個行業?
※如何教會非計算機專業的女友寫代碼並且找到工作?
※學習 JAVA,有什麼書籍推薦?學習的方法和過程是怎樣的?