Shy away from numbers or concrete analysis during design. Good engineers estimate. Great engineers speculate. — The mindless tyranny of ‘what if it changes?’ as a software design principle