Appendix
Bibliography
Sources cited throughout this manual.
Books
Beck, Kent. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
Beck, Kent. Test Driven Development: By Example. Addison-Wesley, 2002.
Chase, Catherine C., Doris B. Chin, Marily A. Oppezzo, and Daniel L. Schwartz. "Teachable Agents and the Protégé Effect: Increasing the Effort Towards Learning." Journal of Science Education and Technology 18, no. 4 (2009): 334-352.
Dekker, Sidney. The Field Guide to Understanding Human Error. Ashgate Publishing, 2006.
Ericsson, Anders, and Robert Pool. Peak: Secrets from the New Science of Expertise. Houghton Mifflin Harcourt, 2016.
Freeman, Steve, and Nat Pryce. Growing Object-Oriented Software, Guided by Tests. Addison-Wesley, 2009.
Google. Site Reliability Engineering: How Google Runs Production Systems. O'Reilly Media, 2016.
Hunt, Andrew, and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley, 1999.
Locke, Edwin A., and Gary P. Latham. A Theory of Goal Setting & Task Performance. Prentice Hall, 1990.
Martin, Robert C. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008.
Metz, Sandi. Practical Object-Oriented Design in Ruby: An Agile Primer. Addison-Wesley, 2012. Second edition, 2018.
Munger, Charles T. Poor Charlie's Almanack: The Wit and Wisdom of Charles T. Munger. Walsworth Publishing, 2005.
Schön, Donald A. The Reflective Practitioner: How Professionals Think in Action. Basic Books, 1983.
Scott, Kim. Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity. St. Martin's Press, 2017.
Weinberg, Gerald M. The Psychology of Computer Programming. Van Nostrand Reinhold, 1971.
Articles & Blog Posts
Andreessen, Marc. "Why Software Is Eating the World." The Wall Street Journal, August 20, 2011.
Atwood, Jeff. "The Best Code is No Code At All." Coding Horror, May 30, 2007. https://blog.codinghorror.com/the-best-code-is-no-code-at-all/
Fowler, Martin. "Strangler Fig Application." martinfowler.com, June 29, 2004. https://martinfowler.com/bliki/StranglerFigApplication.html
Fowler, Martin. "Technical Debt Quadrant." martinfowler.com, October 14, 2009. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Metz, Sandi. "The Wrong Abstraction." sandimetz.com, January 20, 2016. https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction
Nygard, Michael. "Documenting Architecture Decisions." Cognitect Blog, November 15, 2011. https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
Papers & Academic Works
Cunningham, Ward. "The WyCash Portfolio Management System." OOPSLA '92: Addendum to the Proceedings, 1992.
Knuth, Donald E. "Structured Programming with go to Statements." ACM Computing Surveys 6, no. 4 (December 1974): 261-301.
Talks & Presentations
Hoare, Tony. "Null References: The Billion Dollar Mistake." QCon London, 2009.
Metz, Sandi. "Rules." Baruco Conference, Barcelona, 2013.
Historical Sources
Bezos, Jeff. "2015 Letter to Shareholders." Amazon.com, Inc., 2016. Introduced the "one-way door / two-way door" decision framework.
Guest, David. "The Hunt is on for the Renaissance Man of Computing." The Independent, September 17, 1991. Origin of "T-shaped skills" concept.
Newton, Isaac. Letter to Robert Hooke, February 5, 1675. "If I have seen further, it is by standing on the shoulders of giants."
Proverbs 27:17. "As iron sharpens iron, so one person sharpens another."
Toyoda, Sakichi. The Five Whys technique, developed as part of the Toyota Production System, 1930s.
Attributed Quotations
Karlton, Phil (Netscape). "There are only two hard things in Computer Science: cache invalidation and naming things." Widely quoted, exact origin undocumented.
Further Reading
For a curated reading list with commentary and recommended reading order, see The Canon.
Last updated: December 2024