Reading a wide range of books around a topic adds to the richness of my understanding. Here are a few suggestions for interesting reading on ideas related to XP.
[biblio01div01entry01] Plain and Simple: A Woman's Journey to the Amish, HarperCollins, <year>1989</year>; ISBN 0062501860. Examines the value of simplicity and clarity.
,[biblio01div01entry02] Wabi-Sabi: For Artists, Designers, Poets, and Philosophers, Stone Bridge Press, <year>1994</year>; ISBN 1880656124. Wabi-sabi is an aesthetic celebration of the rough and functional.
,[biblio01div01entry03] Designing Information Technology in the Postmodern Age: From Method to Metaphor, MIT Press, <year>1995</year>; ISBN 0262032287. Discusses the differences between modernist and postmodernist thought including an excellent discussion of the importance of metaphors.
,[biblio01div01entry04] Quality Is Free: The Art of Making Quality Certain, Mentor Books, <year>1992</year>; 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.
,[biblio01div01entry05] Philosophy in the Flesh: The Embodied Mind and Its Challenge to Western Thought, Basic Books, <year>1998</year>; ISBN 0465056733. More good discussion of metaphors and thinking. Also, the description of how metaphors blend together. The old software metaphors drawn from civil engineering, mathematics, and so on are slowly morphing into uniquely software engineering metaphors.
and ,[biblio01div01entry06] Introduction to Permaculture, Ten Speed Press, <year>1997</year>; ISBN 0908228082. High-intensity use in the Western world has generally been associated with exploitation and exhaustion. Permaculture is a thoughtful discipline of farming that aims for sustainable high-intensity use of the land through the synergistic effects of simple practices. This has some parallelism to XP. For example, most growth occurs at the interactions between elements. Permaculture maximizes interactions with spirals of interplantings and lakes with wildly irregular edges. XP maximizes interactions with on-site customers and pair programming.
and ,[biblio01div02entry01] Notes on the Synthesis of Form, Harvard University Press, <year>1970</year>; ISBN 0674627512. Alexander started by thinking about design as decisions resolving conflicting constraints, leading to further decisions to resolve the remaining constraints.
,[biblio01div02entry02] The Timeless Way of Building, Oxford University Press, <year>1979</year>; ISBN 0195024028. Outlines Christopher Alexander's view of architecture and construction. The relationship described between designers/builders and the users of buildings is much the same as the relationship between the programmers and the customer.
,[biblio01div02entry03] Brunelleschi's Dome: How a Renaissance Genius Reinvented Architecture, Penguin Books, <year>2001</year>; ISBN 0142000159. Extreme architecture and construction. Brunelleschi refused to be intimidated by problems, a great example of the principle of opportunity.
,[biblio01div02entry04] Attacks: Rommel, Athena, <year>1979</year>; ISBN 0960273603. Examples of proceeding in apparently hopeless circumstances.
,[biblio01div02entry05] The Pragmatic Programmer, Addison-Wesley, <year>1999</year>; ISBN 020161622X. Dave and Andy couple technical skill with an attitude that I call extreme.
and ,[biblio01div02entry06] Disney Animation: The Illusion of Life, Hyperion, <year>1995</year>; 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.
and ,[biblio01div03entry01] A Pattern Language, Oxford University Press, <year>1977</year>; 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.
and ,[biblio01div03entry02] Chaos: Making a New Science, Penguin USA, <year>1988</year>; ISBN 0140092501. A gentle introduction to chaos theory.
,[biblio01div03entry03] At Home in the Universe: The Search for Laws of Self-Organization and Complexity, Oxford University Press, <year>1996</year>; ISBN 0195111303. A slightly less gentle introduction to chaos theory.
,[biblio01div04entry01] Linked: How Everything Is Connected to Everything Else and What It Means, Plume Books, <year>2003</year>; ISBN 0452284392. Many of the networks in programming, social and technical, are “scale-free” as described in this book.
,[biblio01div04entry02] The Goal: A Process of Ongoing Improvement, North River Press, <year>1992</year>; ISBN 0884270610. The Theory of Constraints is a way of understanding systems and improving their throughput.
and ,[biblio01div04entry03] Quality Software Management: Volume 1, Systems Thinking, Dorset House, <year>1991</year>; ISBN 0932633226. A system and notation for thinking about systems of interacting elements.
,[biblio01div05entry01] Peopleware, Dorset House, <year>1999</year>; 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.”
and ,[biblio01div05entry02] Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency, Broadway, <year>2002</year>; ISBN 0767907698. Applying the concept of margins to software development.
,[biblio01div05entry03] Fatal Decision: Anzio and the Battle for Rome, Harper-Collins, <year>1991</year>; ISBN 006092148X. An example of ego getting in the way of clear thinking.
,[biblio01div05entry04] The One Best Way: Frederick Winslow Taylor and the Enigma of Efficiency, Penguin, <year>1999</year>; ISBN 0140260803. A biography of Taylor that puts his work into a context that helps show the limits of his thinking.
,[biblio01div05entry05] Sources of Power, MIT Press, <year>1999</year>; ISBN 0262611465. A simple, readable text on how experienced people make decisions in difficult situations.
,[biblio01div05entry06] Punished By Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes, Mariner Books, <year>1999</year>; ISBN 0618001816. This book shook my illusion that I could control other people by giving them just the right kind of reward.
,[biblio01div05entry07] The Structure of Scientific Revolutions, University of Chicago Press, <year>1996</year>; ISBN 0226458083. How paradigms become the dominant paradigm. Paradigm shifts have predictable effects.
,[biblio01div05entry08] The Five Dysfunctions of a Team: A Leadership Fable, Jossey-Bass, <year>2002</year>; ISBN 0787960756. An easy-to-read description of some of the things that can go wrong on teams and what you can do about it.
,[biblio01div05entry09] Understanding Comics, Harper Perennial, <year>1994</year>; 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.
,[biblio01div05entry10] Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers, HarperBusiness, <year>1999</year>; ISBN 0066620023. Paradigm shifts from a business perspective. Some of the barriers to the acceptance of new ideas are predictable and have simple strategies to address them.
,[biblio01div05entry11] Nonviolent Communication: A Language of Life: Create Your Life, Your Relationships, and Your World in Harmony with Your Values, PuddleDancer Press, <year>2003</year>; ISBN 1892005034. Nonviolent communication aims to help people separate observation from judgement, hear the deeper needs expressed and state their own needs clearly.
and ,[biblio01div05entry12] The Principles of Scientific Management, 2nd ed., Institute of Industrial Engineers, <year>1998</year> (1st ed. <year>1911</year>); ISBN 0898061822. This is the book that spawned “Taylorism.” Specialization and strict divide-and-conquer served to produce more cars cheaper. These principles make no sense as strategies for software development: no business sense and no human sense.
,[biblio01div05entry13] Practicing History, Ballantine Books, <year>1991</year>; 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.
,[biblio01div05entry14] The Forest People: A Study of the Pygmies of the Congo, Simon & Schuster, <year>1961</year>; ISBN 0671640992. A society with plentiful resources has a mentality of sufficiency, which leads to mutually beneficial relationships and abundant living.
,[biblio01div05entry15] ———, The Mountain People, Simon & Schuster, <year>1972</year>; ISBN 0671640984. A society with scarce resources. A model of scarcity leads to horrific consequences.
[biblio01div05entry16] The Deming Management Method, Perigee, <year>1988</year>; ISBN 0399550011. Deming explicitly addresses fear as a barrier to performance. Most readings of Deming focus on statistical quality-control methods, but there is much here about the effects of human emotion.
and ,[biblio01div05entry17] Quality Software Management: Volume 3, Congruent Action, Dorset House, <year>1994</year>; 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 incongruencies in others, and what to do about it.
,[biblio01div06entry01] Agile Management for Software Engineering: Applying the Theory of Constraints for Business Results, Prentice Hall <year>2004</year>; ISBN 0131424602. Application of the Theory of Constraints to software development. Each iteration removes a limitation of the system. Work that doesn't remove a limitation is waste.
,[biblio01div06entry02] Planning Extreme Programming, Addison-Wesley, <year>2000</year>; ISBN 0201710919. Technical details about the planning process in XP. Real time estimates give more accurate information and a higher level of accountability than the point system.
and ,[biblio01div06entry03] The Mythical Man-Month, Anniversary Edition, Addison-Wesley, <year>1995</year>; 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.
,[biblio01div06entry04] User Stories Applied: For Agile Software Development, Addison-Wesley, <year>2004</year>; ISBN 0321205685. How to plan and track projects feature by feature.
,[biblio01div06entry05] Object-Oriented Programming—An Evolutionary Approach, Second Edition, Addison-Wesley, <year>1991</year>; ISBN 0201548348. Expounds an electrical engineering paradigm of software development.
and ,[biblio01div06entry06] “Episodes: A Pattern Language of Competitive Development,” in Pattern Languages of Program Design 2, JohnVlissides, ed., Addison-Wesley, <year>1996</year>; ISBN 0201895277 (also http://c2.com/ppr/episodes.html). A discussion of short-cycle programming.
,[biblio01div06entry07] Controlling Software Projects, Yourdon Press, <year>1982</year>; ISBN 0131717111. Examples of creating and using feedback to measure software projects.
,[biblio01div06entry08] Waltzing with Bears: Managing Risk on Software Projects, Dorset House, <year>2003</year>; ISBN 0932633609. XP provides many opportunities for risk management, but you still have to manage the risk. This book contains many ideas for taking risks with your eyes open.
and ,[biblio01div06entry09] Principles of Software Engineering Management, Addison-Wesley, <year>1988</year>; ISBN 0201192462. A strong case for evolutionary delivery—small releases, constant refactoring, intense dialog with the customer.
,[biblio01div06entry10] Object-Oriented Software Engineering: A Case Driven Approach, Addison-Wesley, <year>1992</year>; ISBN 0201544350. My source for driving development from stories (use cases).
and ,[biblio01div06entry11] The Unified Software Development Process, Addison-Wesley, <year>1999</year>; ISBN 0201571692. UP contains short iterations, an emphasis on metaphor, and uses stories to drive development. UP is usually document-driven and has less rigorous testing procedures.
and ,[biblio01div06entry12] Managing a Programming Project, Prentice Hall, <year>1973</year>; ISBN 0135507561. The earliest programming project management text I've been able to find. There are nuggets here, but the perspective is pure Taylorism. Out of 200 pages, he spends only two paragraphs on maintenance.
,[biblio01div06entry13] “Using Extreme Programming in a Maintenance Environment,” in IEEE Software, November/December 2001, pp. 42–50. One team's results of applying XP to product maintenance: 60% reduction in cost and 66% reduction in the time to fix defects.
and ,[biblio01div06entry14] Lean Software Development, Addison-Wesley, <year>2003</year>; ISBN 0321150783. Applies the ideas of lean production and lean product development to software.
and ,[biblio01div06entry15] DSDM, Dynamic Systems Development Method: The Method in Practice, Addison-Wesley, <year>1997</year>; ISBN 0201178893. DSDM is one perspective on bringing rapid application development under control without giving up its benefits.
,[biblio01div06entry16] “The new product development game,” Harvard Business Review [1986], :137–146. A consensus-oriented approach to evolutionary delivery with implications for scaling projects.
and ,[biblio01div06entry17] Joint Application Development, 2nd edition, John Wiley and Sons, <year>1995</year>; ISBN 0471042994. JAD facilitators 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.
and ,[biblio01div07entry01] Test Driven Development: A Practical Guide, Prentice Hall, <year>2003</year>; ISBN 0131016490. A tutorial on test-driven development.
,[biblio01div07entry02] JUnit Pocket Guide, O'Reilly, <year>2004</year>; ISBN 0596007434. The JUnit testing framework and how to use it.
,[biblio01div07entry03] ———, Smalltalk Best Practice Patterns, Prentice Hall, <year>1996</year>; ISBN 013476904X. Patterns for small-scale design and communicating through your code.
[biblio01div07entry04] ———, Test-Driven Development: By Example, Addison-Wesley, <year>2002</year>; ISBN 0321146530. An introduction to test-first programming and incremental design. The best feature is the list of TDD patterns.
[biblio01div07entry05] “Test Infected: Programmers Love Writing Tests,” in Java Report, July 1998, , number 7, pp. 37–50. Writing automated tests with JUnit, the Java version of the xUnit testing framework.
and ,[biblio01div07entry06] Writing Efficient Programs, Prentice Hall, <year>1982</year>; ISBN 0139702512. Cures for the “it ain't gonna be fast enough” blues.
,[biblio01div07entry07] A Discipline of Programming, Prentice Hall, <year>1976</year>; ISBN 013215871X. Programming-as-mathematics. Dijkstra searches for beauty through programming.
,[biblio01div07entry08] Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, <year>2003</year>; ISBN 0321125215. Lays out a pragmatic road map to clearer communication between business and technical people.
,[biblio01div07entry09] “Big Ball of Mud,” Pattern Languages of Program Design 4, edited by NeilHarrison, BrianFoote, and HansRohnert, Addison-Wesley, <year>2000</year>; ISBN 0201433044. What happens when you don't invest enough in incremental design.
and ,[biblio01div07entry10] Analysis Patterns, Addison-Wesley, <year>1996</year>; ISBN 0201895420. A common vocabulary for making analysis decisions. Analysis patterns help you understand business structures that impact software development.
,[biblio01div07entry11] Refactoring: Improving the Design of Existing Code, Addison-Wesley, <year>1999</year>; ISBN 0201485672. A definitive reference for refactoring.
, ed.,[biblio01div07entry12] “Evolutionary Database Design,” January 2003, http://www.martinfowler.com/articles/evodb.html. A simple strategy for incrementally designing databases.
and ,[biblio01div07entry13] Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, <year>1995</year>; ISBN 0201633612. A common vocabulary for making design decisions.
and ,[biblio01div07entry14] Refactoring to Patterns, Addison-Wesley, <year>2004</year>; ISBN 0321213351. Bridges the gap between design patterns and refactoring. Useful for learning how to design incrementally.
,[biblio01div07entry15] Literate Programming, Stanford University, <year>1992</year>; ISBN 0937073814. A communication-oriented programming method. Literate programs, while difficult to maintain, remind us how much there is to communicate.
,[biblio01div07entry16] Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, <year>2004</year>; ISBN 0735619670. What you need to know to be a professional developer. Weighs how much care you can profitably put into coding.
,[biblio01div07entry17] Object-Oriented Software Construction, Prentice Hall, <year>1997</year>; ISBN 0136291554. Design by contract is an alternative or extension to unit testing.
,[biblio01div07entry18] “An Experimental Evaluation of Continuous Testing During Development,” in ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis (Boston, MA, USA), July 12-14, 2004, pp. 76-85. Continuous testing provides more continuous feedback while programming.
and ,[biblio01div08entry01] Software Engineering Economics, Prentice Hall, <year>1981</year>; ISBN 0138221227. The standard reference for thinking about how much software costs and why.
,[biblio01div08entry02] How Buildings Learn: What Happens After They Are Built, Penguin Books, <year>1995</year>; ISBN 0140139966. Even supposedly rigid structures undergo growth and change.
,[biblio01div08entry03] The Tipping Point: How Little Things Can Make a Big Difference, Back Bay Books, <year>2002</year>; ISBN 0316346624. How ideas catch on.
,[biblio01div08entry04] The Cartoon Guide to Genetics, HarperPerennial Library, <year>1991</year>; ISBN 0062730991. A demonstration of the power of drawings as a communication medium.
and ,[biblio01div08entry05] Options, Futures, and Other Derivatives, Prentice Hall, <year>1997</year>; ISBN 0132643677. The standard reference on options pricing.
,[biblio01div08entry06] Mapping Inner Space: Second Edition, Zephyr Press, <year>2002</year>; ISBN 1569761388. Ways to express your thoughts graphically. Enhances communication between linear and non-linear thinkers.
with ,[biblio01div08entry07] Toyota Production System: Beyond Large-Scale Production, Productivity Press, <year>1988</year>; ISBN 0915299143. Provides an interesting contrast with Principles of Scientific Management. Ohno's stirring manifesto of business accomplishment achieved with a philosophy of respect for all participants.
,[biblio01div08entry08] The Visual Display of Quantitative Information, Graphics Press, <year>1992</year>; 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.
,18.191.68.50