This harness can be attached two different ways: as a front attachment harness for times when you want a polite walk, and as a back attachment harness, for times when you don't care. That way, you can send a consistent message to your dog and train her not to pull sooner. To attach as a back harness, simply unclip the belly strap, rotate the rest of the harness around the dog's neck, and re-attach the belly strap.
You can either have a harness be the gear that your dog always wears or just use it for high-distraction times that she's not ready for and use a collar for times that she's able to learn without choking herself. As you train more and more, the times that you need the harness become fewer and farther between.
I highly recommend this harness for just about all puppies and adult dogs. Exceptions: big untrained dogs with very small or weak people would be better off with a head collar. For very tiny dogs (under 5 pounds), I tend to only use this harness as a back attachment harness, which means many other kinds of harness would also work.
Choose a size based on your dog's girth, which is the measurement all around the barrel of the dog, just behind the front legs.