Facts and Fallacies of Software Engineering and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $2.38 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Facts and Fallacies of Software Engineering on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Facts and Fallacies of Software Engineering [Paperback]

Robert L. Glass
4.3 out of 5 stars  See all reviews (32 customer reviews)

List Price: $44.99
Price: $28.21 & FREE Shipping. Details
You Save: $16.78 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 6 left in stock (more on the way).
Ships from and sold by Amazon.com. Gift-wrap available.
Want it tomorrow, May 22? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Rent Your Textbooks
Save up to 70% when you rent your textbooks on Amazon. Keep your textbook rentals for a semester and rental return shipping is free.

Book Description

November 7, 2002 0321117425 978-0321117427 1

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!


Frequently Bought Together

Facts and Fallacies of Software Engineering + Code Complete: A Practical Handbook of Software Construction, Second Edition + The Pragmatic Programmer: From Journeyman to Master
Price for all three: $91.54

Buy the selected items together


Editorial Reviews

From the Back Cover

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!



0321117425B09232002

About the Author

Robert Glass is the founder of Computing Trends. He has written more than a dozen books on software engineering and on the lessons of computing failures. Robert is trusted by many as a leading authority on software engineering, especially by those who read his columns in Communications of the ACM and IEEE Software. Robert also publishes a newsletter, The Software Practitioner, and speaks frequently at software engineering events.



0321117425AB09232002

Product Details

  • Paperback: 224 pages
  • Publisher: Addison-Wesley Professional; 1 edition (November 7, 2002)
  • Language: English
  • ISBN-10: 0321117425
  • ISBN-13: 978-0321117427
  • Product Dimensions: 7.2 x 0.5 x 9.3 inches
  • Shipping Weight: 1.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.3 out of 5 stars  See all reviews (32 customer reviews)
  • Amazon Best Sellers Rank: #178,860 in Books (See Top 100 in Books)

More About the Author


Robert L. Glass (Bob) has meandered the halls of computing for almost 60 years now, starting with a three-year gig in the aerospace industry (at North American Aviation) in 1954-1957, which makes him one of the true pioneers of the software field.

That stay at North American extended into several other aerospace appearances (at Aerojet-General Corp., 1957-1965) and the Boeing Company, 1965-1970 and 1972-1982). His role was largely that of building software tools used by applications specialists. It was an exciting time to be part of the aerospace business - those were the heady days of Space Exploration, after all - but it was an even headier time to be part of the Computing Field. Progress in both fields was rapid, and the vistas were extraterrestrial!

The primary lesson he learned during those aerospace years was that he loved the technology of software, but hated being a manager. He carefully cultivated the role of technical specialist, which had two major impacts on his career - (a) his technical knowledge remained fresh and useful, but (b) his knowledge of management - and his earning power (!) - were diminished commensurately.

When his upwards mobility had reached the inevitable technological Glass ceiling (tee-hee!), Glass took a lateral transition into academe. He taught in the Software Engineering graduate program at Seattle University (1982-1987) and spent a year at the (all-too-academic!) Software Engineering Institute (1987-1988). (He had earlier spent a couple of years (1970-1972) working on a tools-focused research grant at the University of Washington).

The primary lesson he learned during those academic years was that he loved having his Head in the academic side of software engineering, but his Heart remained in its practice. You can take the man out of industry, apparently, but you can't take the industry out of the man. With that new-found wisdom, he began to search for ways to bridge what he had long felt was the "Communication Chasm" between academic computing and its practice.

He found several ways of doing that. Many of his books (over 25) and professional papers (over 90) focus on trying to evaluate academic computing findings and on transitioning those with practical value to industry. (This is decidedly a non-trivial task, and is largely responsible for the contrarian nature of his beliefs and his writings). His lectures and seminars on software engineering focus on both theoretical and best-of-practice findings that are useful to practitioners. His newsletter, The Software Practitioner, treads those same paths. So does the (more academic) Journal of Systems and Software, which he edited for many years for Elsevier (he is now its Editor Emeritus). And so do the columns he has written regularly for such publications as IEEE Software, Information Systems Management, Communications of the ACM, DataBase, and ComputerWorld. Although most of his work is serious and contrarian, a fair portion of it also contains (or even consists of!) computing humor.

With all of that in mind, what are his proudest moments in the computing field? The award, by Linkoping University of Sweden, of his honorary Ph.D. degree in 1995. His being named a Fellow of the ACM professional society in 1999. And his tenure as a semi-regular columnist for those several leading computing publications.

On the personal level, he is the father of two biological and two adopted interracial children, and is married to Iris Vessey, .an Information Systems academic.

Recent books include Software Conflict 2.0 and Software Creativity 2.0, from developer.* Books, Facts and Fallacies of Software Engineering, from Addison-Wesley, and The Dark Dide of Software Engineering, from Wiley/IEEE CS Press.

Customer Reviews

Most Helpful Customer Reviews
82 of 84 people found the following review helpful
Format:Paperback
I have read a fair number of software engineering books, and this is one of the more enjoyable books that I have read. When I first heard about it, I thought the concept of a sort of summary of the state of the art sounded really interesting. Although I haven't read any of the author's previous books, I have read and enjoyed his columns in IEEE Software and Communications of the ACM, so I had high hopes about this book. And I wasn't disappointed.

Facts and Fallacies of Software Engineering is divided into 55 facts and 10 fallacies. Each fact and fallacy is presented in the same way. There is a headline/slogan that summarizes it, usually one or two pages of Discussion giving more details, then a Controversy section describing what (if anything) people disagree about and finally Sources and References.

The 55 Facts are divided into the following sections and sub-sections: Management (People, Tools and Techniques, Estimation, Reuse, Complexity), Life Cycle (Requirements, Design, Coding, Error Removal, Testing, Reviews and Inspections, Maintenance), Quality (Quality, Reliability, Efficiency) and Research.

The 10 Fallacies are divided into Management, Life Cycle and Education.

This way of organizing the material works really well, and makes the book very accessible and easy to read. It also allows you to jump around and read what interests you the most first (which is what I did, although I eventually read all of it).

Many of the facts are well known (for example Fact 3 "Adding people to a late project makes it later", Fact 16 "Reuse-in-the-large remains a mostly unsolved problem" and Fact 24 "Requirement errors are the most expensive to fix during production"), but that doesn't matter. It is actually good to be reminded of these facts even if you already know them, and the author does a very good job of summarizing them.

Another thing I like about the book is the Sources and Reference parts (although I think they might as well have been combined into just one Reference section). Often there are references to research papers where the original fact was presented. It is nice to know that what is presented as a fact is indeed a fact that has been validated by research, and not just the opinion of the author (although there is certainly room for opinions in a lot of places as well).

There are also lots of references to other books on software engineering, and a lot of the classic books (like The Mythical Man-Month, Peopleware and Design Patterns) are referenced. So there is plenty of leads in case you want to find out more about a certain fact.

Among the facts I liked the most were Fact 12, Fact 21 and Fact 26.

Fact 12: "Since estimates are so faulty, there is little reason to be concerned when software projects do not meet estimated targets. But everyone is concerned anyway". This fact and the related ones simply state that when a project is late, it is very likely because the estimated time to complete it was unrealistic. Very true.

Fact 21: "For every 25 percent increase in problem complexity, there is a 100 percent increase in complexity of the software solution." I had never seen this fact before, but it does ring true to me. And as the author writes, it explains a lot of the other facts in the book as well.

Fact 26: "Explicit requirements 'explode' as implicit (design) requirements for a solution evolve". In other words, each explicit requirement leads to many more implicit requirements (by a factor of up to 50). This too I had never seen stated, but I definitely recognize this from my own experience.

The Fallacies section list ten common misunderstandings in software engineering, and this is where I disagree on a couple of points. Fallacy 7 states "Random test input is a good way to optimize testing". I agree that it can not be the only test approach, but since he also writes "It may or may not survive as a test approach", he is skeptical to it in general. My own experience is that it is an invaluable complement that helps flush out numerous what I call "timing dependent" bugs caused by the nature of asynchronous events.

I also don't think all his arguments in Fallacy 8 are valid. I agree that since there is no data demonstrating the truth of "Given enough eyeballs, all bugs are shallow", we should not just accept it as truth. But I think he misses the point when he refers to research showing that inspections don't get much extra benefit beyond 2 to 4 participants. My interpretation is that the "enough eyeballs" are not so much inspecting the software in question as running it and debugging it when there is a problem. And the "all bugs are shallow" should not be interpreted too literally. Of course the bugs may still be difficult, but if many people look at it, the chances of someone solving it fairly quickly increases.

Those two examples notwithstanding, I did find myself nodding my head and saying "yes, I agree with that" almost all of the time reading this book.

There are many more interesting facts that I have not commented on, and if you are interested in software engineering I highly recommend this book.

Comment | 
Was this review helpful to you?
32 of 32 people found the following review helpful
5.0 out of 5 stars Insightful To The New Manager/Team Leader April 4, 2003
Format:Paperback
The other reviewers have done a fine job of covering the content of the book. I will comment about its usefulness. In short, this book is truly valuable to the developer who has recently been promoted to team leader. While developers would benefit greatly from this book, the reality is that most developers would rather read books like "Effective C++", "Design Patterns", "Expert One on One Oracle", etc. To the new manager, though, this book is a gem. The book talks about specific management issues as well as the development life cycle and quality. In short, the book focuses exactly on what the team leader does and the team leader's team. In addition to the material presented in the book, the author gives a great number of sources and reference for further reading.
Comment | 
Was this review helpful to you?
9 of 9 people found the following review helpful
5.0 out of 5 stars (Not so) common wisdom about building software December 2, 2002
Format:Paperback
Bob Glass is a programmers' programmer -- he's at the other end of the scale from software engineering gurus. This collection of fifty-five software facts and ten fallacies is distilled from his forty-five years of programming experience. Much of it is the kind of thing your grandmother could have told you -- if your grandmother was a programmer -- but some items will surprise and others annoy some people.

Take the following two items as examples:

"The 60/60 rule: 60 percent of software's dollar is spent on maintenance, and 60 percent of that maintenance is enhancement."

"Understanding the existing product consumes roughly 30 percent of the total maintenance time."

That implies that one of the most valuable skills you can teach a Computer Science student is how to *read* code. But as Glass points out (and he taught graduate students for a while) CS courses only teach students to *write* programs, and then they don't often grade the code on readability.

The section on design, which Glass describes as the most intellectual phase of a software project, is the best description of how software designers actually work that I've ever read. He claims that top-ranked designers routinely ignore or subvert the methodologies used by their shops in order to do the job the right way. He has an especial warning for anyone trying to develop anything other than the most trivial program using XP.

The ten fallacies may have taken some well-known quotes out of context. Surely Eric Raymond of the open source movement didn't really mean, "Given enough eyes all bugs are shallow", to be taken literally. Either way, the point Glass is trying to make is that, without proof, we shouldn't *assume* that open source code is less buggy than proprietary code.

Facts and Fallacies of Software Engineering is aimed at two audiences: those without Glass' 45 years of programming experience, and those who have it but, like all good professionals, want to refresh the basics. Since some of the wisdom came with useful statistics that I've never seen published before, I'd recommend the book to anyone involved in developing or maintaining software.

Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
3.0 out of 5 stars No real new knowledge
I suppose this book would be good for someone trying to convince their management not to make silly mistakes, but as a practicing engineer who writes code for a living, there... Read more
Published 4 months ago by James S. Keane
1.0 out of 5 stars The engineering equivalent of a self help book written by a 23 year...
I am very disappointed with myself by buying this book. For some reason i was expecting to derive some value out of it, oh, what a silly idea... Read more
Published 5 months ago by B. Figares
5.0 out of 5 stars As much evidence as you ca find
If you liked the "Voice of Evidence" IEEE Software articles, then you will love the entire book.
This book should really be the SWEBok. Read more
Published 13 months ago by Marc Magrans De Abril
5.0 out of 5 stars Great book; it makes you think.
I bought this book based on a recommendation from a co-worker. I have not been disappointed. It is an easy read but it also makes you think. Read more
Published 13 months ago by Robert Twete
4.0 out of 5 stars Book that'll probably work "by induction" once you have some "basis"
RECAP
Quick to read, lots of valuable insights. Never gets deep, but provides a list of important issues in the software engineering field. Read more
Published 21 months ago by Maraspin Stefano
4.0 out of 5 stars Must-read, but take it with a grain of salf
Author does a very good job at debunking common myths of software development, especially those most popular with people not involved in development process directly. Read more
Published on August 10, 2010 by Egor Shipovalov
4.0 out of 5 stars A Great Bathroom Reader
I read this book with breakfast and supper, literally. The two to three page facts are conveniently bite-sized; this is a rare "bathroom reader" of a technical book. Read more
Published on May 14, 2009 by David Sharpe
4.0 out of 5 stars Useful summary book to core software engineering methodology
With more than 45 years experience in the software field, Robert Glass
attempts to sum up the most integral facts and dispel common misunderstandings with software... Read more
Published on August 24, 2008 by Jennifer B Davis
5.0 out of 5 stars Controversial but good
As stated at the beginning of this book there are some controversial facts in there. But If you manage to put your personal bias aside you will find that it is quite useful in... Read more
Published on July 14, 2008 by Dejan Fajfar
5.0 out of 5 stars Pearls of wisdom, business reader friendly
This list of Facts and Fallacies usefully presents some of the more important and insightful learnings from decades of experience in Software Engineering. Read more
Published on June 25, 2008 by Neil Kimber
Search Customer Reviews
Only search this product's reviews


Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 





Look for Similar Items by Category