Get a handle on knowing whether what you are building is what you've been asked to build.
Make sure you are testing what you built and didn't miss anything or aren't trying to test something that wasn't required. See what the impact of a change is to your system before you build it in. Better yet, show your client what the change will cost before you let them agree to it. Manage your estimates based on how long you know certain requirements take to complete. Be able to hand your projects off to subsequent teams and maintenance personnel and have them know exactly what to do.
Don't shove problems under the rug, they only get bigger under there.
Have an effective means of identifying, tracking, and resolving your projects' risks. Risk is a necessary reality of any worthwhile project.  Having a risk is not a danger, but not knowing about it or not doing something about it just plain "working stupid" (see where that comes from). Let your risk management program be a standardized way of making sure project leaders know where and when to place resources.
Let's see how we can help you get a handle on risks and/or requirements. Get in touch. Contact us.