Facts and Fallacies of Software Engineering

Facts and Fallacies of Software Engineering

Robert L. Glass

Language: English

Pages: 224

ISBN: 0321117425

Format: PDF / Kindle (mobi) / ePub


The practice of building software is a “new kid on the block” technology. Though it may not seem this way for those who have been in the field for most of their careers, in the overall scheme of professions, software builders are relative “newbies.”

In the short history of the software field, a lot of facts have been identified, and a lot of fallacies promulgated. Those facts and fallacies are what this book is about.

There’s a problem with those facts–and, as you might imagine, those fallacies. Many of these fundamentally important facts are learned by a software engineer, but over the short lifespan of the software field, all too many of them have been forgotten. While reading Facts and Fallacies of Software Engineering , you may experience moments of “Oh, yes, I had forgotten that,” alongside some “Is that really true?” thoughts.

The author of this book doesn’t shy away from controversy. In fact, each of the facts and fallacies is accompanied by a discussion of whatever controversy envelops it. You may find yourself agreeing with a lot of the facts and fallacies, yet emotionally disturbed by a few of them! Whether you agree or disagree, you will learn why the author has been called “the premier curmudgeon of software practice.”

These facts and fallacies are fundamental to the software building field–forget or neglect them at your peril!

Introduction to Supply Chain Management Technologies (2nd Edition)

Agile Manufacturing: The 21st Century Competitive Strategy

Conspicuous Consumption

Inbound Marketing: Attract, Engage, and Delight Customers Online (2nd Edition)

Essentials of Management Information Systems (10th Edition)

Fake Work: Why People Are Working Harder than Ever but Accomplishing Less, and How to Fix the Problem

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Three generators went quite slowly, as I thought about all the problems that, to me, were unique. Summing up columns of figures. Summing sums. Summing sums of sums. There were some interesting problems, very different from the scientific domain that I was accustomed to, to be solved here. The second program didn't go much faster. The reason was that I was beginning to realize how much these three programs were going to have in common, and it had occurred to me that a generalized solution might.

The same old modification to a piece of software over and over again. Morale costs join dollar costs as the primary reason for accepting this corollary as fact. There is nothing new about this corollary. I can remember back to the 1960s when, considering how to solve a particular problem, rejecting modifying vendor software on the grounds that it would be, longterm, the most disastrous solution approach. Unfortunately, as with many of the other frequently forgotten facts discussed in this book,.

Design—according to the findings of Curtis and Soloway (1987)—is a messy, trial-and-error thing. And remember, these findings are the result of studying top designers at work. One can imagine less than top designers using an even messier process. Probably the worst possible design approach, and yet one that is tempting to most design novices, is "easy-part-first." Although it is easy to get the design process started with this approach, it all too often leads to solutions-in-the-small that won't.

Enhancements will create a new set of requirements. And those new requirements may or may not fit well into the design envelope. If they fit well, the modification task will be relatively easy. If they do not fit well, the modification task will be difficult and in some cases impossible. Remember that the development life cycle was a 20-20-20-40 affair—20 percent requirements, 20 percent design, 20 percent coding, and 40 percent error removal. Although similar, the maintenance life cycle is.

Testing approaches as regression testing, where a fixed set of tests is run against a revised version of a software product, require the same set of tests to be run repeatedly. So does the use of test managers, test tools that compare the result of this test case run with a previously successful or known-to-be-correct test "oracle." If random tests are truly random, then there is no provision in the idea for repeating the same set of tests over and over. Of course, it would be possible to.

Download sample

Download