本節書摘來自異步社群《軟體工藝》一書中的第1章“足夠好”的軟體開發方法的危害,作者【美】pete mcbreen,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
“足夠好”的軟體開發方法的危害
軟體工藝
在軟體變得越來越重要的同時,它們是否也變得越來越臃腫、錯誤越來越多?我還記得,在過去的日子裡,整個文字處理軟體可以裝進一張軟碟;現在,我們已經看到不少的應用程式連一張CD光牒都裝不下了。有很多打包的應用程式,它們每次釋出新版本都會要求使用者購買更多的記憶體或者更快的計算機,而且其中大多數的新特性根本不能很好地工作。
你的軟體是否越來越好看,卻越來越難用?有時,使用者們甚至會想:開發者是不是花了太多的時間在應用程式的觀感上,以至于忘記了考慮别人怎麼使用這個程式。
項目是否用掉了比預先承諾更多的時間,而傳遞的成果卻更少?“霧件”(vaporware)是軟體工業給我們的詞典加上的一個有趣的詞彙。軟體産品的前幾個版本也許還能夠快速釋出,但每次釋出改進版本所需要的時間越來越長,軟體也變得越來越複雜。随着複雜度的上升,“将缺陷減少到可接受的程度”也會耗費越來越多的時間。
當你報告一個缺陷時,軟體開發者是否顯得對你的需要漠不關心?現實就是如此殘酷:在“足夠好”的開發方式中,這種冷漠是必要的利弊權衡。如果一個缺陷僅僅影響一小部分的使用者,那麼花費人力來修複這個問題就是不經濟的。如果你夠幸運的話,你将可以找到其他的辦法來繞過這個錯誤,并繼續等待下一個版本釋出。
“足夠好”的軟體開發方式是有害的,因為它繼承并發揚了“缺陷是不可避免的”這一荒誕不經的理論。事實正好相反:缺陷之是以存在,恰恰是因為我們采用了這種瘋狂的開發方式。“足夠好”的軟體開發的特點就是:近乎瘋狂地編碼,在最短時間内得到一個“擁有全部特性”的應用程式,随後是一個若有若無的測試、排錯階段。開發者哪怕隻是動一動“排除所有缺陷”的念頭也會被認為是浪費力氣,因為一大半的特性很可能就實作在現有的錯誤之上。由于“足夠好”的開發方式将編碼和測試分離成了兩個截然不同的階段,是以用這種方式開發出的應用程式中必定會包含大量的缺陷。
釋出含有已知錯誤的軟體,這不是一個好主意。即使所有已知的嚴重錯誤已經被修複了,“釋出含有已知錯誤的軟體”這種做法仍然會向使用者傳遞錯誤的資訊:開發者不知道如何修複軟體中的錯誤,甚至開發者根本不關心軟體的品質和可靠性。1在其他行業中,你不會看到這種情況。你可以随便找一家汽車代理商,他們會告訴你:如果有其他高可靠性的産品,銷售低可靠性的産品會對自己的聲譽造成多大的損害。
1 mark minasi,《軟體陰謀》(the software conspiracy),mcgraw-hill,2000。
本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。