Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration

Praise for Lean-Agile Acceptance Test-Driven DevelopmentLean-Agile Acceptance Test-Driven Development tells a tale about three fictive project stakeholders as they use agile techniques to plan and execute their project. The format works well for the book; this book is easy to read, easy to understand, and easy to apply. Johannes Brodwall, Chief Scientist, Steria NorwayAgile development, some say, is all about pairing, and, yes, Im a believer in the power of pairing. After reading this book, however, I became a fan of the triadthe customer or business analyst + the developer + the tester, who work collaboratively on acceptance tests to drive software development. Ive written some patterns for customer interaction and some patterns for testing and I like what Ken Pugh has chosen to share with his readers in this down-to-earth, easy-to-read book. Its a book full of stories, real case studies, and his own good experience. Wisdom worth reading! Linda Rising, Coauthor of Fearless Change: Patterns for Introducing New IdeasThe Agile Manifesto, Extreme Programming, User Stories, and Test-Driven Development have enabled tremendous gains in software development; however, theyre not enough. The question now becomes How can I ensure clear requirements, correct implementation, complete test coverage, and more importantly, customer satisfaction and acceptance? The missing link is acceptance as defined by the customer in their own domain language. Lean-Agile Acceptance Test-Driven Development is the answer. Bob Bogetti, Lead Systems Designer, Baxter HealthcareKen Pughs Lean-Agile Acceptance Test-Driven Development shows you how to integrate essential requirements thinking, user acceptance tests and sounds, and lean-agile practices, so you can deliver product requirements correctly and efficiently. Kens book shows you how table-driven specification, intertwined with requirements modeling, drives out acceptance criteria. Lean-Agile Acceptance Test-Driven Development is an essential guide for lean-agile team members to define clear, unambiguous requirements while also validating needs with acceptance tests. Ellen Gottesdiener, EBG Consulting, www.ebgconsulting. com, Author of Requirements by Collaboration and The Software Requirements Memory JoggerIf you are serious about giving Agile Testing a chance and only have time to read one book, read this one. David Vydra, http://testdriven.comThis book provides clear, straightforward guidance on how to use business-facing tests to drive software development. Im excited about the excellent information in this book. Its a great combination of the authors experiences, references to other experts and research, and an example project that covers many angles of ATDD. A wide range of readers will learn a lot that they can put to use, whether they work on projects that call themselves lean or agile or simply want to deliver the best possible software product. Lisa Crispin, Agile Tester, ePlan Services, Inc., Author of Agile TestingWithin the framework of Acceptance Test-Driven-Development (ATDD), customers, developers, and testers collaborate to create acceptance tests that thoroughly describe how software should work from the customers viewpoint. By tightening the links between customers and agile teams, ATDD can significantly improve both software quality and developer productivity. This is the first start-to-finish, real-world guide to ATDD for every agile project participant. Leading agile consultant Ken Pugh begins with a dialogue among a customer, developer, and tester, explaining the what, why, where, when, and how of ATDD and illuminating the experience of participating in it. Next, Pugh presents a practical, complete reference to each facet of ATDD, from creating simple tests to evaluating their results. He concludes with five diverse case studies, each identifying a realistic set of problems and challenges with proven solutions. Coverage includes How to develop software with fully testable requirements How to simplify and componentize tests and use them to identify missing logic How to test user interfaces, service implementations, and other tricky elements of a software systemHow to identify requirements that are best handled outside software How to present test results, evaluate them, and use them to assess a projects overall progress How to build acceptance tests that are mutually beneficial for development organizations and customers How to scale ATDD to large projects