Why is software so prone to bugs and vulnerable to viruses? Why are software products so often delayed, or even canceled? Is software development really that hard, or are software developers just not that good at it? In his latest book Published by MIT Press, The Problem with Software: Why Smart Engineers Write Bad Code, author and Crosslake Principal Software Engineer, Adam Barr, warns that the underlying issues around bad software have not been solved.
“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 Microsoft for more than twenty years before joining Crosslake, 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, “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.'”
More about the book and how to order can be found here on the MIT Press site.
About Crosslake Technologies
Founded in 2008, Crosslake helps companies build and run better software. From strategic vision to planning and architecture, development and execution, Crosslake brings decades of deep experience to its clients to transform and optimize software delivery. In addition to our functional skills in software development, Crosslake’s team of senior software professionals provides end-to-end value with expertise in management consulting and advisory services providing both strategic and tactical insight. Crosslake is headquartered in the Seattle suburb of Bellevue, Washington. More information can be found at www.crosslaketech.com.