skip to main content
Skip header Section
Software Engineering: Facts and FallaciesOctober 2002
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-321-11742-7
Published:01 October 2002
Pages:
224
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Book: When I first heard that Bob Glass was going to write this book and model it after my 201 Principles of Software Development, I was a bit worried. After all, Bob is one of the best writers in the industry, and he would provide tough competition for my book. And then, when Bob asked me to write his foreword, I became even more worried; after all, how can I endorse a book that seems to compete directly with one of mine Now that I have read Fifty-Five Facts, I am pleased and honored (and no longer worried!) to have the opportunity to write this foreword. The software industry is in the same state of affairs that the pharmaceutical industry was in during the late nineteenth century. Sometimes it seems that we have more snake-oil salespeople and doomsayers than sensible folks practicing and preaching in our midst. Every day, we hear from somebody that they have discovered this great new cure for some insurmountable problem. Thus we have oft heard of quick cures for low efficiency, low quality, unhappy customers, poor communication, changing requirements, ineffective testing, poor management, and on and on. There are so many such pundits of the perfunctory that we sometimes wonder if perhaps some portion of the proclaimed panaceas are possibly practical. Who do we ask Who in this industry can we trust Where can we get the truth The answer is Bob Glass. Bob has had a history of providing us with short treatises on the many software disasters that have occurred over the years. I have been waiting for him to distill the common elements from these disasters so that we can benefit more easily from his many experiences. The 55 facts that Bob Glass discusses in thiswonderful book are not just conjectures on his part. They are exactly what I have been waiting for: i.e., the wisdom gained by the author by examining in detail the hundreds of cases he has written about in the past. The 55 facts that follow are likely to not be popular with all readers. Some are in direct opposition to the so-called modern ways of doing things. For those of you who wish to ignore the advice contained within these covers, I can only wish you the safest of journeys, but I fear for your safety. You are treading on well-trod territory, known to be full of mines, and many have destroyed their careers trying to pass. The best advice I can give you is to read any of Bob Glass' earlier books concerning software disasters. For those of you who wish to follow the advice contained herein, you too are following a well-trod path. However this path is full of successful testimonies. It is a path of awareness and knowledge. Trust Bob Glass because he has been there before. He has had the privilege of analyzing his own successes and failures along with hundreds of others' successes and failures. Stand on his shoulders, and you will more likely succeed in this industry. Ignore his advice and be prepared for Bob to call you in a few years to ask you about your projectto add it to his next compilation of software disaster stories. Alan M. Davis, Spring, 2002

Cited By

  1. Tigina M, Birillo A, Golubev Y, Keuning H, Vyahhi N and Bryksin T Analyzing the Quality of Submissions in Online Programming Courses Proceedings of the 45th International Conference on Software Engineering: Software Engineering Education and Training, (271-282)
  2. ACM
    Tornhill A and Borg M Code red Proceedings of the International Conference on Technical Debt, (11-20)
  3. ACM
    Wiese E, Rafferty A and Pyper J Readable vs. Writable Code Proceedings of the 53rd ACM Technical Symposium on Computer Science Education - Volume 1, (321-327)
  4. ACM
    Birillo A, Vlasov I, Burylov A, Selishchev V, Goncharov A, Tikhomirova E, Vyahhi N and Bryksin T Hyperstyle Proceedings of the 53rd ACM Technical Symposium on Computer Science Education - Volume 1, (307-313)
  5. ACM
    Campos U, Lopes A and Conte T Evolution of BPMN Models through e-VOL BPMN Proceedings of the XIX Brazilian Symposium on Software Quality, (1-11)
  6. Nichols W (2019). The End to the Myth of Individual Programmer Productivity, IEEE Software, 36:5, (71-75), Online publication date: 1-Sep-2019.
  7. Bakaev M and Khvorostov V Case-Based Genetic Optimization of Web User Interfaces Perspectives of System Informatics, (10-25)
  8. Wiese E, Rafferty A and Fox A Linking code readability, structure, and comprehension among novices Proceedings of the 41st International Conference on Software Engineering: Software Engineering Education and Training, (84-94)
  9. ACM
    Stol K and Fitzgerald B (2018). The ABC of Software Engineering Research, ACM Transactions on Software Engineering and Methodology, 27:3, (1-51), Online publication date: 31-Jul-2018.
  10. ACM
    Lee S, Chen Y, Klugman N, Gouravajhala S, Chen A and Lasecki W Exploring Coordination Models for Ad Hoc Programming Teams Proceedings of the 2017 CHI Conference Extended Abstracts on Human Factors in Computing Systems, (2738-2745)
  11. Águila I and Sagrado J (2016). Bayesian networks for enhancement of requirements engineering, Requirements Engineering, 21:4, (461-480), Online publication date: 1-Nov-2016.
  12. Wagner S, Karimi Z, Baraani-Dastjerdi A and Ghasem-Aghaee N (2016). Using Personality Traits to Understand the Influence of Personality on Computer Programming, Journal of Cases on Information Technology, 18:1, (28-48), Online publication date: 1-Jan-2016.
  13. ACM
    Anslow C and Maurer F An Experience Report at Teaching a Group Based Agile Software Development Project Course Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (500-505)
  14. ACM
    Datta S, Sarkar P and Majumder S Developer involvement considered harmful?: an empirical examination of Android bug resolution times Proceedings of the 6th International Workshop on Social Software Engineering, (45-48)
  15. ACM
    Monperrus M A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair Proceedings of the 36th International Conference on Software Engineering, (234-242)
  16. ACM
    Turner R, Falcone M, Sharif B and Lazar A An eye-tracking study assessing the comprehension of c++ and Python source code Proceedings of the Symposium on Eye Tracking Research and Applications, (231-234)
  17. ACM
    Bazhenov A and Itsykson V Forecasting software development project characteristics using meta-modeling Proceedings of the 9th Central & Eastern European Software Engineering Conference in Russia, (1-8)
  18. ACM
    Fernández-Sáez A, Chaudron M, Genero M and Ramos I Are forward designed or reverse-engineered UML diagrams more helpful for code maintenance? Proceedings of the 17th International Conference on Evaluation and Assessment in Software Engineering, (60-71)
  19. Abualkishik A, Desharnais J, Khelifi A, Ghani A, Atan R and Selamat M (2012). An exploratory study on the accuracy of FPA to COSMIC measurement method conversion types, Information and Software Technology, 54:11, (1250-1264), Online publication date: 1-Nov-2012.
  20. dos Anjos E, Gomes R and Zenha-Rela M Assessing maintainability metrics in software architectures using COSMIC and UML Proceedings of the 12th international conference on Computational Science and Its Applications - Volume Part IV, (132-146)
  21. Del Sagrado J, Del Águila I and Orellana F Architecture for the use of synergies between knowledge engineering and requirements engineering Proceedings of the 14th international conference on Advances in artificial intelligence: spanish association for artificial intelligence, (213-222)
  22. Mader P and Egyed A Do software engineers benefit from source code navigation with traceability? -- An experiment in software change management Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (444-447)
  23. ACM
    Yilmaz M and O'Connor R (2011). A software process engineering approach to improving software team productivity using socioeconomic mechanism design, ACM SIGSOFT Software Engineering Notes, 36:5, (1-5), Online publication date: 30-Sep-2011.
  24. ACM
    Dubey S and Rana A (2011). Assessment of maintainability metrics for object-oriented software system, ACM SIGSOFT Software Engineering Notes, 36:5, (1-7), Online publication date: 30-Sep-2011.
  25. Przybyłek A Systems evolution and software reuse in object-oriented programming and aspect-oriented programming Proceedings of the 49th international conference on Objects, models, components, patterns, (163-178)
  26. ACM
    Fernández-Sáez A, Genero M and Chaudron M Empirical investigation on the benefits of using UML in software maintenance Proceedings of the 12th International Conference on Product Focused Software Development and Process Improvement, (44-47)
  27. ACM
    Cerpa N and Verner J (2009). Why did your project fail?, Communications of the ACM, 52:12, (130-134), Online publication date: 1-Dec-2009.
  28. Lusth J, Kraft N and Tacey J Language subsetting via reflection and overloading Proceedings of the 39th IEEE international conference on Frontiers in education conference, (1187-1192)
  29. Khoroshilov A, Mutilin V, Petrenko A and Zakharov V Establishing linux driver verification process Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics, (165-176)
  30. Beecham S, Baddoo N, Hall T, Robinson H and Sharp H (2008). Motivation in Software Engineering, Information and Software Technology, 50:9-10, (860-878), Online publication date: 1-Aug-2008.
  31. ACM
    Gencel C and Demirors O (2008). Functional size measurement revisited, ACM Transactions on Software Engineering and Methodology, 17:3, (1-36), Online publication date: 1-Jun-2008.
  32. ACM
    Hall T, Beecham S, Verner J and Wilson D The impact of staff turnover on software projects Proceedings of the 2008 ACM SIGMIS CPR conference on Computer personnel doctoral consortium and research, (30-39)
  33. Pheatt C (2008). The soft side of software engineering, Journal of Computing Sciences in Colleges, 23:4, (231-232), Online publication date: 1-Apr-2008.
  34. Ferre X and Medinilla N How a human-centered approach impacts software development Proceedings of the 12th international conference on Human-computer interaction: interaction design and usability, (68-77)
  35. He M, Yang Y, Wang Q and Li M Cost estimation and analysis for government contract pricing in china Proceedings of the 2007 international conference on Software process, (134-146)
  36. ACM
    Budgen D and Brereton P Performing systematic literature reviews in software engineering Proceedings of the 28th international conference on Software engineering, (1051-1052)
  37. ACM
    Budgen D, Charters S, Turner M, Brereton P, Kitchenham B and Linkman S Investigating the applicability of the evidence-based paradigm to software engineering Proceedings of the 2006 international workshop on Workshop on interdisciplinary software engineering research, (7-14)
  38. Glassy L (2006). Using version control to observe student software development processes, Journal of Computing Sciences in Colleges, 21:3, (99-106), Online publication date: 1-Feb-2006.
  39. Kuzniarz L and Staron M Best practices for teaching UML based software development Proceedings of the 2005 international conference on Satellite Events at the MoDELS, (320-332)
  40. Harjumaa L, Tervonen I and Huttunen A Peer Reviews in Real Life - Motivators and Demotivators Proceedings of the Fifth International Conference on Quality Software, (29-36)
  41. Ramler R and Auer D Encouraging Self-Organization Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, (284-291)
  42. ACM
    Kitchenham B, Budgen D, Brereton P and Linkman S (2005). Realising evidence-based software engineering, ACM SIGSOFT Software Engineering Notes, 30:4, (1-3), Online publication date: 1-Jul-2005.
  43. ACM
    Kitchenham B, Budgen D, Brereton P and Linkman S Realising evidence-based software engineering Proceedings of the 2005 workshop on Realising evidence-based software engineering, (1-3)
  44. Glass R (2003). A Big Problem in Academic Software Engineering and a Potential Outside-the-Box Solution, IEEE Software, 20:4, (96-95), Online publication date: 1-Jul-2003.
Contributors
  • Griffith University

Recommendations

Reviews

Hari R. Vishwakarma

Several important topics are addressed in this book, including management, life cycle, and quality of software development. The style and language really draw the reader in, and I would like to congratulate the author on what is a truly impressive work. Part 1 presents 55 “facts” about each of the topics, followed by a well-written discussion, and supplemented further by controversies surrounding the facts, and sources and references for further investigation. This approach works very well. Glass brings people back to center stage. Since the focus often seems to lean more towards processes, tools, and techniques, this is an appropriate message for project management professionals. The next important message concerns estimation. Glass rightly notes that estimation performed by the wrong people at the wrong time is the main cause of runaway projects. The author also brings up some very important issues regarding the development life cycle. For example, fact 25, “Missing requirements are the hardest requirements errors to correct,” and fact 27, “There is seldom one best design solution to a software problem,” are examples of obvious but overlooked aspects. Another important point is raised in fact 42: “Maintenance is a solution, not a problem.” I also found the fact, “Many researchers advocate rather than investigate,” to be a very apt and very strong message for the research community. Part 2, “5+5 Fallacies,” introduces fallacies that are prevalent in management, life cycle, and quality of software projects. These make interesting and eye-opening reading. Most attempt to differentiate reality from hype and myths. Finally, chapter 7 attempts to introduce better perspectives on teaching programming, critiquing current approaches. This book can be valuable for several audiences, from software engineering students, to researchers and practitioners. Newcomers to the field often misconceive software development as an ivory tower, bogged down with technical issues and buzzwords. This book attempts to correct this perspective. It clarifies several aspects of software development using lucid language. The crucial lessons are for software project managers. The text is fun and easy to read. The book would therefore make a good supplementary text for software engineering students or a refresher text for software developers and project managers. It is a good buy for a novice or a practitioner. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.