Generally, when I get frustrated with my kids, it's due to false expectations. Either I'm expecting them to act like little adults, or my expectations are not developmentally appropriate. I've learned the value of scripts in child training.
For instance, Lydia threw a fit when I gave her a cookie, because she was hoping for two cookies. So I took the cookie away, and said: "That's fine, if you don't want a cookie, you don't have to have it." Then she whined: "Hey, that's my cookie!!" So I said, in a pleasant voice (because that's how I want her to say it), "Mommy, I changed my mind. May I have my cookie back please?"
Because I gave her that script, I didn't have to get frustrated when she kept whining and throwing fits. I told her how to get out of her predicament and she did, with grace.
When she was little and would whine to get what she wanted, I would give her the script: "More, please."
Scripts even work with older kids. I have noticed that Maya is a peacemaker. She doesn't like to argue, and as a result, she often gets run over. Elena likes to correct Maya. So, when Elena corrected Maya and Maya didn't respond, I wasn't sure how to handle it. After all, it didn't result in any kind of fight or argument.
Now, when Elena corrects Maya, I model: "Elena, that's not nice. I don't like it when you correct me." Maya is learning how to be assertive and stand up for herself without being rude. I do the same thing for Isaac. He loves it when Kyle rough-houses with him, until a point. But when he reaches that point, he shuts down. He doesn't know how to express himself to get what he wants. When I see that Isaac has had enough, I model: "Stop, daddy. I've had enough." And to get Isaac in a laughing mood again, I'll usually throw in a few extras, like: "I've had enough of this, buffalo breath!" or "Stop, daddy, you big lummox!" We Clarks enjoy a little name-calling sometimes.