一個好的軟件開發(fā)人員需要培養(yǎng)兩種技能:技術技能和非技術技能。不幸的是一些開發(fā)者只注重技術的部分,以致養(yǎng)成一些陋習,下面是最常犯的5個非技術性錯誤:
0. 缺乏自律
Jim Rohn曾經(jīng)說過:自律是目標和成果之間的橋梁。我一直認為,不論是成為一名軟件開發(fā)人員,亦或是想在生活的其它任何領域取得成功,自律都是最珍貴的技能之一。事實上,很少有人兼具智慧和自律。
Steve Pavlina強調(diào)了自律的5個基本原則“……容忍(Acceptance)、毅力(Willpower)、努力(Hard Work)、勤勉(Industry)以及堅持不懈(Persistence)。將每一個單詞的首字母提出,構成一個縮略詞:鞭子(A WHIP)。這樣更便于記憶,因為很多人總是把自律和鞭策自我聯(lián)系在一起。……” 我力薦大家閱讀Steve Pavlina寫的關于自律的一系列文章。
正如我以前的文章每天寫出好代碼的5個建議中解釋的一樣,對于自律,我的個人做法是每天遵循以下步驟
將一天要做的事情列成清單。
一次只做一件事。
正確做事。
不要半途而廢。
與其道歉,不如補救,而放棄最不可取。
1. 自我意識過甚
據(jù)我的經(jīng)驗,程序員有點自我意識過甚,但凡過于自我的人都很難意識到這點,以下幾個指標可以幫助你認識到自己是否自我意識過甚。
你認為自己是最棒的程序員。
你抵觸交流。
你要求檢查代碼,是為了炫耀而不是為獲得建設性的建議。
網(wǎng)上有很多關于程序員及其自我主義的文章,我在此推薦兩篇,一篇是來自Mike Bernat的《無私的程序設計(Egoless programmin)》,另一篇是來自stackoverflow.com與此相關的討論“你如何控制自大”。
2. 不善溝通交流
Woodrow Wilson說:“我若要說上十分鐘,須花一個星期準備;若是十五分鐘,需三天;若是半個小時,需兩天;若是一個小時,我現(xiàn)在就能準備好!
溝通是我們?nèi)祟惖闹饕顒。做一個優(yōu)秀的交流者,這不容易,但就我們的職業(yè)而言,卻是必不可少的技能。對于設計、代碼、同行評估、文檔編寫、試著去說服別人自己的設計是最好的、編寫代碼等等,我們總在交流意見。
擅長溝通的人通常會像這樣闡述事情:
專注。他們只說需要理解的內(nèi)容
清晰。容易理解。
簡潔。增一分則太過,減一分則不足。
對成為一個更好的溝通者,我有兩個建議:
如果自認不是個好的溝通者,事先做好充分的準備直到達到集中、清晰、簡潔的要求
交談之中,首先傾聽,思考妥當后再說出自己的看法。
在我先前發(fā)布的文章《在開發(fā)團隊中做出決定的七個最佳慣例》中,有更多關于提高交際能力的小竅門。
3. 忽略用戶
“如果我們不關心用戶,自有他人關心。”你在此的唯一原因就是服務用戶,但有時候很容易忘記這一信條。我曾經(jīng)所在的團隊只注重于技術和平臺,而不是令用戶滿意。我們花費一個多月的時間創(chuàng)造一個構架,卻未能給用戶帶來任何價值;到開始使用的時候,我們發(fā)現(xiàn)它完全不適應用戶的需要。
4. 不能合理安排工作
開發(fā)者們總是為自己鍍金,他們研究新的或更有趣的技術;做所有覺得更酷的工程處理方法。這樣無疑妨礙到了項目,但我并不是說時不時投入到旁的活動中是不正常的。誠然我們都需要分散注意力,但是你若發(fā)現(xiàn)自己老是處于前面所提到的狀態(tài),那么你有必要重新考慮自己優(yōu)先處理工作的方式。