The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)

Adam Barr

商品描述

An industry insider explains why there is so much bad software―and why academia doesn't teach programmers what industry wants them to know.

Why is software so prone to bugs? So vulnerable to viruses? Why are software products so often delayed, or even canceled? Is software development really hard, or are software developers just not that good at it? In The Problem with Software, Adam Barr examines the proliferation of bad software, explains what causes it, and offers some suggestions on how to improve the situation.

For one thing, Barr points out, academia doesn't teach programmers what they actually need to know to do their jobs: how to work in a team to create code that works reliably and can be maintained by somebody other than the original authors. As the size and complexity of commercial software have grown, the gap between academic computer science and industry has widened. It's an open secret that there is little engineering in software engineering, which continues to rely not on codified scientific knowledge but on intuition and experience.

Barr, who worked as a programmer for more than twenty years, describes how the industry has evolved, from the era of mainframes and Fortran to today's embrace of the cloud. He explains bugs and why software has so many of them, and why today's interconnected computers offer fertile ground for viruses and worms. The difference between good and bad software can be a single line of code, and Barr includes code to illustrate the consequences of seemingly inconsequential choices by programmers. Looking to the future, Barr writes that the best prospect for improving software engineering is the move to the cloud. When software is a service and not a product, companies will have more incentive to make it good rather than “good enough to ship."

商品描述(中文翻譯)

一位業界內部人士解釋了為什麼有這麼多糟糕的軟體,以及為什麼學術界不教授程式設計師需要了解的業界需求。

為什麼軟體容易出現錯誤?為什麼容易受到病毒攻擊?為什麼軟體產品經常延遲甚至取消?軟體開發真的很難,還是軟體開發人員只是不夠優秀?在《軟體問題》一書中,亞當·巴爾(Adam Barr)探討了糟糕軟體的泛濫現象,解釋了其原因,並提出了一些建議以改善這種情況。

首先,巴爾指出,學術界並不教授程式設計師實際上需要了解的內容,以便在團隊中合作創建可靠運作且可以由原始作者以外的人維護的程式碼。隨著商業軟體的規模和複雜性的增長,學術界的計算機科學與業界之間的差距越來越大。眾所周知,軟體工程中很少有工程,它仍然依賴於直覺和經驗,而不是編碼化的科學知識。

巴爾在過去二十多年中擔任程式設計師,描述了業界的演變,從大型機和Fortran時代到如今對雲端的接受。他解釋了錯誤和為什麼軟體有這麼多錯誤,以及為什麼當今互聯的電腦為病毒和蠕蟲提供了肥沃的土壤。好軟體和壞軟體之間可能只有一行程式碼的差別,巴爾提供了程式碼來說明程式設計師看似微不足道的選擇所帶來的後果。展望未來,巴爾寫道,改善軟體工程的最佳前景是轉向雲端。當軟體成為服務而不是產品時,公司將更有動力使其變得優秀,而不僅僅是「足夠好以出貨」。