Articles

Avizienis et al. 2004
Avizienis et al., “Basic Concepts and Taxonomy of Dependable and Secure Computing,” IEEE Transactions on Dependable and Secure Computing, Vol. 1, No. 1, pp. 11–33, 2004
Ayewah et al. 2008
Ayewah et al., “Using Static Analysis to Find Bugs,” IEEE Software, Vol. 25, No. 5, pp. 22–29, September / October 2008
Barkai 1996
Barkai, “Teaching Negotiation and ADR: The Savvy Samurai Meets the Devil,” Nebraska Law Review, vol. 75, pp. 704-751, 1996
Bentley 1985
Bentley, “Programmimg Pearls: Bumper-Sticker Computer Science,” Communications of the ACM, Vol. 28, No. 9, pp. 896–901, September 1985
Bessey et al. 2010
Bessey, Block, Chelf, Chou, Fulton, Hallem, Henri-Gros, Kamsky, McPeak, and Engler, “A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World,” Communications of the ACM, Vol. 53, No. 2, pp. 66–75, February 2010 (online)
Boehm 1996
Boehm, “Anchoring the Software Process,” IEEE Software, Vol. 13, No. 4, pp. 73–82, July 1996
Brooks 1987
Brooks, “No Silver Bullet Essence and Accidents of Software Engineering,” Computer, Vol. 20, No. 4, pp. 10–19, April 1987
Constantine 1993
Constantine, “Work Organization: Paradigms for Project Management and Organization,” Communications of the ACM, Vol. 36, No. 10, pp. 35–43, October 1993
Dijkstra 1975
Dijkstra, “How do we tell truths that might hurt?,” EWD 498, 1975 (republished in Selected Writings on Computing: A Personal Perspective)
Dijkstra 1988
Dijkstra, “On the Cruelty of Really Teaching Computer Science,” EWD 1036, 1988
Distefano et al. 2019
Distefano, Fähndrich, Logozzo, and O’Hearn, “Scaling Static Analyses at Facebook,” Communications of the ACM, Vol. 62, No. 8, pp. 62–70, August 2019 (online)
Fagan 1976
Fagan, “Design and code inspections to reduce errors in program development,” IBM Systems Journal, Vol. 15, No. 3, pp. 182–211, 1976
Fairley and Wilshire 2003
Fairley and Wilshire, “Why the Vasa Sank: 10 Problems and Some Antidotes for Software Projects,” IEEE Software, Vol. 20, No 2., pp. 18–25, 2003 (copy)
Fishman 1996
Fishman, “They Write the Right Stuff,” Fast Company, 31 December 1996
Garman 1981
Garman, “The "BUG" Heard 'round the World: Discussion of the Software Problem Which Delayed the First Shuttle Orbital Flight,” SIGSOFT Software Engineering Notes, Vol. 6, No. 5, pp. 3–10, October 1981
Gibbs 1994
Gibbs, “Software’s Chronic Crisis,” Scientific American, Vol. 271, No. 3, pp. 86–95, September 1994 (copy)
Gotterbarn et al. 1997
Gotterbarn, Miller, and Rogerson, “Software Engineering Code of Ethics,” Communications of the ACM, Vol. 40, No. 11, pp. 110–118, November 1997 (online)
Gray 1985
Gray, “Why Do Computers Stop and What Can Be Done About It?,” Technical Report 85.7, Tandem Computers, June 1985
Hovemeyer and Pugh 2004
Hovemeyer and Pugh, “Finding Bugs is Easy,” Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '04), pp. 132–136, October 2004 (slides)
IEEE 1990
IEEE, “IEEE Standard Glossary of Software Engineering Terminology,” IEEE Std 610.12-1990, December 1990
Jones 1996
Jones, “Software defect-removal efficiency”, Computer, Vol. 29, No. 4, pp. 94–95, April 1996
Leveson and Turner 1993
Leveson and Turner, “An Investigation of the Therac-25 Accidents,” Computer, Vol. 26, No. 7, pp. 18–41, July 1993
Leveson 2017
Leveson, “The Therac-25: 30 Years Later,” Computer, Vol. 50, No. 11, pp. 8–11, November 2017
Nelson 1990
Nelson, “Fault-Tolerant Computing: Fundamental Concepts,” Computer, Vol. 23, No. 7, pp. 19– 25, July 1990
Nuseibeh 1997
Nuseibeh, Bashar, “Ariane 5: Who Dunnit?,” IEEE Software , Vol. 14, No. 3, pp. 15–16, May / June 1997
O’Sullivan 2009
Bryan O’Sullivan, “Making Sense of Revision-Control Systems,” Communications of the ACM, Vol. 52, No. 9, pp. 56-62, September 2009
Rani and Kumar 2015
Rani and Kumar, “A Seniment Analysis System to Improve Teaching and Learning,” Computer, Vol. 50, No. 5, pp. 36–43, May 2017
Reason 1990
Reason, “The contribution of latent human failures to the breakdown of complex systems,” Philosophical Transactions of the Royal Society B, Vol. 327, No. 1241, Royal Society, pp. 475–484, April 1990
Rogers 2009
Rogers, “Software Fault Tolerance,” Ada User Journal, Vol. 30, No. 2, June 2009
Sadowski et al. 2018
Sadowski, Aftandilian, Eagle, Miller-Cushon, and Jaspan, “Lessons from Building Static Analysis Tools at Google,” Communications of the ACM, Vol. 61, No. 4, pp. 58–66, April 2018 (online)
Somers 2017
Somers, “The Coming Software Apocalypse,” The Atlantic, 26 September 2017
Tossell et al. 2015
Chad C. Tossell, Philip Kortum, Clayton Shepard, Ahmad Rahmati, and Lin Zhong, “You Can Lead a Horse to Water But You Cannot Make Him Learn: Smartphone Use in Higher Education,” British Journal of Educational Technology, Vol. 46, No. 4, pp. 713–724, July 2015 (press release)
Weigers 2002
Karl E. Wiegers, “Humanizing Peer Reviews,” Software Testing & Quality Engineering, March / April 2002
Yeh 1996
Yeh, “Triple-Triple Redundant 777 Primary Flight Computer,” Proceedings of the 1996 IEEE Aerospace Applications Conference, Vol. 1, pages 293–307, February 1996
Zeller 1999
Zeller, “Yesterday, My Program Worked. Today, It Does Not. Why?,” Proceedings of the 7th European Software Engineering Conference, Springer, pp. 253–267, September 1999

Blogs

Bird 2014
Jim Bird, “Don’t waste time on Code Reviews,” Building Real Software (blog), 20 August 2014
Bugayenko 2020a
Bugayenko, “Talented Programmers Don’t Tolerate Chaos,” BLOG@CACM, 11 February 2020
Bugayenko 2020b
Bugayenko, “Clean Code Isn’t Enough; It Must Be Crystal Clear, Too,” BLOG@CACM, 12 March 2020
Cohn 2016
Mike Cohn, “A Simple Way to Run a Sprint Retrospective,” Mountain Goat Software (blog), 26 January 2016
Fink 2018
Robert Fink, “Code Review Best Practices,” Palantir (blog), 4 March 2018
Lambert 2015
John Lambert, “The Inside Story Behind MS08-067,” Microsoft TechNet (blog), 26 September 2015
Meyer 2019
Meyer, “The Shortest Possible Schedule Theorem: Yes, You Can Throw Money at Software Deadlines,” BLOG@CACM, October 2019
Nemko 2009
Nemko, “The Smartest One in the Room: Tips for you…and for dealing with you,” 2009
Spolsky 2000
Spolsky, “The Joel Test: 12 Steps to Better Code,” Joel on Software (blog), 9 August 2000
Tatham 1999
Tatham, “How to Report Bugs Effectively,” 1999

Books

Bauer 1972
Bauer, Software Engineering, Information Processing, North Holland Publishing Co., 1972
Boehm 1981
Boehm, Software Engineering Economics, Prentice Hall, 1981
Chacon and Straub 2014
Chacon and Straub, Pro Git, 2nd edition, Apress, 2014
Cockburn 2001
Cockburn, Writing Effective Use Cases, Addison-Wesley, 2001
Cohen et al. 2013
Cohen, Teleki, and Brown, “Code Review at Cisco Systems,” in Best Kept Secrets of Peer Code Review, pp. 65–89, 2013
Dijkstra 1982
Dijkstra, Selected Writings on Computing: A Personal Perspective, Springer, 1982
Eghbal 2020
Eghbal, Working in Public: The Making and Maintenance of Open Source Software, Stripe Press, 2020
Erl et al. 2013
Erl, Mahmood, and Puttini, Cloud Computing: Concepts, Technology & Architecture, Pearson, 2013 (O’Reilly Learning)
Fowler et al. 1999
Fowler, Beck, Brant, Opdyke, and Roberts, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
Fowler 2004
Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edition, Addison-Wesley Professional, 2004 (O’Reilly Learning)
Gamma et al. 1995
Gamma, Helm, Johnson, and Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 (O’Reilly Learning)
Hartz et al. 1996
Hartz, Walker, and Mahar, Introduction to Software Reliability: A State of the Art Review, Reliability Analysis Center, 1996
Jackson 1975
Jackson, Principles of Program Design, Academic Press, 1975
Kernighan and Plauger 1978
Kernighan and Plauger, The Elements of Programming Style, McGraw-Hill, 1978
Kossiakoff and Sweet 2011
Kossiakoff and Sweet, Systems Engineering: Principles and Practice, 2nd edition, John Wiley & Sons, Inc., 2011
Leveson 1995
Leveson, Safeware: System Safety and Computers, Addison-Wesley Professional, 1995
Pfleeger and Atlee 2006
Pfleeger and Atlee, Software Engineering: Theory and Practice, 3rd edition, Pearson Prentice Hall, 2006
Rogers et al. 2011
Rogers, Preece, and Sharp, Interaction Design: Beyond Human-Computer Interaction, 3rd edition, John Wiley & Sons, Ltd., 2011 (O’Reilly Learning)
Sommerville 2016
Sommerville, Software Engineering, 10th edition, Pearson, 2016
Spolsky 2001
Spolsky, User Interface Design For Programmers, 2001
Whittaker 2009
Whittaker, Exploratory Software Testing, Addison-Wesley, 2009

Standards

IEEE 1044-2009
IEEE, “IEEE Standard Classification for Software Anomalies,” IEEE Std 1044-2009, pp. 1–23, January 2010