My favorite tip is:
Reward openness regarding problems. I have been shocked over and over by programmers who say, "I was afraid to tell you about this problem." It's essential to create project teams that work together to identify and work on outstanding issues, not hide them. Last-minute complications will be reduced, and predictability will improve measurably.
Why is this my favorite? Because in my experience, openness regarding problems really pays off. My favority saying is, "we can pay now, or pay later. "