(1)準備工作的中心目標就是降低風險:一個好的項目規劃者能夠盡可能早的將可能的風險清除掉,以使項目的大部分能夠平穩的進行。目前軟件項目中最大的風險來自糟糕的需求分析和糟糕的項目計劃,因此準備工作就傾向于集中改進需求分析和項目計劃。
(2)作為技術人員,我們的一部分工作就是培訓周圍的非技術人員,講解開發過程。
??????觀點:在開始編碼、測試、調試之前進行需求分析和架構設計——才能保證關鍵方面都做的正確。
???????“老板就緒”測試:如果覺得你的老板已經明白了“在開始構建之前進行前期準備”的重要性,那么可以進行以下測試:a、我們最好立刻開始編碼,因為將會有很多的調試工作需要做。b、我們并沒有為測試安排太多的時間,因為將來不會發現多少缺陷。c、我們已經非常詳細的研究了需求和設計,我想不出在編碼和調試期間還會遇到什么問題。
(3)絕大多數項目都不可能完全使用迭代式開發法或者完全使用序列式開發法,預先詳細說明100%的需求和設計是不切實際的,不過對絕大多數項目來說,“盡早把哪些是最關鍵的需求要素和架構要素確定下來”是很有價值的。
???一條很有用的經驗規則:計劃好預先對80%的需求做出詳細說明,并給“稍后再進行詳細說明的額外需求”分配一定的時間。然后在項目進行過程中,實施系統化的變更控制措施,只接受那些最有價值的新需求。另一種替代方案是只對最重要的20%的需求做出詳細說明,并且計劃以小幅增量開發軟件的剩余部分,隨著項目的進行,對額外的需求和設計做楚詳細說明。
(4)如何在序列開發法和迭代開發之間做出選擇:
???????選擇序列開發法:需求相當穩定;設計直接了當,而且理解透徹;開發團隊對于這一領域非常熟悉;項目的風險很?。弧伴L期可預測性”很重要;后期改變需求、設計和編碼的代價可能很昂貴。
??????選擇迭代開發法:需求并沒有被理解透徹,或者出于其他原因你認識是不穩定的;設計很復雜,或者有挑戰性,或者兩者兼具;開發團隊對于這一領域不熟悉;項目包含很多風險;“長期可預測性”不重要;或其改變需求、設計和編碼的代碼不是很高。
?????????這里我有個問題:
什么是“長期可預測性”?
posted on 2007-09-18 08:44
探丫頭 閱讀(1029)
評論(2) 編輯 收藏 引用 所屬分類:
《代碼大全》讀書筆記