Essential Skills for the Agile Developer
A Guide to Better Programming and Design
by Alan Shalloway, Scott Bain, Ken Pugh, and Amir Kolsky.
This book answers the question many developers have after taking some initial Agile/Scrum training – “OK, how do I write code now that we are building our software in iterations?” This book provides over a dozen proven practices that help developers improve their coding practices and make their code more easily changeable and maintainable in Agile projects. Please read the preface to better understand how to read this book.
You can post comments about these chapters at the Yahoo Lean Programming group
Sample Chapters from "Essential Skills for the Agile Developer"
| ![]() Buy the Book |
Some Related Courses at Net Objectives
- Design Patterns Explained
- Design Patterns for Agile Developers
- Advanced Software Design
- Sustainable Test-Driven Development
Related Resources
- Encapsulation as a First Principle of Object-Oriented Design
- Read our collection of blogs on these topics
Related Webinars
We have webinars that relate to Essential Skills from time to time. Please register so you will be notified of such events.
Errata By Chapter (chapters with Errata will have links):
- Preface
- The Core Trim Tabs
- 1 Programming by Intention
- 2 Separate Use From Construction
- 3 Define Tests Up-Front
- 4 Shalloway’s Law
- 5 Encapsulate That!
- 6 Interface-Oriented Design
- 7 Acceptance Test-Driven Development
- General Attitudes
- 8 Avoid Over and Under Design
- 9 Continuous Integration
- Design Issues
- 10 Commonality Variability Analysis
- 11 Refactor To The Open Closed
- 12 Needs Vs Capabilities in Interfaces
- 13 When and How to Use Inheritance
- Appendix. Basics
- A-1 Introduction to the UML
- A-2 Code Qualities
- A-3 Encapsulating Primitives
Page50, middle of page:
if ( << don't need an encrypter>> )
Return null;
should be:
// NullEncrypter derives from Encrypter but does no encryption
if (<<don't need an encrypter>>) return new NullEncrypter();
Page 81, paragraph 2:
Later on you may find that YourCustomerLookup and YourVendorLookup have much more in common than YourCustomerLookup and MyCustomerLookup.
should be:
Later on you may find that YourCustomerLookup and some new lookup, such as YourVendorLookup, have much more in common than YourCustomerLookup and MyCustomerLookup.
