任何人如果想看到一件完美無瑕的作品,他所想的那種作品過去不存在,現(xiàn)在和將來也不會出現(xiàn)权均。
本章是作者對讀者一些書信內(nèi)容的整理和反駁,時間是《人月神話》發(fā)布后的第 9 年锅锨。
含糊的表達(dá)將會導(dǎo)致誤解
次要部分
作者斌不是貶低軟件構(gòu)建中的「次要部分」叽赊,相反他認(rèn)為所有的創(chuàng)造性活動應(yīng)該包括:
- 概念性結(jié)構(gòu)的形式規(guī)格化
- 使用現(xiàn)實的介質(zhì)來實現(xiàn)
- 在實際的使用中,與用戶交互
在軟件開發(fā)中被稱為「必要」的部分是構(gòu)思這些概念上的結(jié)構(gòu)必搞,「次要」的部分是指它的實現(xiàn)過程必指。
現(xiàn)實問題
整個軟件開發(fā)工作中的哪些部分與概念性結(jié)構(gòu)的精確和有序表達(dá)相關(guān),哪些部分是創(chuàng)造那些結(jié)構(gòu)的思維活動恕洲?根據(jù)缺陷是概念性的(例如未能識別某些異常)塔橡,或者是表達(dá)上的問題(例如內(nèi)存分配錯誤)等,可以將這些缺陷的尋找和修復(fù)工作進(jìn)行相應(yīng)的劃分霜第。
「沒有銀彈」無可爭辯的指出葛家,如果開發(fā)的次要部分少于整個工作的 9/10,即使不占用任何時間泌类,也不會給生產(chǎn)率帶來數(shù)量級的提高癞谒。因此,必須著手解決開發(fā)的根本問題。
我們應(yīng)該向軟件系統(tǒng)中增加必要的復(fù)雜性:
- 層次化弹砚,通過分層的模塊或者對象
- 增量化双仍,使系統(tǒng)可以持續(xù)的運(yùn)行