Synopses & Reviews
The Art of Agile Development contains practical guidance for anyone considering or applying agile development for building valuable software. Plenty of books describe what agile development is or why it helps software projects succeed, but very few combine information for developers, managers, testers, and customers into a single package that they can apply directly.
This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience with Extreme Programming (XP). You get a gestalt view of the agile development process, including comprehensive guidance for non-technical readers and hands-on technical practices for developers and testers.
The Art of Agile Development gives you clear answers to questions such as:
- How can we adopt agile development?
- Do we really need to pair program?
- What metrics should we report?
- What if I can't get my customer to participate?
- How much documentation should we write?
- When do we design and architect?
- As a non-developer, how should I work with my agile team?
- Where is my product roadmap?
- How does QA fit in?
The book teaches you how to adopt XP practices, describes each practice in detail, then discusses principles that will allow you to modify XP and create your own agile method. In particular, this book tackles the difficult aspects of agile development: the need for cooperation and trust among team members.
Whether you're currently part of an agile team, working with an agile team, or interested in agile development, this book provides the practical tips you need to start practicing agile development. As your experience grows, the book will grow with you, providing exercises and information that will teach you first to understand the rules of agile development, break them, and ultimately abandon rules altogether as you master the art of agile development.
"Jim Shore and Shane Warden expertly explain the practices and benefits of Extreme Programming. They offer advice from their real-world experiences in leading teams. They answer questions about the practices and show contraindications - ways that a practice may be mis-applied. They offer alternatives you can try if there are impediments to applying a practice, such as the lack of an on-site customer.
--Ken Pugh, Author of Jolt Award Winner, Prefactoring
"I will leave a copy of this book with every team I visit."
--Brian Marick, Exampler Consulting
The Art of Agile Development contains practical, down-to-earth guidance for anyone involved in or considering the agile method -- and Extreme Programming in particular -- to build reliable software. Agile development methods have become increasingly popular because too many software projects have failed to meet expected release dates, deliver the required features, or to match projected costs. This book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience.
While plenty of books address the what and why of agile development, very few offer developers, managers, stakeholders and users the information they can apply directly. The Art of Agile Development provides a gestalt view of the agile development process that serves as a comprehensive introduction for non-technical readers, along with hands-on technical practices for programmers and developers. The book also tackles the people aspect of Extreme Programming.
Other books focus solely on the process; this book deals with the need for face-to-face interaction, which is the most difficult aspect of working in an agile development. You'll find clear answers to questions such as: How can we adopt agile development? Do we really need to pair program? What metrics should we report? What if I can't get my customer to participate? How much documentation should we write? When do we design and architect? As a non-developer, how should I work with my agile team? Where is my product roadmap? How does QA fit in?
Whether you are currently part of an agile team, working with an agile team, or interested in agile development you will reach for this book againand again. Author James Shore's companion web site, Successful Software, contains dozens of considered essays discussing agile development and Extreme Programming, with multiple new essays posted each month.
Many software projects fail unnecessarily because of unclear objectives, redundant and unproductive work, cost overruns, and a host of other avoidable process problems. In response, agile processes and lightweight tooling have begun to replace traditional engineering processes throughout the development lifecycle.
Agile ALM is a guide for Java developers who want to integrate flexible agile practices and lightweight tooling along all phases of the software development process. The book introduces a new vision for managing change in requirements and process more efficiently and flexibly. Readers will learn powerful practices like task-based Development, Continuous Integration, and using Scrum as an agile approach to release management.
This comprehensive set of cards is an indispensable resource for agile teams. The deck of Agile in a Flash cards teaches leadership, teamwork, clean programming, agile approaches to problem solving, and tips for coaching agile teams. Team members can use the cards as reference material, ice breakers for conversations, reminders (taped to a wall or monitor), and sources of useful tips and hard-won wisdom. The cards are:
Bite-sized! Read one practice or aspect at a time in a couple of minutes.
Smart! Each card has years of practical experience behind it.
Portable! Cards fit easily in your pocket or backpack.
An indispensable tool for any agile team, and a must-have for every agile coach or Scrum Master.
The Agile in a Flash deck is broken into four areas: planning, team, coding, and agile concepts. The front of each card is a quick list - a summary of the things you want to know and remember. The back provides further detail on each of the bullet points, and offers sage nuggets of knowledge based on extensive professional experience. Tape the cards to your wall, stick them on your monitor, and get agile fast.
For those considering Extreme Programming, this book provides no-nonsense advice on agile planning, development, delivery, and management taken from the authors' many years of experience. While plenty of books address the what and why of agile development, very few offer the information users can apply directly.
About the Author
James Shore has been leading teams in Agile development since 1999. A team member on that first project introduced him Ward Cunningham's wiki, where they were talking about a crazy idea called Extreme Programming. Despite the ridiculous name, James tried Extreme Programming on his next project and discovered that it worked far better than it sounded. James has been speaking, teaching, and writing about Agile methods ever since. Today, he continues to lead Agile teams using the best ideas from Scrum, Extreme Programming, and Lean.
James has contributed a large number of projects and ideas to the Agile community. He authored the first test-driven development framework for .NET web programming and coordinated the development of Ward Cunningham's Fit, the first major acceptance-testing tool. In 2005, the Agile Alliance recognized James with their highest honor, the Gordon Pask Award for Contributions to Agile Practice. James is a featured speaker at conferences around the world. He may be found online at jamesshore.com.
Shane Warden manages Onyx Neon Press, an independent publisher. His areas of expertise include agile software development, language design, and virtual machines for dynamic languages. He is also a published novelist. His books include The Art of Agile Development and Masterminds of Programming.
Table of Contents
Preface; For the Pragmatists; Who Should Read This Book; About the Études; About Pronouns; Using Code Examples; Safari® Enabled; How to Contact Us; Acknowledgments; Getting Started; Chapter 1: Why Agile?; 1.1 Understanding Success; 1.2 Beyond Deadlines; 1.3 The Importance of Organizational Success; 1.4 Enter Agility; Chapter 2: How to Be Agile; 2.1 Agile Methods; 2.2 Don't Make Your Own Method; 2.3 The Road to Mastery; 2.4 Find a Mentor; Chapter 3: Understanding XP; 3.1 The XP Lifecycle; 3.2 The XP Team; 3.3 XP Concepts; Chapter 4: Adopting XP; 4.1 Is XP Right for Us?; 4.2 Go!; 4.3 Assess Your Agility; Practicing XP; Chapter 5: Thinking; 5.1 Pair Programming; 5.2 Energized Work; 5.3 Informative Workspace; 5.4 Root-Cause Analysis; 5.5 Retrospectives; Chapter 6: Collaborating; 6.1 Trust; 6.2 Sit Together; 6.3 Real Customer Involvement; 6.4 Ubiquitous Language; 6.5 Stand-Up Meetings; 6.6 Coding Standards; 6.7 Iteration Demo; 6.8 Reporting; Chapter 7: Releasing; 7.1 "Done Done"; 7.2 No Bugs; 7.3 Version Control; 7.4 Ten-Minute Build; 7.5 Continuous Integration; 7.6 Collective Code Ownership; 7.7 Documentation; Chapter 8: Planning; 8.1 Vision; 8.2 Release Planning; 8.3 The Planning Game; 8.4 Risk Management; 8.5 Iteration Planning; 8.6 Slack; 8.7 Stories; 8.8 Estimating; Chapter 9: Developing; 9.1 Incremental Requirements; 9.2 Customer Tests; 9.3 Test-Driven Development; 9.4 Refactoring; 9.5 Simple Design; 9.6 Incremental Design and Architecture; 9.7 Spike Solutions; 9.8 Performance Optimization; 9.9 Exploratory Testing; Mastering Agility; Chapter 10: Values and Principles; 10.1 Commonalities; 10.2 About Values, Principles, and Practices; 10.3 Further Reading; Chapter 11: Improve the Process; 11.1 Understand Your Project; 11.2 Tune and Adapt; 11.3 Break the Rules; Chapter 12: Rely on People; 12.1 Build Effective Relationships; 12.2 Let the Right People Do the Right Things; 12.3 Build the Process for the People; Chapter 13: Eliminate Waste; 13.1 Work in Small, Reversible Steps; 13.2 Fail Fast; 13.3 Maximize Work Not Done; 13.4 Pursue Throughput; Chapter 14: Deliver Value; 14.1 Exploit Your Agility; 14.2 Only Releasable Code Has Value; 14.3 Deliver Business Results; 14.4 Deliver Frequently; Chapter 15: Seek Technical Excellence; 15.1 Software Doesn't Exist; 15.2 Design Is for Understanding; 15.3 Design Trade-offs; 15.4 Quality with a Name; 15.5 Great Design; 15.6 Universal Design Principles; 15.7 Principles in Practice; 15.8 Pursue Mastery; References; Colophon;