Evolutionary design and iterative development only get you so far - you still need some level of up-front thinking and forward planning.