Software Design for Flexibility: How to Avoid Programming Yourself into a Corner by Chris Hanson Back to product details page >