總覽
所有的弱點(diǎn)中智嚷,最大的弱點(diǎn)就是害怕暴露弱點(diǎn)咖摹。
注重實(shí)效的程序員對(duì)他自己的職業(yè)生涯負(fù)責(zé)爹土,并且不害怕承認(rèn)無知或錯(cuò)誤甥雕。
負(fù)責(zé)
責(zé)任是你主動(dòng)承擔(dān)的東西。面對(duì)責(zé)任除了盡你所能之外胀茵,還需要分析風(fēng)險(xiǎn)是否已經(jīng)超出了你的控制社露。對(duì)于不可能或風(fēng)險(xiǎn)太大的事,有權(quán)不為之負(fù)責(zé)琼娘。當(dāng)需要承擔(dān)責(zé)任時(shí)峭弟,你必須依照自己的道德標(biāo)準(zhǔn)和判斷來做出決定。
控制
假如在團(tuán)隊(duì)開發(fā)中脱拼,出現(xiàn)了一個(gè)無法控制的事務(wù)瞒瘸,且沒有完美的解決,該事件久了能引發(fā)更多不可預(yù)知且不可控的事件挪拟。不可控的事件的熵總會(huì)趨向于最大化挨务,這就是即便有著詳細(xì)的計(jì)劃,技術(shù)高超的開發(fā)者,但是軟件還會(huì)開發(fā)失敗的原因谎柄。項(xiàng)目成員的心理對(duì)項(xiàng)目有很大的作用丁侄,如果這種不可控變多了,最終軟件可能因此腐爛朝巫。
標(biāo)準(zhǔn)
人們總會(huì)以最低標(biāo)準(zhǔn)來要求自己鸿摇,特別是在有參照物的時(shí)候,人會(huì)更傾向于拿自己和最低的那個(gè)參照物相比較劈猿。在軟件開發(fā)中拙吉,如果有一點(diǎn)很低劣的代碼,或者管理者的一個(gè)錯(cuò)誤決策揪荣,都有可能引起一場雪崩反應(yīng)筷黔。人們總會(huì)容易產(chǎn)生這樣的想法:“相中中有那么爛的代碼,我只要寫那樣的代碼就可以了仗颈,沒必要太嚴(yán)格的要求自己佛舱。”挨决,至于說項(xiàng)目在這之前有多好请祖,代碼在這之前結(jié)構(gòu)有多清晰,注釋有多明確脖祈,誰會(huì)去關(guān)注呢肆捕?
成就
首先,你有對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)盖高,整體構(gòu)思慎陵。但是你不需要把整個(gè)系統(tǒng)全部拿出來,把自己的要求和期望全部詳細(xì)的講出來喻奥。在現(xiàn)今的企業(yè)管理架構(gòu)中荆姆,同時(shí)請(qǐng)求太多資源或者對(duì)團(tuán)隊(duì)成員提太多任務(wù),可能會(huì)遇到拖延和茫然映凳。并且開會(huì)研討,討論審批邮破,會(huì)讓事情變得復(fù)雜化诈豌。每個(gè)人都會(huì)護(hù)衛(wèi)他們自己的資源,不要讓他們覺得你是哪個(gè)掠奪者抒和。
可以先設(shè)計(jì)一部分比較合理的東西矫渔,等開發(fā)完成之后,就拿出來給大家看摧莽,首先先享受部分成功的喜悅庙洼,然后引導(dǎo)式的提出更多的功能需求或更多的優(yōu)化點(diǎn),最后等其它項(xiàng)目成員來確定并承擔(dān)下這些任務(wù)。就這樣油够,逐漸的把它們引導(dǎo)向整個(gè)項(xiàng)目的圖景蚁袭。
對(duì)于人們來說,參與正在發(fā)生成功的事會(huì)更容易讓他們接受石咬。能夠讓他們瞥見未來揩悄,你就能把它們聚集在周圍。
大局
大多數(shù)軟件腐爛都是從一點(diǎn)點(diǎn)的微不足道的小事開始的鬼悠,大多數(shù)的項(xiàng)目拖延都是一天一天發(fā)生的删性。系統(tǒng)一個(gè)特征一個(gè)特性的偏離其規(guī)范,一個(gè)又一個(gè)的補(bǔ)丁被打到某段代碼上焕窝,知道最初的代碼一點(diǎn)也沒留下蹬挺,并且項(xiàng)目的設(shè)計(jì)也已經(jīng)變得雜亂無章。常常是小事的積累破壞了士氣和團(tuán)隊(duì)它掂。
留心大圖景巴帮,要觀察項(xiàng)目的全局設(shè)計(jì),要觀察周圍的環(huán)境和發(fā)生的事群发,而不只是做你自己在做的事情晰韵。
質(zhì)量
我們無法精確的去控制軟件的質(zhì)量。作為研發(fā)者我們必須在保證代碼的整潔高效的前提下熟妓,去滿足軟件用戶的需求雪猪。
不管是公共庫還是應(yīng)用軟件,我們的作品始終是要給用戶使用的起愈。質(zhì)量需求很重要只恨,盡量給用戶直接參與權(quán)衡質(zhì)量需求的空間。你應(yīng)該將系統(tǒng)的范圍和質(zhì)量作為系統(tǒng)需求的一部分抬虽,規(guī)定下來官觅。
無視用戶的需求,一味的給程序增加新特性阐污,或是一次又一次的潤飾代碼休涤,等等行為都不是有職業(yè)素養(yǎng)的做法。
我們決不能向用戶或其它領(lǐng)導(dǎo)許諾一個(gè)不可能兌換的時(shí)間標(biāo)度笛辟,到最后為了趕上項(xiàng)目的最后期限而削減基本的工程內(nèi)容功氨。
收手
如果不懂止步,所有的辛苦勞作都會(huì)被破壞手幢。
不要因?yàn)檫^度修飾和過于求精而毀壞完好的程序捷凄。讓你的代碼憑自身的質(zhì)量運(yùn)行一段時(shí)間,他也許不完美围来,你不用因此而擔(dān)心它攻晒,沒有完美的代碼。
知識(shí)
知識(shí)上的投資總能得到更好的回報(bào)吸祟,你的知識(shí)和經(jīng)驗(yàn)是你最重要的職業(yè)財(cái)富。但是這些財(cái)富是時(shí)效資產(chǎn)航唆,隨著新技術(shù),語言和環(huán)境的出現(xiàn)牛曹,你的知識(shí)會(huì)變得過時(shí)佛点。隨著你的知識(shí)價(jià)值降低,對(duì)你的公司和客戶來說你的價(jià)值也在降低黎比。
知識(shí)資產(chǎn)
軟件工程師所知道的關(guān)于計(jì)算技術(shù)和他們所工作的領(lǐng)域的全部事實(shí)超营、以及他們所有的經(jīng)驗(yàn)都可以被視作他們的知識(shí)資產(chǎn)(Knowledge Portfolios)。管理知識(shí)資產(chǎn)與管理金融資產(chǎn)非常相似阅虫。
- 嚴(yán)肅的投資者會(huì)將定期投資作為一種習(xí)慣演闭。
- 多元化是長期成功的關(guān)鍵。
- 聰明的投資者在保守的投資和高風(fēng)險(xiǎn)颓帝、高回報(bào)的投資之間平衡他們的財(cái)產(chǎn)米碰。
- 投資者設(shè)法低買高賣,以獲取最大回報(bào)购城。
- 應(yīng)周期性的重新評(píng)估和平衡你的財(cái)產(chǎn)吕座。
要想在職業(yè)生涯中獲得成功,你必須用同樣的指導(dǎo)方針管理你的知識(shí)資產(chǎn)瘪板。最總要的是你需要定期為你的知識(shí)資產(chǎn)投資吴趴。
學(xué)習(xí)方法
這里給出一些學(xué)習(xí)技術(shù)的方法,以供參考侮攀。
- 每年至少學(xué)習(xí)一種新語言锣枝。
不同的語言以不同的方式解決相同的問題。通過學(xué)習(xí)若干種不同的方法兰英,可以幫助你拓寬思維撇叁,并避免墨守成規(guī)。 - 每季度閱讀一本技術(shù)書籍畦贸。
- 也要閱讀一些非技術(shù)書籍陨闹。
記住計(jì)算機(jī)是由人來使用的,你所做的軟件也是為了滿足人的需求薄坏。不要忘記等式這邊的人正林,這很重要。 - 上課颤殴。
- 參加本地用戶組織。
- 實(shí)驗(yàn)不同的環(huán)境鼻忠。
- 跟上潮流涵但。
- 上網(wǎng)杈绸。
是否在某個(gè)項(xiàng)目中使用這些技術(shù),或者是否把它們放入你的簡歷矮瘟,這些都不重要瞳脓。重要的是學(xué)習(xí)的過程將拓寬你的思維,使你向著新的可能性和新的做事方式拓展澈侠。
批判的思考
批判的思考你聽到的和讀到的劫侧,你要警惕你所得到的知識(shí)的準(zhǔn)確性,保持自己的大腦不要被錯(cuò)誤的言論或知識(shí)所誤導(dǎo)哨啃。
交流
最重要的問題不是你有什么烧栋,還要看你怎樣去包裝它。就算你擁有最好的主意拳球、最漂亮的代碼审姓、或是最注重實(shí)效的想法,如果沒有有效的交流祝峻,最終也會(huì)毫無結(jié)果魔吐。
主旨
在交流之前,首先規(guī)劃好你要交流的東西莱找,寫出一個(gè)大綱酬姆。以能夠表達(dá)出自己想要說的內(nèi)容為目標(biāo),不斷的提煉他奥溺。如果有時(shí)間的話辞色,應(yīng)該先去準(zhǔn)備好幾種把你要說的內(nèi)容講清楚的策略。
聽眾
只有當(dāng)你是在傳達(dá)信息時(shí)谚赎,你才是交流淫僻。為此,你需要了解你的聽眾的需要壶唤、興趣和能力雳灵。我們不想看到這種情況:一個(gè)研發(fā)人員發(fā)表長篇獨(dú)白,講解各種神秘的技術(shù)優(yōu)點(diǎn)闸盔,把所有的聽眾都弄得目瞪口呆悯辙。在我17年8月去寧波某銀行演示系統(tǒng)的時(shí)候就犯過這種錯(cuò)誤,后來回顧總結(jié)的時(shí)候意識(shí)到這種行為不是交流迎吵,而是空談躲撰。下面引入一首離合詩,或許能夠幫助你進(jìn)行交流:
What do you want them to learn? 你想讓他們學(xué)到什么击费?
What their interest in what you have got say? 他們對(duì)你講的什么感興趣拢蛋?
How sophisticated are they? 他們有多豐富的經(jīng)驗(yàn)?
How much detail do they want? 他們想要多少細(xì)節(jié)蔫巩?
Whom do you want to own the information? 你想讓誰擁有這些信息谆棱?
How can you motivate them to listen to you? 你如何促使他們聽你說話快压?
時(shí)機(jī)
說話的時(shí)機(jī)很重要,不要因?yàn)榉植磺迨虑榈妮p重緩急垃瞧,弄錯(cuò)了說話的時(shí)機(jī)導(dǎo)致無法達(dá)到本來的目的蔫劣。
風(fēng)格
根據(jù)不同的聽眾調(diào)整你的交流風(fēng)格,有些人喜歡正式的“事實(shí)”簡報(bào)个从,有些人喜歡在進(jìn)入正題之前首先高談闊論一番脉幢。如果需要正式的文檔的話,在注重事實(shí)的基礎(chǔ)上嗦锐,盡量讓你的文檔美觀一些嫌松。如果可能的話,在文檔制作早期就讓你的用戶參與到文檔的制作當(dāng)中意推。獲取他們的反饋豆瘫,汲取他們的智慧。對(duì)于風(fēng)格而言菊值,請(qǐng)謹(jǐn)記:你怎么說和你說什么同樣重要外驱。
做傾聽者
如果你想讓別人聽你講話,首先你要學(xué)會(huì)聽別人講話腻窒。在進(jìn)行交流的過程中昵宇,要學(xué)會(huì)及時(shí)的回復(fù)他人。除非你生活在真空中儿子,你才不需要交流瓦哎,否則請(qǐng)好好鍛煉一下交流的技巧。交流的越有效柔逼,你的影響力就越大蒋譬。
引用
本文是對(duì)軟件工程師為人哲學(xué)的一點(diǎn)總結(jié),主要參考了以下資料:
- 《馬維達(dá). 程序員修煉之道[J]. 程序員, 2004(4):121-124.》
非原創(chuàng)聲明
>本文并非我的原創(chuàng)文章愉适,而是我讀書筆記犯助。文中的材料與數(shù)據(jù)大部分來自于其它資料,詳細(xì)請(qǐng)查看本文的引用章節(jié)维咸。
關(guān)于
本項(xiàng)目和文檔中所用的內(nèi)容僅供學(xué)習(xí)和研究之用剂买,轉(zhuǎn)載或引用時(shí)請(qǐng)指明出處。如果你對(duì)文檔有疑問或問題癌蓖,請(qǐng)?jiān)陧?xiàng)目中給我留言或發(fā)email到
weiwei02@vip.qq.com 我的github:
https://github.com/weiwei02/ 我相信技術(shù)能夠改變世界 瞬哼。