1、? 程序員不擅長交際,但擅長說服別人。
2、? 要習(xí)慣閱讀別人的代碼。
3、? 通過閱讀程序員的代碼,主管可以從中了解程序員的能力,工作是否出色。
4、? 在軟件維護(hù)的過程中,被閱讀最多的代碼往往不是最好的代碼,而是最需要重構(gòu)的代碼。
5、? 如果程序根本無法正常運(yùn)轉(zhuǎn),對其效率,適應(yīng)性以及生產(chǎn)成本的評價就毫無意義。
6、? 什么是程序中的毛病,在很大程度上取決于人的觀點(diǎn)。如果這種毛病出現(xiàn)在你的程序中,你幾乎不可能會認(rèn)為它是毛病。
7、? 在考慮一系列的程序的開發(fā)工作效果時,需要衡量開發(fā)時間的方差,而不是只考慮平均值。一般的開發(fā)主管寧愿先做 12 個月的計(jì)劃,然后花 12 個月完成,也不愿做 6 個月的計(jì)劃,卻花了 9 個月。真正困擾人們的并非預(yù)先估計(jì)的平均開發(fā)時間,而是實(shí)際消耗時間的標(biāo)準(zhǔn)偏差。大多數(shù)人愿意每天花 10 分鐘坐車,也不愿 4 天花 1 分鐘, 1 天花 26 分鐘。盡管就平均時間而言,后者花費(fèi)更少,只需要 6 分鐘。但是由于某次無法預(yù)測的長時間等待而將計(jì)劃打亂,這點(diǎn)好處無法彌補(bǔ)損失。
8、? Fisher 基本定理:一個系統(tǒng)對某個特定環(huán)境的適應(yīng)性越強(qiáng),它適應(yīng)新環(huán)境的能力也就越弱。為保證程序的效率,就必須考慮要解決問題的特殊條件。過分追求效率,只會降低適應(yīng)性。但通常我們還是在二者之間做一取舍。至少,具備一種優(yōu)點(diǎn),要比哪種都沒有強(qiáng)。
9、? 衡量程序的真正效率,并不總能用運(yùn)行時間來衡量。
10、 作為一個好程序,有一些重要的因素:該程序在多大程度上滿足功能要求;該程序的開發(fā)是否按照計(jì)劃完成,和計(jì)劃的偏差幅度有多大;當(dāng)條件改變時,是否能夠修改,修改的成本有多大;程序的效率如何,為了彌補(bǔ)某一方面的低效率,是否犧牲了另一方面的高效率。
11、 主管根據(jù)什么來獎勵程序員?在你的標(biāo)準(zhǔn)中是否存在相互矛盾的現(xiàn)象 ? 即快又好,還要易與重構(gòu),容易修改?
12、 在你的項(xiàng)目中,修改或者重構(gòu)是否屬于一項(xiàng)主要開支?
13、 即使一個計(jì)劃不可靠,只要它是完成進(jìn)度的唯一希望(盡管可能根本無法完成),程序員還是會采用它,你知道為什么嗎 ?
14、 在進(jìn)行某個項(xiàng)目的時候,你的腦子是否有一些明確的準(zhǔn)則?或者是依照上級主管的看法?在項(xiàng)目的進(jìn)行過程中,這些準(zhǔn)則有無更改,或者你是否有辦法讓你的準(zhǔn)則不被動搖?
15、 在編寫程序時,你曾經(jīng)有多少次想到它可能在未來會被人修改?反過來,在修改別人的程序時,你又曾經(jīng)咒罵過幾次?
16、 你是否因?yàn)樽非蟆靶省保诱`了工作進(jìn)度?反過來,是否因?yàn)橐摆s時間完成”,而沒有做到盡善盡美?
17、 在軟件質(zhì)量管理的過程中,軟件性能的偏差使一個極其重要的方面。
18、 許多主管希望得到所有的東西,卻不知道更重要的是應(yīng)該通過明智的權(quán)衡,得到自己可能得到的最佳成果。
19、 愛因斯坦的名言:重要的是不要停止懷疑。如果不去進(jìn)行嘗試,我們永遠(yuǎn)不肯能成功。
20、 霍桑效應(yīng):因受到他人關(guān)注而帶來提高或進(jìn)步。關(guān)注手下工作的領(lǐng)導(dǎo),將會取得更好的成績。很多負(fù)責(zé)軟件開發(fā)的主管,就是不愿意與屬下并肩工作。
21、
最優(yōu)秀的程序員同時也是那些最善于自省的。如果他們發(fā)現(xiàn)做錯了什么,他們會對導(dǎo)致這個結(jié)果的思維過程(或物理過程)進(jìn)行檢討;然后,他們會采取一些相應(yīng)的措施,對這個過程進(jìn)行調(diào)整。這種方法稱為“根源分析”。然而更多人仍然喜歡使用“過失追究分析”方法,這種方法恰恰相反,它會誘導(dǎo)人們把引發(fā)問題的根源隱藏起來。