So many times I see families with great dogs getting very frustrated because their dog is not "getting" something. The huge majority of the time it has to do with the shaky foundation they have laid for their dogs' training. What I mean by this is that their dogs were really smart and seemed to be picking up on training quickly, so they either speed through steps and not give them enough attention or they skip steps altogether.
If you are building a house, you can't do anything else until you have a firm foundation. The same is true for dog training. Without a firm foundation, ultimately your house, and your training, will crumble.
I see this happening in Puppy Class. One of the "rules" I have during Puppy Playtime in class is that you don't call your dog to come to you during this time. I do this because a) the puppies don't have a firm grasp of "come" and if we call them and they don't come, we are setting them up for failure and b) it's just too much to expect a young puppy who doesn't quite understand "come" to leave the fun and her playmates to listen to mom or dad. Once the puppy is coming reliably 100% of the time when called in low-distraction, familiar situations, you can assume the very basic foundation has been laid and you can start building on that.
The other part of building a firm foundation in your dogs is breaking down behaviors and understanding what it is you need teach your dog. Again using "come" as an example, there are other skills that are essential to the foundation -- attention, focus, willingness, knowledge that "come" equals something good. In class I teach that knowing their own names is important too, and it is, but you can teach a rescue dog to come reliably without using a name. Our foster puppies all are learning "come." For those that have not been adopted, we use just the word "come." Sometimes we use "puppy" and we always work on attention and focus. It's an awesome thing when we can call "Puppies, Come!" and nine puppies thunder across the yard or the room to get their reward!!! They have all learned that the word "come" means that they are going to get something they really, really like and the foundation is laid. For their forever families, it shouldn't be too difficult for them to teach them their names and add that to "come" for reliable, life-saving coming when called.
The foundation is key. You wouldn't start building a house in the middle of the house -- you would start with the foundation. Do the same thing in your dog training and you will have solid, well-behaved, reliable dogs who do what you ask when you ask. How easy and wonderful is that?