Tidy First?: A Personal Exercise in Empirical Software Design
Written by Kent Beck
Narrated by Stephen R. Thorne
4/5
()
About this audiobook
Instead of trying to master tidying all at once, this book lets you try out a few examples that make sense for your problem. If you have a big function containing many lines of code, you'll learn how to logically divide it into smaller chunks. Along the way, you'll learn the theory behind software design: coupling, cohesion, discounted cash flows, and optionality. This book helps you:
● Understand the basic theory of how software design works and the forces that act on it
● Explore the difference between changes to a system's behavior and changes to its structure
● Improve your programming experience by sometimes tidying first and sometimes tidying after
● Learn how to make large changes in small, safe steps
● Approach software design as an exercise in human relationships
Kent Beck
Kent Beck is a programmer, creator of Extreme Programming, pioneer of software patterns, coauthor of JUnit, rediscoverer of Test-Driven Development, and observer of 3X: Explore/Expand/Extract. Beck is also alphabetically the first signatory of the Agile Manifesto. He lives in San Francisco, California, and he is Chief Scientist at Mechanical Orchard, teaching skills to help geeks feel safe in the world. Readers can connect with or follow him via: Facebook: https://www.facebook.com/kentlbeck Twitter: https://twitter.com/KentBeck LinkedIn: https://www.linkedin.com/in/kentbeck Medium: https://medium.com/@kentbeck_7670 Website: https://www.kentbeck.com
Related to Tidy First?
Related audiobooks
The Software Engineer's Guidebook: Navigating senior, tech lead, and staff engineer positions at tech companies and startups Rating: 5 out of 5 stars5/5The Clean Coder: A Code of Conduct for Professional Programmers Rating: 5 out of 5 stars5/5Clean Architecture: A Craftsman's Guide to Software Structure and Design Rating: 5 out of 5 stars5/5Fundamentals of Software Architecture: An Engineering Approach Rating: 4 out of 5 stars4/5Cracking System Design: A Comprehensive Guide to Building Scalable and Reliable Systems Rating: 0 out of 5 stars0 ratingsClean Agile: Back to Basics Rating: 4 out of 5 stars4/5Software Engineering at Google: Lessons Learned from Programming Over Time Rating: 4 out of 5 stars4/5Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems Rating: 5 out of 5 stars5/5The Rules of Programming: How to Write Better Code Rating: 0 out of 5 stars0 ratingsSoftware Architectures for Beginners: Navigating the Building Blocks of Modern Software Design Rating: 4 out of 5 stars4/5System Design Case Studies: Collection of System Designs asked in top tech interviews Rating: 0 out of 5 stars0 ratingsLearning Agile: Understanding Scrum, XP, Lean, and Kanban Rating: 4 out of 5 stars4/5Data Structures and Algorithms for Beginners: Elevating Your Coding Skills with Data Structures and Algorithms Rating: 0 out of 5 stars0 ratingsClean Code: A Handbook of Agile Software Craftsmanship Rating: 5 out of 5 stars5/5The Art of Agile Development, 2nd Edition Rating: 5 out of 5 stars5/5Data Structures and Algorithms for Beginners: Comprehensive Guide for Beginners Rating: 0 out of 5 stars0 ratingsUser Story Mapping: Discover the Whole Story, Build the Right Product Rating: 4 out of 5 stars4/5Lean Enterprise: How High Performance Organizations Innovate at Scale Rating: 4 out of 5 stars4/5The Art of Clean Code: A Guidebook on The Art of Clean Coding and Agile Software Development Rating: 0 out of 5 stars0 ratingsLearning Systems Thinking: Essential Non-Linear Skills and Practices for Software Professionals Rating: 0 out of 5 stars0 ratingsDesign Systems Handbook Rating: 4 out of 5 stars4/5Understanding Software: Max Kanat-Alexander on simplicity, coding, and how to suck less as a programmer Rating: 5 out of 5 stars5/5Making Embedded Systems: Design Patterns for Great Software Rating: 0 out of 5 stars0 ratingsData Structures and Algorithms with Python: Unlocking the Potential of Data Through Python Rating: 0 out of 5 stars0 ratingsSoftware Development: Tools, Methodologies, and Best Practices for Building High-Quality Software Solutions Rating: 0 out of 5 stars0 ratingsMastering Complexity: A Comprehensive Guide to Big O Complexity and DSA Problem Solving Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
Clean Code: A Handbook of Agile Software Craftsmanship Rating: 5 out of 5 stars5/5Information Architecture: For the Web and Beyond Rating: 4 out of 5 stars4/5Generative AI: The Insights You Need from Harvard Business Review Rating: 4 out of 5 stars4/5Data Science from Scratch Rating: 0 out of 5 stars0 ratingsProduct Management in Practice: A Real-World Guide to the Key Connective Role of the 21st Century Rating: 4 out of 5 stars4/5Production Kubernetes: Building Successful Application Platforms Rating: 3 out of 5 stars3/5The Staff Engineer's Path: A Guide for Individual Contributors Navigating Growth and Change Rating: 4 out of 5 stars4/5Software Engineering at Google: Lessons Learned from Programming Over Time Rating: 4 out of 5 stars4/5Skill Up: A Software Developer's Guide to Life and Career Rating: 5 out of 5 stars5/5Computer Science 2.0 Beginners Crash Course - Python, Javascript, Cyber Security And Algorithms Rating: 0 out of 5 stars0 ratingsSite Reliability Engineering: How Google Runs Production Systems Rating: 5 out of 5 stars5/5Building Microservices: Designing Fine-Grained Systems Rating: 4 out of 5 stars4/5Design Systems Handbook Rating: 4 out of 5 stars4/5Founders at Work: Stories of Startups' Early Days Rating: 4 out of 5 stars4/5Agile Project Management with Scrum: A Practical Guide to Managing Projects and Product Development using Scrum Framework Rating: 0 out of 5 stars0 ratingsCoders at Work: Reflections on the Craft of Programming Rating: 4 out of 5 stars4/5The Art of Leadership: Small Things, Done Well Rating: 4 out of 5 stars4/5Letters to a New Developer: What I Wish I Had Known When Starting My Development Career Rating: 4 out of 5 stars4/5Human-Centered Design: Crafting Meaningful and User-Friendly Experiences Rating: 4 out of 5 stars4/5Building AI-Powered Products: The Essential Guide to AI and GenAI Product Management Rating: 0 out of 5 stars0 ratingsDevSecOps: Integrating Security Seamlessly Rating: 0 out of 5 stars0 ratingsAgile Product Management: Proven Strategies and Methods for Beginners Rating: 5 out of 5 stars5/5The Rules of Programming: How to Write Better Code Rating: 0 out of 5 stars0 ratingsLearning Systems Thinking: Essential Non-Linear Skills and Practices for Software Professionals Rating: 0 out of 5 stars0 ratingsSCRUM: Mastering Agile Project Management for Exceptional Results (2023 Guide for Beginners) Rating: 5 out of 5 stars5/5
Related categories
Reviews for Tidy First?
8 ratings1 review
- Rating: 4 out of 5 stars4/5
Feb 1, 2025
When a software developer is writing code, she/he is often confronted with a problem: How much work should I put into writing “the best” code versus just doing a quick but serviceable job? Kent Beck, pioneer of the influential Extreme Programming: Embrace Change, addresses this question via an in-depth look at the process of “tidying” code. His answer is usually to “tidy first”… but not always. This book seeks to identify exactly when one is in those exceptional situations.
Interestingly, Beck even explores economic reasons in his analysis – a main driver of developer effort that’s not talked about much in development books. These reasons are explored at a theoretical level that incorporates a bit of economic theory.
At times, this book can seem to be overly organizational and thus a bit dreary. That is, it categorizes situations instead of constructing a narrative. This approach became an extremely obvious limitation while I listened on an audiobook format. Perhaps a written text might avoid this pitfall somewhat more, but I suspect that even then, this shortcoming will show up in the reader’s experience.
This book’s audience is limited to those engaged in the art and practice of software design and development. The size of that audience is not huge, but it is growing. Developers can continue to learn from Kent Beck, one of the most observant, self-aware software authors in the industry. Those who desire to better themselves daily will benefit from his passion and attention to detail in this book.
