Remember that good fiction reveals the plot to the reader, it doesn’t explain the plot to the reader like a parent talking to a child. You need to reveal your characters through their actions. Don’t just say what the protagonist is doing, show what the protagonist is doing. That makes all of the difference. Use your dialogue to reveal the characters and what they are thinking and feeling.
If your character is of a certain ethnic group or occupation or he/she hails from a particular region, have the character use words or terms that would be indicative of this background. If your character is a child, don’t have him or her talk like an adult -- unless the point you are trying to convey is that this child is smarter than peers or wise behind his years. Otherwise, it will just appear as if an adult who doesn’t spend a lot of time with children wrote the piece and that can cost you some credibility. Likewise, if your character is poor or from a bad neighborhood, he is less likely to order items by their brand names. A young man with an inner-city background will more likely call wine ‘wine” than ask for it by a type or region. A burgundy is more often the order of a character with a bigger bank account or more worldly travels.
Please don’t go overboard with accents, however. Nothing is harder to read than a mish-mash of accented words. Hint at the accent and the reader will catch on quickly enough.
Also, try to see how far you can go without using the word “said.” It’s not needed in every line or every time a character talks. Instead, try out some variations or better yet, just let sections of dialogue flow without these markers. Just make sure it’s clear enough for the reader to be able to attribute the correct lines to the correct speakers.
Lastly, let your dialogue flow. Edit at the end, not during the process.