1.- 所有的程序都寫的很爛,除了我的。
我要告訴你一個(gè)壞消息,兄弟,所有的程序都寫的很爛,包括你的。無論你在上面花多少功夫,其他大多數(shù)程序員總是會(huì)認(rèn)為你寫的代碼很爛、他們能寫出比你好10倍的程序。 如何糾正:不要挑剔別人的程序,有一天也許你的程序會(huì)被人放在聚光燈下挑剔。要保持客觀和專業(yè)的評(píng)論,不要輕易判斷。要謙虛,從周圍人哪里學(xué)習(xí)經(jīng)驗(yàn),警戒自己不要寫出這么糟的程序。
2.- 我?guī)酌腌娋湍馨阉暮?,不用走變更流程了?/span>
抄捷徑充滿誘惑,每個(gè)人都想抄捷徑。有時(shí)候抄捷徑是必要的,但總的來說,抄捷徑是危險(xiǎn)的,非常危險(xiǎn),應(yīng)該避免這樣做。走捷徑也許會(huì)節(jié)省你數(shù)小時(shí)的時(shí)間,但如果走錯(cuò)了,它可能會(huì)給你帶來數(shù)月的麻煩。
如何糾正:遇到需要慎重處理的事情時(shí)不要太過自信。讓其他人來復(fù)查你的所作所為。如果你計(jì)劃要走捷徑,請(qǐng)確保讓你的負(fù)責(zé)人知道這樣做的理由以及其中的風(fēng)險(xiǎn)。每次在走捷徑時(shí)最好都讓你的經(jīng)理來確認(rèn)實(shí)施成功,也就是“讓他給你擦屁股”。
3.- 這是個(gè)幾分鐘就能搞定的事。
在我的家鄉(xiāng)Barcelona,那里的圣家族大教堂讓我非常的自豪,它的舉世聞名來自于它的美麗,也來自于它的建筑完工日期的規(guī)劃(它動(dòng)工于1882年,目前仍未完工),但這可能是因?yàn)樗麄儧]有讓一個(gè)程序員去估計(jì)這個(gè)完工時(shí)間,否則的話,估計(jì)出的完工所需的時(shí)間很可能2周。
如何糾正:從一開始,你就必須嚴(yán)肅的認(rèn)識(shí)到,對(duì)于一個(gè)有一定規(guī)模的軟件開發(fā)過程來說,進(jìn)行精確的時(shí)間評(píng)估是不現(xiàn)實(shí)的,我們能做的只是猜測(cè)。同樣要記住的非常相似一點(diǎn)是,我們通常會(huì)發(fā)現(xiàn)有很多事情根本不能預(yù)見到它們會(huì)花去我們數(shù)倍于我們初始估計(jì)的時(shí)間,我通常的做法是把估計(jì)的時(shí)間乘上1.5或2。
4.- 唯我獨(dú)尊
很多程序員參與的討論會(huì)基本上看起來就像是一場(chǎng)斗雞,而不像是人類的討論,這通常會(huì)出現(xiàn)在關(guān)于設(shè)計(jì)和架構(gòu)問題的討論會(huì)上。你基本上很容易看出其中各自都懷有順我者昌逆我者亡的心態(tài),你基本上可以把大多數(shù)的爭(zhēng)論者所說的話直接換成咕咕!咕咕嘎!咕咕咕咕咕咕!咕咕嘎!
如何糾正:把你的自負(fù)留在心底。太過自負(fù)是所有程序員身上的一個(gè)非技術(shù)性的最大的一個(gè)毛病。凡事要三思而行。
5.- 這不是我的錯(cuò)!
在我看來,這另外一個(gè)大多數(shù)程序員都會(huì)有的壞毛病是缺乏責(zé)任心。我們總在找借口… 就比如有人會(huì)說,如果在正常情況下,這個(gè)錯(cuò)誤絕對(duì)不會(huì)出現(xiàn),但說老實(shí)話,這很難讓人信服。
如何糾正:犯了錯(cuò)誤不需要去捶胸頓足,也不需要用刨腹自殺來謝罪。我們應(yīng)該懷有一種健康的態(tài)度,說出這樣的話:“呀,抱歉,我們現(xiàn)在就去改正這個(gè)錯(cuò)誤,是我的錯(cuò)”,這是一種很敬業(yè)的態(tài)度,這能幫助我們樹立一個(gè)好的聲譽(yù),更好的得到你的同事的尊重。
6.- 沒有激情
重復(fù)的和簡(jiǎn)單的任務(wù)通常不會(huì)帶來什么動(dòng)力,但這些事必須要完成,當(dāng)程序員被要求去完成這些事情時(shí),通常會(huì)顯得無精打采,沒有效率。
如何糾正:紀(jì)律問題。很不幸,我再也想不出其它的治療這種毛病的良方。
7.- 不成熟
如果說把對(duì)計(jì)算機(jī)編程當(dāng)作做愛,那很少有計(jì)算機(jī)能得到滿足。你根本就沒有潛心投入,干到一半就結(jié)束了,然后倒頭便睡。我發(fā)現(xiàn)大多數(shù)程序員對(duì)“干完”這個(gè)詞很糾結(jié)。請(qǐng)記住,干完意味著:測(cè)試過(不僅僅只是單元測(cè)試),文檔完整,提交過,合并過…
如何糾正:這是一個(gè)很麻煩的問題,相對(duì)于完全的完成某些功能性問題而言,這些并不是顯得很有必要的任務(wù)會(huì)很龐雜和難處理,通常需要你有紀(jì)律性和受過培訓(xùn)。也許,這最簡(jiǎn)單的能讓一個(gè)程序員理解他的開發(fā)是否真正的完成的兩個(gè)辦法就是:相互復(fù)查和演示。