Mon Oct 24 19:08:58 EDT 2011

On doing things differently

If you violate a rule or invariant in a sound model, or design
pattern, then you should know *why* you violate it.  Meaning, the
violation should not be out of ignorance of how to do it properly, but
out of knowing why you have to do it differently.

Often it is indeed easier to start from scratch and build something
simpler, with less moving parts.  Though this should never be out of
ignorance, because usually in good designs some possibly hard to
understand complexity might actually be essential in ways you don't
get yet.