Much of modern software engineering best practices and know-how can be summarized in a few key principles. This book, Agile Software Development Principles, Patterns, and Practices, written by Robert Martin, defines eleven of these principles, gives them short helpful names, and shows how they are applied in many different established design patterns in modern software literature.