Annotated Bibliography

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.

Philosophy

[biblio01div01entry01] Sue Bender, Plain and Simple: A Woman's Journey to the Amish, HarperCollins, <year>1989</year>; ISBN 0062501860. Examines the value of simplicity and clarity.

[biblio01div01entry02] Leonard Coren, 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] Richard Coyne, 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] Philip B. Crosby, 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] George Lakoff and Mark Johnson, 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.

[biblio01div01entry06] Bill Mollison and Rena Mia Slay, 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.

Attitude

[biblio01div02entry01] Christopher Alexander, 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] Christopher Alexander, 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] Ross King, 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] Field Marshal Irwin Rommel, Attacks: Rommel, Athena, <year>1979</year>; ISBN 0960273603. Examples of proceeding in apparently hopeless circumstances.

[biblio01div02entry05] Dave Thomas and Andy Hunt, The Pragmatic Programmer, Addison-Wesley, <year>1999</year>; ISBN 020161622X. Dave and Andy couple technical skill with an attitude that I call extreme.

[biblio01div02entry06] Frank Thomas and Ollie Johnston, 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.

[biblio01div02entry07] Office Space, Mike Judge, director, <year>1999</year>; ASIN B000069HPL. A view of life in a cubicle.

[biblio01div02entry08] The Princess Bride, Rob Reiner, director, MGM/UA Studios, <year>1987</year>; ASIN B00005LOKQ. “We'll never make it out alive.” “Nonsense. You're just saying that because no one ever has.”

Emergent Processes

[biblio01div03entry01] Christopher Alexander, Sara Ishikawa, and Murray Silverstein, 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.

[biblio01div03entry02] James Gleick, Chaos: Making a New Science, Penguin USA, <year>1988</year>; ISBN 0140092501. A gentle introduction to chaos theory.

[biblio01div03entry03] Stuart Kauffman, 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.

[biblio01div03entry04] Roger Lewin, Complexity: Life at the Edge of Chaos, Collier Books, <year>1994</year>; ISBN 0020147953. More chaos theory.

[biblio01div03entry05] Margaret Wheatley, Leadership and the New Science, Berrett-Koehler Pub, <year>1994</year>; ISBN 1881052443. Uses self-organizing systems as a metaphor for management.

Systems

[biblio01div04entry01] Albert-Laszlo Barabasi, 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] Eliyahu Goldratt and Jeff Cox, 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.

[biblio01div04entry03] Gerald Weinberg, 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.

[biblio01div04entry04] Norbert Weiner, Cybernetics, MIT Press, <year>1961</year>; ISBN 1114239089. A deeper, more difficult introduction to systems.

[biblio01div04entry05] Warren Witherell and Doug Evrard, The Athletic Skier, Johnson Books, <year>1993</year>; ISBN 1555661173. A system of interrelated rules for skiing. The big improvements come when adopting the last few rules because being a little off balance is very different than being on balance.

People

[biblio01div05entry01] Tom DeMarco and Timothy Lister, 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.”

[biblio01div05entry02] Tom DeMarco, 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] Carlo d'Este, 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] Robert Kanigel, 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] Gary Klein, Sources of Power, MIT Press, <year>1999</year>; ISBN 0262611465. A simple, readable text on how experienced people make decisions in difficult situations.

[biblio01div05entry06] Alfie Kohn, 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] Thomas Kuhn, 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] Patrick Lencioni, 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] Scott McCloud, 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] Geoffrey A. Moore, 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] Marshall Rosenberg and Lucy Leu, 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.

[biblio01div05entry12] Frederick Winslow Taylor, 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] Barbara Tuchman, 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] Colin M. Turnbull, 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] Mary Walton and W. Edwards Deming, 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.

[biblio01div05entry17] Gerald Weinberg, 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.

[biblio01div05entry18] ———, The Psychology of Computer Programming, Dorset House, <year>1998</year>; ISBN 0932633420. First to recognize that programs are written by and for people.

[biblio01div05entry19] ———, The Secrets of Consulting, Dorset House, <year>1986</year>; ISBN 0932633013. Strategies for introducing change.

Project Management

[biblio01div06entry01] David Anderson, 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] Kent Beck and Martin Fowler, 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.

[biblio01div06entry03] Fred Brooks, 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] Mike Cohn, User Stories Applied: For Agile Software Development, Addison-Wesley, <year>2004</year>; ISBN 0321205685. How to plan and track projects feature by feature.

[biblio01div06entry05] Brad Cox and Andy Novobilski, Object-Oriented Programming—An Evolutionary Approach, Second Edition, Addison-Wesley, <year>1991</year>; ISBN 0201548348. Expounds an electrical engineering paradigm of software development.

[biblio01div06entry06] Ward Cunningham, “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] Tom DeMarco, Controlling Software Projects, Yourdon Press, <year>1982</year>; ISBN 0131717111. Examples of creating and using feedback to measure software projects.

[biblio01div06entry08] Tom DeMarco and Tim Lister, 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.

[biblio01div06entry09] Tom Gilb, 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] Ivar Jacobson, Magnus Christerson, Parik Jonsson, and Gunnar Overgaard, Object-Oriented Software Engineering: A Case Driven Approach, Addison-Wesley, <year>1992</year>; ISBN 0201544350. My source for driving development from stories (use cases).

[biblio01div06entry11] Ivar Jacobson, Grady Booch, and James Rumbaugh, 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.

[biblio01div06entry12] Philip Metzger, 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] Charles Poole and Jan Willem Huisman, “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.

[biblio01div06entry14] Mary Poppendieck and Tom Poppendieck, Lean Software Development, Addison-Wesley, <year>2003</year>; ISBN 0321150783. Applies the ideas of lean production and lean product development to software.

[biblio01div06entry15] Jennifer Stapleton, 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] Hirotaka Takeuchi and Ikujiro Nonaka, “The new product development game,” Harvard Business Review [1986], 86116:137–146. A consensus-oriented approach to evolutionary delivery with implications for scaling projects.

[biblio01div06entry17] Jane Wood and Denise Silver, 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.

Programming

[biblio01div07entry01] David Astels, Test Driven Development: A Practical Guide, Prentice Hall, <year>2003</year>; ISBN 0131016490. A tutorial on test-driven development.

[biblio01div07entry02] Kent Beck, 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] 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.

[biblio01div07entry06] Jon Bentley, Writing Efficient Programs, Prentice Hall, <year>1982</year>; ISBN 0139702512. Cures for the “it ain't gonna be fast enough” blues.

[biblio01div07entry07] Edward Dijkstra, A Discipline of Programming, Prentice Hall, <year>1976</year>; ISBN 013215871X. Programming-as-mathematics. Dijkstra searches for beauty through programming.

[biblio01div07entry08] Eric Evans, 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] Brian Foote and Joe Yoder, “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.

[biblio01div07entry10] Martin Fowler, 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] Martin Fowler, ed., Refactoring: Improving the Design of Existing Code, Addison-Wesley, <year>1999</year>; ISBN 0201485672. A definitive reference for refactoring.

[biblio01div07entry12] Martin Fowler and Pramod Sadalage, “Evolutionary Database Design,” January 2003, http://www.martinfowler.com/articles/evodb.html. A simple strategy for incrementally designing databases.

[biblio01div07entry13] Erich Gamma, Richard Helms, Ralph Johnson, and John M. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, <year>1995</year>; ISBN 0201633612. A common vocabulary for making design decisions.

[biblio01div07entry14] Joshua Kerievsky, 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] Donald E. Knuth, 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] Steve McConnell, 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] Bertrand Meyer, Object-Oriented Software Construction, Prentice Hall, <year>1997</year>; ISBN 0136291554. Design by contract is an alternative or extension to unit testing.

[biblio01div07entry18] David Saff and Michael D. Ernst, “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.

Other

[biblio01div08entry01] Barry Boehm, Software Engineering Economics, Prentice Hall, <year>1981</year>; ISBN 0138221227. The standard reference for thinking about how much software costs and why.

[biblio01div08entry02] Stewart Brand, 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] Malcolm Gladwell, The Tipping Point: How Little Things Can Make a Big Difference, Back Bay Books, <year>2002</year>; ISBN 0316346624. How ideas catch on.

[biblio01div08entry04] Larry Gonick and Mark Wheelis, The Cartoon Guide to Genetics, HarperPerennial Library, <year>1991</year>; ISBN 0062730991. A demonstration of the power of drawings as a communication medium.

[biblio01div08entry05] John Hull, Options, Futures, and Other Derivatives, Prentice Hall, <year>1997</year>; ISBN 0132643677. The standard reference on options pricing.

[biblio01div08entry06] Nancy Margulies with Nusa Mall, 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.

[biblio01div08entry07] Taiichi Ohno, 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] Edward Tufte, 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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.68.50