Book: Facts and Fallacies of Software Engineering by Robert L. Glass


Lives up to its title

Robert L. Glass
Facts and Fallacies of Software Engineering
Addison-Wesley, 2003
ISBN 0-321-11742-5
US$ 29.99
187 pages (main text)

In the introduction of Facts and Fallacies of Software Engineering, Robert Glass tells us that his original title was "Fifty-Five Frequently Forgotten Fundamental Facts (and a Few Fallacies) about Software Engineering". That's not a very snappy title but, as he says there, it's an apt description of the book. Mr Glass discusses 55 facts and 10 fallacies in short sections. Some of his facts are: "The answer to a feasibility study is almost always 'yes'", "Software is usually tested at best at the 55 to 60 percent (branch) coverage level", and "High-order language code can be about 90 percent as efficient as comparable assembler code".

His discussions of individual facts are grouped into sections that cover smaller aspects of programming and those sections are grouped into chapters that cover larger aspects of programming. The facts' sections can mostly stand alone; you could read them in random order if you wanted to.

Mr Glass does not expect that everyone will agree with him on every point. He does a creditable job of discussing controversies about each of his facts and providing sources and references that back up his arguments. I expect that most people involved with software development will find a few things to disagree with. I did. But even when Mr Glass didn't fully persuade me that he's right, he brought up ideas that are well worth thinking about. I learned a few things and was reminded of more. I expect that most folks who are involved with writing software would have the same experience. That's plenty to make the book worth reading.

As much as I respect Mr Glass's content, his writing is flabby. For example, fact 35 is (p. 101):

    Test automation rarely is. That is, certain testing processes
    can and should be automated. But there is a lot of testing
    activity that cannot be automated.

That could be written much more simply and clearly as, "Much of software testing is impossible to automate". That's perhaps an extreme example, but there's much in this book that could be tightened up.

The book's design could use some improvement as well. There are unnecessary clip-art icons in the left margin. New facts often start at the bottom of a page. And some of the text has a gray background that's too dark for comfortable reading. (That often results from making plates for offset printing from laser printer output that hasn't been adjusted to account for the fact that book paper will spread each dot slightly as it absorbs the ink.)

Despite its imperfections, Facts and Fallacies of Software Engineering is well worth a read by anyone who is involved in the production of software.

Posted: Mon - December 29, 2003 at 10:05   Main   Category: 


©