Big themes in the design of software
When we're confronted with an unknowable domain, we need to explicitly design for evolvability.
Engineering is tradeoffs... right?