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