Whatever you do, try to do it in some way so you can reuse it. Abstraction, dude.
Develop the system your clients needs today, but thinking about what they could need tomorrow.
Respect life cycles. One requirement at a time. New requirements in the right moment. Analyze every new requirement as if it where important. You will find always ambiguous and contradictory points.
Do it well, its good for everybody, and is better for the "you of the future"
"Dirty remains long after quick has been forgotten." A small delay isn't that important some time later, when everybody is still happy with a healthy software.