Lower Your Expectations!
So you're feeling frustrated with your dog for not doing what you think he should be doing. "It's like he does it to spite me!" or "He knows what he's supposed to do, he just doesn't want to" are things that I hear all the time. Here's the thing, though, dogs aren't spiteful. They literally don't have the mental capacity to feel complex emotions like spite or guilt. They don't actively try to embarrass us in front of our friends or guests (even if it seems like it at times).
If your dog isn't doing what you want them to, there's a high likelihood that they just don't understand what you're asking of them!
Think about it, if you went to a foreign country unable to speak the native language, do you think you would be able to hold a conversation? Of course not! It's the same thing with our dogs. Dogs don't speak fluent English, they speak dog! You can't ask your dog to do something they don't understand. Okay, say that your dog does understand what you're asking them to do. For example, your dog knows that they have to sit down in order to receive a reward and does it successfully all the time at home, but when you go out to eat in public with them, they act like a jerk and don't listen. Well, then it's time to start lowering your expectations of what your dog can do.
This is where what we call "proofing" comes in. Proofing basically ensures that your dog does the behavior wherever we ask them to perform the behavior. In order to build your proofing, you have to practice the behavior in all sorts of environments. It's like building a pyramid, you can't get to the top of the pyramid without starting out at the foundation, training is the same way.
Another thing to be aware of is if you actually taught the behavior to your dog. Your dog can't do a behavior that they don't know! Just like you can't be thrown into a 5 star restaurant kitchen and be expected to cook the world's best lobster, your dog can't perform a behavior that wasn't taught to them. If they have no idea what to do, it's not fair of you to ask them to do it!
Lastly, don't compare yourself to others. It's said a lot, but it's true! The progress of one dog does not look the same as progress with another dog. By comparing yourself to others, you put unnecessary expectations and pressure on your dog. Instead of comparing yourself to another dog owner, focus on small victories with your own dog! Keep in mind, what you see online is heavily tailored to let others see what the original poster wants the masses to see. When you see me working my dogs, you see experience and daily work. You are not a dog trainer, and that's okay! Your victories look different than mine!
As Denise Fenzi says: "train the dog in front of you".