所有項目的失敗真的都該歸咎于程序嗎?

jopen 10年前發布 | 4K 次閱讀 軟件開發

英文原文: Do Really All Projects Fail Because of Code?

今天,我讀到了兩篇有趣的文章: @unclebobmartin 寫的 The Cost of Code@DocOnDev 寫的 Code as a Cause of Project Failure ( 外刊IT評論 網提供了這兩篇文章的中文翻譯,讀者可以分別在 這里這里 閱讀它們的中文版。)。他們在用各種的論據來證明所有項目的失敗都是由于程序的原因。他們主要的論點是:如果程序沒有成本,輕巧易改變,項目就不可能失敗。是的。但這些是極端情況,很顯然在現實中是不可能的。我們并沒有生活在一個能夠時空穿梭的自由世界里(很遺憾)。現實生活里,程序是有成本的,而且很大,而且相信下個世紀也將會是這樣,所以這種論證證明不了什么。 理想世界里不需要程序。 理想世界里即使沒有計算機和其他復雜的東西,你也可以瞬間找到解決方案。所以我不認可他們的論據。在現實里,程序不是項目失敗的主要原因。

程序是有成本的。程序是昂貴的。但我們并不是賣源代碼,我們賣的是解決方案。如果不需要程序代碼就能產生解決方案,那是再好不過了。我們以一個處理現實目標的行業為例。汽車行業并不是出售碳物質和鐵塊的 – 那是汽車。他們出售的是一種解決交通問題的方案。時空穿梭機是一個理想的方案,但很遺憾,這種方式除了能傳輸電子外,什么都傳輸不了。我們買汽車是為了能從A處到B處。 我們買的是一種解決方案。

程序 != 解決方案

我認為失敗的項目的主要問題是他們要么提供了 糟糕的解決方案 ,要么 根本就不是個方案。 沒有人現在還提供驛站馬車,那已經不是一種有效的解決方案。如果一個項目不能解決任何問題,它就會失敗。如果一個項目能解決某些問題,但做的很爛,不可用,那也是失敗。你可以用最簡潔的代碼創造出世界上絕對最優美的架構。你可以做到100%的測試覆蓋率,功能相互完全不依賴,繼承關系平滑,方法沒有二義。所有的優點你都具備,但如果你的程序不能有效的解決用戶的問題,項目仍然會不幸的失敗。

你也許會爭辯說,整潔的代碼可以讓你快速的進行重構,一切都可以改變。但通常,如果程序解決了錯誤的問題,你需要完全重寫它。你不可能在驛站馬車上改造來使它跟汽車競爭。

所有項目的失敗真的都該歸咎于程序嗎?

另一方面,如果項目解決了正確的問題,但有缺陷,這時整潔的代碼非常的重要。沒有整潔的代碼你不可能做迅速的調整。但你不可能按人們的需求改變更多的東西。

別誤會我,我相信整潔的代碼是很重要的事情,但在軟件開發的活動中它不是最重要的資源。

</div>

來自: http://www.techug.com/do-really-all-projects-fail-because-of-code

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!