Everyone by now presumably knows about the danger of premature optimization. I think we should be just as worried about premature design – designing too early what a program should do.

– Paul Graham