Our trainer pointed out that dogs almost always have a reason for barking. You have to figure out what that reason is and make sure they are not getting reinforcement for it.
For example, Buffy used to bark when she wanted attention, like during our dinner. This was when she was a puppy. We did not give her that attention—although this resulted in some pretty painful & annoying dinner times. If she barks at something on the street (which is relatively rare) I do not let her get to it. I have a "settle" command where I pick her up by her chest and let her hand—that chills her out sometimes.
I'm sure you can find some info on the forums about teaching the "quiet" command. That one takes a lot of patience but it works if you keep at it.
She sometimes barks as a "demand" if she thinks she should get a treat or when she wants the ball in fetch. We do
not reward her when she does this.
Buffy also barks when playing. I usually just let that go.
She doesn't bark when people come in the door because we are in a condo and people walk by the hall all the time. We wanted her to ignore that. But I have heard of some people training a "thank you" after they bark once or twice.
She "talks" more than barks. Like growls, whines, does a combination of everything. It is really cute.
All in all, Buffy is not super barky, but she talks once in a while. The thing that irritates me is the high, loud barking for no reason. Buffy doesn't do that. Her barking level stayed about the same throughout her life. My other Sheltie Abby wasn't barky either. I think it is more external stimulus and life events than an internal developmental thing.
And if you really don't want them to bark, don't get another Sheltie. They egg each other on.
