Interesting that I am posting very similar things in my driving instructor blog and this blog.
I really do see similarities in teaching people to drive and training dogs.
One really important thing to remember is
Practise makes perfect
That is true on practising something you want your dog to do, practise in as many different locations and build up the distraction level and over time the behaviour will become perfect.
But it is more important to consider when your dog is doing something you dont want it to do.
For example - jumping up at people
Every time your dog jumps up at someone it is practising the behavior that that is how it greets people.
Yes you have to think of the different behaviour that you would like to train - but at the same time you must stop the dog practising the behaviour you dont like, so while you are retraining you might have to keep your dog on a lead or send to another room or a crate so they do not get the opportunity to practise the unwanted behaviour
and remember the longer the dog has been practising the undesired behaviour then the longer it will take to retrain, no matter what the TV shows seem to tell you dog training takes time - if it didnt everyone would have a champion obedience dog