Once your dog can stay in a sit for several seconds, you can begin adding distance. Place him in a sit and say “stay,” take one step back, then step back to the pup, give a treat, and your release word. Continue building in steps, keeping it easy enough that your dog can stay successful. Practice both facing him and walking away with your back turned (which is more realistic).
Help him relax when he comes home. When your puppy gets home, give him a warm hot water bottle and put a ticking clock near his sleeping area. This imitates the heat and heartbeat of his litter mates and will soothe him in his new environment. This may be even more important for a new dog from a busy, loud shelter who's had a rough time early on. Whatever you can do to help him get comfortable in his new home will be good for both of you.
Once your puppy can turn around to face you, begin adding movement and making the game more fun! Toss a treat on the ground and take a few quick steps away while calling your puppy’s name. They should run after you because chase is fun! When they catch you, give them a lot of praise, treats or play with a tug toy. Coming to you should be fun! Continue building on these games with longer distances and in other locations. When training outside (always in a safe, enclosed area), it may be helpful to keep your puppy on a long leash at first.
Imagine your puppy running out the front door. You call him, waving a treat. But he'd rather chase a squirrel into the road than come back to munch on a treat. In addition to the obvious danger of Puppy getting hit by a car, he learns that he doesn't have to listen to you. He learns that he's in charge of what he decides to do and what he decides not to do.