Unfortunately, people often make the mistake of doing way too much work before testing assumptions in the real world. In computer science this trap is called premature optimization, where you tweak or perfect code or algorithms (optimize) too early (prematurely). If your assumptions turn out to be wrong, you're going to have to throw out all that work, rendering it ultimately a waste of time.
Chapter:
Being Wrong Less
Section:
Keep It Simple Stupid