Back in college I took an Interpersonal Communications class. Basically teaches you how to avoid conflicts with different personality types and understand others viewpoints. I took it because I was a communications major but that one class did more for me as a parent than anything other class I could have taken.
For instance my teacher once told a story how she and her daughter were fighting over her doing her chores. Finally my teacher asked her daughter which chores she would be willing to do. Her daughter was willing to do any job that didn't involve pee and poop or trash. What chores had my teacher given her? Yup, you guessed it. Cleaning toilets, picking up after the dog and taking out the trash. To reach a compromise she gave her daughter chores that didn't disgust her and her daughter happily did her new chores. Its not that her daughter didn't want to help out the family, its that she wanted to help out the family more on her terms.
I have since employed that strategy with my own kids. Some times you can't compromise. Things have to be done. School work, showers, brushing your teeth etc. But you can give them some sense of control by giving them options. I will tell them what needs to be done and ask them when they will be doing it. If they don't do it by 30 min after that time they get a privilege revoked. Just giving kids a little bit of control in a situation will often diffuse an argument, make the child happier about doing the chore, and make you a happier mommy.
Sometime battles ensue regardless but much of the time things can end better if you learn to compromise. We just have to remember as much as we like being in control so do our children. After all, where do you think they got it from?