I've been doing these things, but I generally have a hard time concisely describing it. Of course, these aren't hard and fast rules. More of a guide to thinking about problems to help programmers be more efficient and accurate... More precise...
I don't really know how to describe it, but one day, you find yourself doing these things more... Stuff gets easier... Things just start to click.
I'd like to add one more, though maybe it's really just another way of putting one of the other statements.
Stop worrying about all the unknowns in the project. Work on what's known, usually the unknowns will become more clear as you progress.