碼農們最常說的「謊言」有哪些?

再有一天/一周/一個月就做完了

類似問題:產品經理們最常說的「謊言」有哪些? - 知乎


//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 不在我代碼中,你肯定使用姿勢不對啊!

為啥我覺得都是真話呢。。。


在我的電腦上沒問題啊!!


  1. 這個我們後面抽空改一下(後面永遠也抽不出空來)。
  2. 需求就是這樣的啊(誰提的需求忘記了,反正死無對證)
  3. 我本地好的啊,不信過來看看(用戶不會到你本地用系統啊)
  4. 以後要多寫點注釋(現在已經是以後了,說好的注釋呢?)
  5. 這個我五分鐘就可以搞定 (打開Eclipse就用了三分鐘)
  6. 哦,這個問題我已經知道了,正在改呢(kao,我咋這麼低級的錯誤也能犯)
  7. 這個問題暫時只能這麼改改了,後面再優化一下(只聽前半句就行了)
  8. 我不可能所有功能全都測試一遍吧。(恩,我其實就沒測試過)
  9. 這不可能是問題原因(賣個關子,問題原因我知道,不過真沒臉告訴你啊)。
  10. 程序能用,不過還沒有測試(恩,剛剛編譯通過)。
  11. 誰改我代碼了吧?(幸虧組裡不止我一個碼農,先替我擋擋)
  12. 昨天還好好的啊(其實昨天誰也沒用過這個功能)。
  13. 程序應該沒問題的?(恩,正常情況下)
  14. 你的系統不支持(恩,我改好這個BUG就支持了)
  15. 開發已經完成了(恩,應該能編譯通過)
  16. 開發基本上完成了(估計編碼進行了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,有什麼書籍推薦?學習的方法和過程是怎樣的?

TAG:程序員 | 軟體開發 | 編程 | Java | C / C++ |