Interface Oriented Design
Learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.

You'll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations. more »
Essential Skills for the Agile Developer
Agile has become today's dominant software development paradigm, but agile methods remain difficult to measure and improve. Essential Skills for the Agile Developer fills this gap from the bottom up, teaching proven techniques for assessing and optimizing both individual and team agile practices.

Written by four principals of Net Objectives - one of the world's leading agile training and consulting firms - this book reflects their unsurpassed experience helping organizations transition to agile. It focuses on the specific actions and insights that can deliver the greatest design and programming improvements with economical investment. more »
Lean-Agile Acceptance Test-Driven Development
Within 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 customer's viewpoint. By tightening the links between customers and agile teams, ATDD can significantly improve both software quality and developer productivity. more »