★現在軟件編程小組失敗的主要原因是控制得太少,而不是太多。
★在大型項目中,項目經理需要有兩個和三個頂級程序員作為技術輕騎兵,當工作繁忙最密集的時候,他們能疾馳飛奔,解決各種問題。
★當系統發生變化時,管理結構也需要進行調整。這意味著,只要管理人員和技術人才的天賦允許,老闆必須對他們的能力培養給予極大的關注,使管理人員和技術人才據喲呼喚性。
★程序維護中的一個基本問題是--缺陷修復總會以(20-50)%的機率引入新的bug。所以整個過程是前進兩步,後退一步。
★作為引入新bug的一個後果,程序每條語句的維護需要的系統測試比其他編程要多。理論上,每次修復之後,必須重新運行先遣所有的測試用例,從而保證系統不會以更隱蔽的方式被破壞。實際情況中,回歸測試必須接近上述理想狀況,所以它的成本非常高。
★關鍵的工作是產品定義。許許多多的失敗完全源於那些產品未精確定義的地方。細緻的功能定義、詳細的規格說明、規範化的功能描述說明以及這些方法的實施,大大減少了系統中必須查找的bug數量。
★好的自頂向下設計從幾個方面避免了bug。首先,清晰的結構和表達方式更容易對需求和模塊功能進行精確的描述。其次,模塊分割和模塊獨立性避免了系統級的bug。另外,細節的隱藏使結構上的缺陷更加容易識別。第四,設計在每個精化步驟的層次上是可以測試的,所以測試可以盡早開始,並且每個步驟的重點可以放在合適的級別上。