If you know..

Software Design for Flexibility: How to Avoid Programming Yourself into a Corner

by Chris Hanson and Gerald Jay Sussman

https://archive.org/details/software-design-for-flexibility_...