In the market there are many more books on Agile Development. But which ones are really the best of the best? So we are making simpler for you, with the help of our Software Testing Class team member we have picked top 20 best Agile Development books. There were a lot of great books to choose from.
By studying these agile books, you will learn to apply the key ideas in agile software development, the details and comparison of four influential iterative methods (Scrum, Extreme Programming, Evo, and the Unified Process), answers to frequently asked questions, and important related management skills. The agile book’s goal is quality information that can be quickly understood and applied.
1: Agile Estimating and Planning
by Mike Cohn
Traditional, deterministic approaches to planning and estimating simply don’t cut it on the slippery slopes of today’s dynamic, change-driven projects. Mike Cohn’s breakthrough book gives us not only the philosophy, but also the guidelines and a proven set of tools that we need to succeed in planning, estimating, and scheduling projects with a high uncertainty factor. At the same time, the author never loses sight of the need to deliver business value to the customer each step of the way.
Accountability. Transparency. Responsibility. These are not words that are often applied to agile software development. In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.
The first edition of Extreme Programming Explained is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years.
3: Agile Software Development: Principles, Patterns and Practices
by Robert C. Martin
Written by a software developer for software developers, this book is a unique collection of the latest agile software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application—from the early stages of analysis, through the low-level design and into the implementation.
Walks readers through the designer’s thoughts — showing the errors, blind alleys, and creative insights that occur throughout the software design process.
The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile Methodology can be used.
4: Refactoring: Improving the Design of Existing Code
by Martin Fowler
Re-factoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With re-factoring you can even take a bad design and rework it into a good one. This Agile Development Books offers a thorough discussion of the principles of re-factoring including where to spot opportunities for re-factoring and how to set up the required tests. There is also a catalog of more than 40 proven re-factoring with details as to when and why to use the re-factoring step by step instructions for implementing it, and an example illustrating how it works The book is written using Java as its principle language, but the ideas are applicable to any OO language.
5: The Art of Agile Development
by James Shore, Shane Warden
- 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?
6: Agile and Iterative Development: A Manager’s Guide
by Craig Larman
Agile and iterative methods have emerged as the most popular approaches to software development, and with good reason. Research (examined and cited in detail within this Agile development book) shows that iterative methods reduce the risk of failure, compared to traditional models of development. This book is an efficient introduction for both managers and practitioners that need a distilled and carefully organized learning aid for the hands-on practices from planning to requirements to testing and the values that define these methods. The author also provides evidence of the value of switching to agile and iterative methods.
7: Agile Software Development: The Cooperative Game (2nd Edition)
by Alistair Cockburn
The agile methodology of software development has taken the world by storm. Now, in Agile Software Development, Second Edition, one of agile’s leading pioneers updates his Jolt Productivity award-winning agile book to reflect all that’s been learned about agile development since its original introduction.
Alistair Cockburn begins by updating his powerful model of software development as a “cooperative game of invention and communication.” Among the new ideas he introduces: harnessing competition without damaging collaboration; learning lessons from lean manufacturing; and balancing strategies for communication. Cockburn also explains how the cooperative game is played in business and on engineering projects, not just software development
8: Agile Retrospectives: Making Good Teams Great
by Esther Derby
See how to mine the experience of your software development team continually throughout the life of the project. The tools and recipes in this Agile Development Books will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult “people” issues on your team.
Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as “post-mortems”) are only helpful at the end of the project–too late to help. You need agile retrospectives that are iterative and incremental. You need to accurately find and fix problems to help the team today.
9: Test Driven Development: By Example
by Kent Beck
Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscience that tells programmers to “be careful!”), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually!
10: Agile Project Management: Creating Innovative Products
by Jim Highsmith
Best practices for managing projects in agile environments—now updated with new techniques for larger projects
Today, the pace of project management moves faster. Project management needs to become more flexible and far more responsive to customers. Using Agile Project Management (APM), project managers can achieve all these goals without compromising value, quality, or business discipline. In Agile Project Management, Second Edition, renowned agile pioneer Jim Highsmith thoroughly updates his classic guide to APM, extending and refining it to support even the largest projects and organizations.
11: Agile Software Development with Scrum
by Ken Schwaber, Mike Beedle
eXtreme Programming is an ideal many software shops would love to reach, but with the constant pressures to produce software quickly, they cannot actually implement it. The Agile software process allows a company to implement eXtreme Programming quickly and immediately-and to begin producing software incrementally in as little as 30 days! Implementing eXtreme Programming is easier said than done. The process can be time consuming and actually slow down current software projects that are in process. This Agile Development Books shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software. Using SCRUM and the Agile process can virtually eliminate all downtime during an XP implementation.
12: Agile Project Management with Scrum
by Ken Schwaber
Gain the foundation in Scrum theory—and practice—you need to:
- Rein in even the most complex, unwieldy projects
- Effectively manage unknown or changing product requirements
- Simplify the chain of command with self-managing development teams
- Receive clearer specifications—and feedback—from customers
- Greatly reduce project planning time and required tools
- Build—and release—products in 30-day cycles so clients get deliverables earlier
- Avoid missteps by regularly inspecting, reporting on, and fine-tuning projects
- Support multiple teams working on a large-scale project from many geographic locations
- Maximize return on investment!
13: The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt, David Thomas
What others in the trenches say about The Pragmatic Programmer…”The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.”
14: Lean Software Development: An Agile Toolkit
by Mary Poppendieck, Tom Poppendieck
Lean Software Development shows software professionals how to achieve breakthrough quality, savings, speed, and business value by adapting the seven “lean” principles that have already revolutionized manufacturing and R&D. Drawing on 25+ years’ experience leading enterprise projects, the authors show how to use these principles to create agile processes that work – because they’re optimized for your environment.
15: Crystal Clear: A Human-Powered Methodology for Small Teams
by Alistair Cockburn
This book introduces Crystal Clear, a better lightweight methodology for building software. It describes the roles, teams, values, intentions, habits, activities, policies and work products of a small software development team for whom time-to-market and development costs are critical considerations. Alistair Cockburn is one of the founders of the Agile software development movement. He spells out proven best practices based on his extensive experience helping organizations build software quickly and with less cost. The author understands that small teams cannot be burdened by “process-heavy” software methodologies.
16: Practices of an Agile Developer: Working in the Real World
by Venkat Subramaniam, Andy Hunt
This book will help you improve five areas of your career:
- The Development Process
- What to Do While Coding
- Developer Attitudes
- Project and Team Management
- Iterative and Incremental Learning
For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.
18: Extreme Programming Installed
by Ron Jeffries
Extreme Programming (XP) is a revolutionary lightweight methodology that’s supercharging software development in organizations worldwide. Perfect for small teams producing software with fast-changing requirements, XP can save time and money while dramatically improving quality. In XP Installed, three participants in DaimlerChrysler’s breakthrough XP project cover every key practice associated with XP implementation. The book consists of a connected collection of essays, presented in the order the practices would actually be implemented during a project. Ideal as both a start-to-finish tutorial and quick reference, the book demonstrates exactly how XP can promote better communication, quality, control, and predictability.
The concept of user stories has its roots as one of the main tenets of Extreme Programming. In simple terms, user stories represent an effective means of gathering requirements from the customer (roughly akin to use cases). This book describes user stories and demonstrates how they can be used to properly plan, manage, and test software development projects. The book highlights both successful and unsuccessful implementations of the concept, and provides sets of questions and exercises that drive home its main points. After absorbing the lessons in this book, readers will be able to introduce user stories in their organizations as an effective means of determining precisely what is required of a software application.
20: Manage It!: Your Guide to Modern, Pragmatic Project Management
by Johanna Rothman
This book is a reality-based guide for modern projects. You’ll learn how to recognize your project’s potholes and ruts, and determine the best way to fix problems – without causing more problems.
Your project can’t fail. That’s a lot of pressure on you, and yet you don’t want to buy into any one specific process, methodology, or lifecycle.
Your project is different. It doesn’t fit into those neat descriptions.
Manage It! will show you how to beg, borrow, and steal from the best methodologies to fit your particular project. It will help you find what works best for you and not for some mythological project that doesn’t even exist.
Before you know it, your project will be on track and headed to a successful conclusion.
Which of these choices of top Agile Testing did you agree/disagree with? What books would you add/subtract in this list? Let’s discuss in the comments below!!!