1.A Pragmatic Philosophy Topic 1.It's Your Life Topic 2.The Cat Ate My Source Code Topic 3.Software Entropy Topic 4.Stone Soup and Boiled Frogs Topic 5.Good-Enough Software Topic 6.Your Knowledge Portfolio Topic 7.Communicate! 2.A Pragmatic Approach Topic 8.The Essence of Good Design Topic 9.DRY--The Evils of Duplication Topic 10.Orthogonality Topic 11.Reversibility Topic 12.Tracer Bullets Topic 13.Prototypes and Post-it Notes Topic 14.Domain Languages Topic 15.Estimating 3.The Basic Tools Topic 16.The Power of Plain Text Topic 17.Shell Games Topic 18.Power Editing Topic 19.Version Control Topic 20.Debugging Topic 21.Text Manipulation Topic 22.Engineering Daybooks 4.Pragmatic Paranoia Topic 23.Design by Contract Topic 24.Dead Programs Tell No Lies Topic 25.Assertive Programming Topic 26.How to Balance Resources Topic 27.Don't Outrun Your Headlights 5.Bend, or Break Topic 28.Deeoupling Topic 29.Juggling the Real World Topic 30.Transforming Programming Topic 31.Inheritance Tax Topic 32.Configuration 6.Concurrency Topic 33.Breaking Temporal Coupling Topic 34.Shared State Is Incorrect State Topic 35.Actors and Processes Topic 36.Blackboards 7.While You Are Coding Topic 37.Listen to Your Lizard Brain Topic 38.Programming by Coincidence Topic 39.Algorithm Speed Topic 40.Refactoring Topic 41.Test to Code Topic 42.Property-Based Testing Topic 43.Stay Safe Out There
Topic 44.Naming Things 8.Before the Project Topic 45.The Requirements Pit Topic 46.Solving Impossible Puzzles Topic 47.Working Together Topic 48.The Essence of Agility 9.Pragmatic Projects Topic 49.Pragmatic Teams Topic 50.Coconuts Don't Cut It Topic 51.Pragmatic Starter Kit Topic 52.Delight Your Users Topic 53.Pride and Prejudice Postface Bibliography Possible Answers to the Exercises Index