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
- 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)
- Tornhill A and Borg M Code red Proceedings of the International Conference on Technical Debt, (11-20)
- 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)
- 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)
- 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)
- Nichols W (2019). The End to the Myth of Individual Programmer Productivity, IEEE Software, 36:5, (71-75), Online publication date: 1-Sep-2019.
- Bakaev M and Khvorostov V Case-Based Genetic Optimization of Web User Interfaces Perspectives of System Informatics, (10-25)
- 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)
- 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.
- 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)
- Á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.
- 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.
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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.
- 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)
- 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)
- 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)
- 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.
- 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.
- 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)
- 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)
- 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.
- 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)
- 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)
- 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.
- 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.
- 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)
- 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.
- 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)
- 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)
- Budgen D and Brereton P Performing systematic literature reviews in software engineering Proceedings of the 28th international conference on Software engineering, (1051-1052)
- 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)
- 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.
- 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)
- 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)
- Ramler R and Auer D Encouraging Self-Organization Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications, (284-291)
- 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.
- 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)
- 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.
Index Terms
- Software Engineering: Facts and Fallacies
Recommendations
Software Engineering Education (SEEd)
Do you read Money Magazine? If so, did you see the Money Magazine article on the Best Jobs in America? If not, did you see any news from about this article? If you are a software engineer, then can you guess what the Number 1 ranked job is? If you knew/...
Software engineering
Classics in software engineeringIf someone said to me, "I have time to read only one of the papers in your collection," I would recommend this paper by Barry Boehm --- not because it is brilliant (although I think some of Boehm's insights border on brilliance) or because it ...