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."
Software maintenance claims an extremely large share of the software dollar and is becoming the most expensive part of the software life cycle. The cost of failing to design systems...
... in Google Search and noticed a significant increase in ad clicks for users in the experimen‐tal group versus the control group. ... A/B diff tests that require manual blessing of diffs can also be incorporated into such a workflow.
2005a] Ostrand, T.J., E.J. Weyuker, and R.M. Bell. 2005. Predicting the Location and Number of Faults in Large Software Systems. IEEE Transactions on Software Engineering 31(4): 340–355. [Ostrand et al.
This book presents a groundbreaking approach to interaction design for complex problem solving applications.
A noted journalist chronicles three years in the lives of a team of maverick software developers, led by Lotus 1-2-3 creator Mitch Kapor, intent on creating a revolutionary personal information manager to challenge Microsoft Outlook.
The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly and cheaply."--
2 Fundamentals 2.1 Introduction To help you become proficient and productive in software design, this book informs, advises and gives lots of examples. But where does the advice come from? Experience – certainly. Other people's ideas ...
Written in a frank but engaging style, this book provides simple, foolproof principles guaranteed to help find any bug quickly.
Describes ways to incorporate domain modeling into software development.
previous employer, Widevine Technologies, including Thomas Inskip, Dan Robertson, Michael Rutman, Eric Shapiro, and Amanda Walker, but especially Brad Kollmyer and Neal Taylor. Widevine's support was crucial to the completion of this ...