寒假讀書筆記1(人月神話)
書中給出了一些概念與現下創造性的軟件及項目都由小組織完成,並且解釋了一些程序員的脾性。程序是追求完美的工作,而這種技術活需要多與藝術才能夠達至工程完美之上的精致。
1、所有的編程人員都是樂觀主義者。可能是這種現代魔術特別吸引那些相信美滿結局的人;也可能是成百上千瑣碎的挫折趕走了大多數人,只剩下了那些習慣上只關註結果的人;還可能僅僅因為計算機還很年輕,程序員更加年輕,而年輕人總是樂觀主義者。
無論是什麽樣的程序,結果是毋庸置疑的:“這次它肯定會運行。”或者“我剛剛找出了最後一個錯誤。”
2、Brooks法則:
向進度落後的項目中增加人手,只會使進度更加落後。
3、軟件經理很早就認識到優秀程序員和較差的程序員之間生產率的差異,但實際測量出的差異還是令我們所有人吃驚。在他們一個研究中,Sackman、Erikson、Grand曾對一組具有經驗的程序人員進行測量。在該小組中,最好的和最差的表現在生產率上平均為10:1。
4、思路是大約十個人的想法,但如果像保持文字和產品之間的一致性,則必須由一個或兩個人來完成將其結論轉換成書面規格說明的工作。而且,將定義寫成文字,必須對很多原先並不是非常重要的問題進行判斷,並得出結論。
5、書面記錄決策是必要的。只有記錄下來,分歧才會明朗,矛盾才會突出。書寫這項活動需要上百次的細小決定,正是由於它們的存在,人們才能從令人迷惑的現象中得到清晰、確定的策略。
6、必須關心每一天的滯後,它們是大災禍的基本組成元素。
7、不了解,就無法真正擁有。——歌德·克雷布
8、軟件開發上的困難是決定說什麽,而不是如何說。表達的簡化僅僅能提供少量的促進作用。
9、當一個可運行系統,即使是非常簡單的系統出現時,開發人員的熱情就迸發出來。在開發過程中的每個階段,總有可運行的系統。我們發現開發團隊可以在四個月內,培育出比搭建復雜得多的系統。
程序本身完整,可以由作者在所開發的系統平臺上運行,它通常是車庫中產出的產品,以及作為單個程序員生產率的評估標準。程序可以變成編程產品,編程產品是可以被任何人運行,修復和擴展的程序,可以在多種操作系統平臺上,供多套數據使用, 要成為通用的編程產品,程序必須按照普遍認可的風格來編寫,特別是輸入的範圍和形式必須擴展,以適用於所有可以合理使用的基本算法。接著,對程序進行徹底測試,確保它的穩定性和可靠性,使其值得信賴。這就意味著必須準備、運行和記錄詳盡的測試用例庫,用來檢查輸入的邊界和範圍。此外,要將程序提升為程序產品,還需要有完備的文檔,每個人都可以加以使用、修復和擴展。經驗數據表明相同功能的編程產品的成本,至少是已經過測試的程序的三倍。
十分重要的是,作為一個程序員,一定要有充分的自信,要相信自己,樂觀積極地對待自己的作品,無論是什麽樣的程序,結果是勿庸置疑的:“這次它肯定會運行。”或者“我剛剛找出了最後一個錯誤。”所以系統編程的進度安排背後的第一個假設是:一切都將運作良好,每一項任務僅花費它所“應該”花費的時間。
寒假讀書筆記1(人月神話)