Kent's bibliography - GradedJestRisk/method-training GitHub Wiki
Extracted from Kent Beck's book eXtreme Programming, Embrace change
Sue Bender, Plain and Simple: A Woman's Journey to the Amish , HarperCollins, 1989; ISBN 0062501860.
More is not better. Less may not be better, either.
Leonard Coren, Wabi-Sabi: For Artists, Designers, Poets, and Philosophers , Stone Bridge Press, 1994; ISBN 1880656124.
XP does not aim for some kind of transcendental perfection in its programs. Wabi-sabi is an aesthetic celebration of the rough and functional.
Richard Coyne, Designing Information Technology in the Postmodern Age: From Method to Metaphor, MIT Press, 1995; ISBN 0262032287. Discusses the differences between modernist and postmodernist thought, a theme that plays throughout XP. There is also an excellent discussion of the importance of metaphors.
Philip B. Crosby, Quality Is Free: The Art of Making Quality Certain, Mentor Books, 1992; ISBN 0451625854. Breaks out of the zero-sum model of the four variables—time, scope, cost, and quality. You can't get software out the door faster by lowering quality. Instead, you get software out the door faster by raising quality.
George Lakoff and Mark Johnson, Philosophy in the Flesh: The Embodied Mind and Its Challenge to Western Thought, Basic Books, 1998; ISBN 0465056733. More good discussion of metaphors and thinking. Also, the description of how metaphors blend together to form wholly new metaphors is like what is happening in software engineering thought. The old metaphors drawn from civil engineering, mathematics, and so on are slowly becoming a uniquely software engineering metaphor.
Bill Mollison and Rena Mia Slay, Introduction to Permaculture, Ten Speed Press, 1997; ISBN 0908228082. High-intensity use in the Western world has generally been associated with exploitation and exhaustion. Permaculture is a discipline of farming that aims for sustainable high-intensity use through the synergistic effects of simple practices. Of particular interest is the idea that most growth occurs at the interactions between areas. Permaculture maximizes interactions with spirals of interplantings and lakes with wildly irregular edges. XP maximizes interactions with on-site customers and pair programming.
Christopher Alexander, Notes on the Synthesis of Form, Harvard University Press, 1970; ISBN 0674627512. Alexander started by thinking about design as decisions resolving conflicting constraints, leading to further decisions to resolve the remaining constraints.
Christopher Alexander, The Timeless Way of Building, Oxford University Press, 1979; ISBN 0195024028. The relationship described between designers/builders and the users of buildings is much the same as the relationship between the programmers and the customer.
Cynthia Heimel, Sex Tips for Girls, Simon & Schuster, 1983; ISBN 0671477250. Genuine enthusiasm is the ultimate technique. With it, everything else falls in place. Without it, forget it.
The Princess Bride, Rob Reiner, director, MGM/UA Studios, 1987. "We'll never make it out alive." "Nonsense. You're just saying that because no one ever has."
Field Marshal Irwin Rommel, Attacks: Rommel, Athena, 1979; ISBN 0960273603. Entertaining examples of proceeding under apparently hopeless circumstances.
Frank Thomas and Ollie Johnston, Disney Animation: The Illusion of Life, Hyperion, 1995; ISBN 0786860707. Describes how the team structure at Disney evolved over the years to deal with changing business and technology. There are also lots of good tips for user interface designers and some really cool pictures.
Christopher Alexander, Sara Ishikawa, and Murray Silverstein, A Pattern Language, Oxford University Press, 1977; ISBN 0195019199. An example of a system of rules intended to produce emergent properties. We can argue about whether the rules are successful or not, but the rules themselves make interesting reading. Also, an excellent if too-brief discussion of the design of workspaces.
James Gleick, Chaos: Making a New Science, Penguin USA, 1988; ISBN 0140092501. A gentle introduction to chaos theory.
Stuart Kauffman, At Home in the Universe: The Search for Laws of Self-Organization and Complexity, Oxford University Press, 1996; ISBN 0195111303. A slightly less gentle introduction to chaos theory.
Roger Lewin, Complexity: Life at the Edge of Chaos, Collier Books, 1994; ISBN 0020147953. Yet more chaos theory.
Margaret Wheatley, Leadership and the New Science, Berrett-Koehler Pub, 1994; ISBN 1881052443. Answers the question, "What if we took the theory of self-organizing systems as a metaphor for management?"
Gerald Weinberg, Quality Software Management: Volume 1, Systems Thinking, Dorset House, 1991; ISBN 0932633226. A system and notation for thinking about systems of interacting actions.
Norbert Weiner, Cybernetics, MIT Press, 1961; ISBN 1114239089. A much deeper, if more difficult, introduction to systems.
Warren Witherell and Doug Evrard, The Athletic Skier, Johnson Books, 1993; ISBN 1555661173. A system of interrelated rules for skiing. The source of the 20–80 rule.
Tom DeMarco and Timothy Lister, Peopleware, Dorset House, 1999; ISBN 0932633439. Following The Psychology of Computer Programming, this book expanded the practical dialog about programs as written by people, and in particular as written by teams of people. This book was my source for the principle of "accepted responsibility."
Carlo d'Este, Fatal Decision: Anzio and the Battle for Rome, HarperCollins, 1991; ISBN 006092148X. What happens when ego gets in the way of clear thinking.
Robert Kanigel, The One Best Way: Frederick Winslow Taylor and the Enigma of Efficiency, Penguin, 1999; ISBN 0140260803. A biography of Taylor that puts his work into a context that helps show the limits of his thinking.
Gary Klein, Sources of Power, MIT Press, 1999; ISBN 0262611465. A simple, readable text on how experienced people actually make decisions in difficult situations.
Thomas Kuhn, The Structure of Scientific Revolutions, University of Chicago Press, 1996; ISBN 0226458083. XP comes as a paradigm shift for some folks. Paradigm shifts have predictable effects. Here are some of them.
Scott McCloud, Understanding Comics, Harper Perennial, 1994; ISBN 006097625X. The last couple of chapters talk about why people write comics. This made me think about why I write programs. There is also good material about the connection between the craft of comics and the art of comics, with parallels to the craft of writing programs (testing, refactoring) and the art of writing programs. There is also good material for user-interface designers about communicating with the spaces between things, and packing information into small spaces without clutter.
Geoffrey A. Moore, Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers, HarperBusiness, 1999; ISBN 0066620023. Paradigm shifts from a business perspective. Different people will be prepared to adopt XP at different stages of its evolution. Some of the barriers are predictable, and have simple strategies to address them.
Frederick Winslow Taylor, The Principles of Scientific Management, 2nd ed. Institute of Industrial Engineers, 1998 (1st ed. 1911); ISBN 0898061822. This is the book that spawned "Taylorism." Specialization and strict divide-and- conquer served to produce more cars cheaper. My experience is that these principles make no sense as strategies for software development, no business sense, and no human sense.
Barbara Tuchman, Practicing History, Ballantine Books, 1991; ISBN 0345303636. A thoughtful historian thinks about how she does history. Like Understanding Comics, this book is good for reflecting on why you do what you do.
Colin M. Turnbull, The Forest People: A Study of the Pygmies of the Congo, Simon & Schuster, 1961; ISBN 0671640992. A society with plentiful resources. My dream is that it is possible to create this feeling within a team.
Colin M. Turnbull, The Mountain People, Simon & Schuster, 1972; ISBN 0671640984. A society with scarce resources. Aptly describes several projects I've been on. I don't ever want to live that way again.
Mary Walton and W. Edwards Deming, The Deming Management Method, Perigee, 1988; ISBN 0399550011. Deming explicitly addresses fear as a barrier to performance. Everyone focuses in on the statistical quality-control methods, but there is much here about human emotion and its effects.
Gerald Weinberg, Quality Software Management: Volume 4, Congruent Action, Dorset House, 1994; ISBN 0932633285. When you say one thing and do another, bad things happen. This book talks about how to be congruent yourself, how to recognize incongruence in others, and what to do about it.
Gerald Weinberg, The Psychology of Computer Programming, Dorset House, 1998; ISBN 0932633420. Programs are written by people. A mazing, isn't it? Amazing how many folks still don't get it ....
Gerald Weinberg, The Secrets of Consulting, Dorset House, 1986; ISBN 0932633013. Strategies for introducing change. Useful for coaches.
Fred Brooks, The Mythical Man-Month, Addison-Wesley, 1995; ISBN 0201835959. Stories to get you thinking about the four variables. The anniversary edition also has an interesting dialog around the famous "No Silver Bullet" article.
Brad Cox and Andy Novobilski, Object-Oriented Programming—An Evolutionary Approach, Addison-Wesley, 1991; ISBN 0201548348. The origins of the electrical engineering paradigm of software development.
Ward Cunningham, "Episodes: A Pattern Language of Competitive Development," in Pattern Languages of Program Design 2, John Vlissides, ed., Addison-Wesley, 1996; ISBN 0201895277 (also http://c2.com/ppr/episodes.html). Many of the ideas in XP first found expression in Episodes.
Tom DeMarco, Controlling Software Projects, Yourdon Press, 1982; ISBN 0131717111. Excellent examples of creating and using feedback to measure software projects.
Tom Gilb, Principles of Software Engineering Management, Addison-Wesley, 1988; ISBN 0201192462. A strong case for evolutionary delivery—small releases, constant refactoring, intense dialog with the customer.
Ivar Jacobson, Object-Oriented Software Engineering: A Case Driven Approach, Addison-Wesley, 1992; ISBN 0201544350. My source for driving development from stories (use cases).
Ivar Jacobson, Grady Booch, James Rumbaugh, The Unified Software Development Process, Addison Wesley Longman, 1999; ISBN 0201571692.Philosophically, there is much I agree with in this book—short iterations, an emphasis on metaphor, and using stories to drive development.
Philip Metzger, Managing a Programming Project, Prentice-Hall, 1973; ISBN 0135507561. The earliest programming project management text I've been able to find. There are nuggets here, but the perspective is pure Taylorism. And out of 200 pages, he spends exactly two paragraphs on maintenance—the opposite of XP.
Jennifer Stapleton, DSDM Dynamic Systems Development Method: The Method in Practice, Addison-Wesley, 1997; ISBN 0201178893. DSDM is one perspective on bringing rapid application development under control without giving up its benefits.
Hirotaka Takeuchi and Ikujiro Nonaka, "The new product development game," Harvard Business Review [1986], 86116:137–146. A consensus-oriented approach to evolutionary delivery. There are interesting ideas here for scaling XP up to more programmers.
Jane Wood and Denise Silver, Joint Application Development, 2 ed, John Wiley and Sons, 1995; ISBN 0471042994. JAD facilitators and XP coaches share a common value system—facilitate without directing, give power to people who know best how to make a decision, and eventually fade away. JAD is focused on creating a requirements document that the developers and customers agree can and should be implemented.
Kent Beck, Smalltalk Best Practice Patterns, Prentice-Hall, 1996; ISBN 013476904X. Modesty forbids.
Kent Beck and Erich Gamma, "Test Infected: Programmers Love Writing Tests," in Java Report, July 1998, volume 3, number 7, pp. 37–50. Writing automated tests with JUnit, the Java version of the xUnit testing framework.
Jon Bentley, Writing Efficient Programs, Prentice-Hall, 1982; ISBN 013970251-2. Cures for the "it ain't gonna be fast enough" blues.
Edward Dijkstra, A Discipline of Programming, Prentice-Hall, 1976; ISBN 013215871X. Programming-as-mathematics. I was particularly inspired by the emphasis on the search for beauty through programming.
Martin Fowler, Analysis Patterns, Addison Wesley Longman, 1996; ISBN 0201895420. A common vocabulary for making analysis decisions. More difficult to absorb than the design patterns, but in many ways deeper, since analysis patterns connect to what is going on in the business.
Martin Fowler, ed., Refactoring: Improving the Design of Existing Code, Addison Wesley Longman, 1999; ISBN 0201485672. The reference for refactoring. Get it. Study it. Use it.
Erich Gamma, Richard Helms, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995; ISBN 0201633612. A common vocabulary for making design decisions.
Donald E. Knuth, Literate Programming, Stanford University, 1992; ISBN 0937073814. A communication-oriented programming method. Maintaining literate programs is a pain, violating the principle that we should travel light. Still, every programmer should write a literate program from time to time, just to remind them of how much there is to communicate.
Steve McConnell, Code Complete: A Practical Handbook of Software Construction, Microsoft Press, 1993; ISBN 1556154844. A study in how much care you can profitably put into coding.
Bertrand Meyer, Object-Oriented Software Construction, Prentice-Hall, 1997; ISBN 0136291554. Design by contract is an alternative or extension to unit testing.
Barry Boehm, Software Engineering Economics, Prentice-Hall, 1981; ISBN 0138221227. The standard reference on thinking about how much software costs and why.Larry Gonick and Mark Wheelis, The Cartoon Guide to Genetics, HarperPerennial Library, 1991; ISBN 0062730991. A demonstration of the power of drawings as a communication medium.
John Hull, Options, Futures, and Other Derivatives, Prentice-Hall, 1997; ISBN 0132643677. The standard reference on options pricing.
Edward Tufte, The Visual Display of Quantitative Information, Graphics Press, 1992; ISBN 096139210X. More techniques for communicating numerical information through pictures. Good for understanding how best to present graphs of metrics, for example. Plus, the book is beautifully published.