A lot of people have difficulties when trying to figure out when to use müssen and when to use sollen.
Since both of them are fairly often used verbs, I want to go into detail and help you understand the difference between both of them.
Sollen is used if something is not completely obligatory, while müssen is used in a more strict way and implies that you absolutly have to do something. (eg law)
There are various exceptions for the above stated, which makes it necessary to look at the difference between the two words more closely.
Both, müssen and sollen are modal verbs. If you need an explanation of what modal verbs are, I recommend you to visit this website to check out the grammar rules and some examples.
Müssen is very strict
The German modal verb müssen corresponds to the English verbs to have to or to must and it expresses a proper obligation. Müssen is used when you absolutely have to do something.
On top of that, by using the verb müssen you are able to stress the urgency of something. In general, müssen sounds more hard, strict and urgent than sollen.
In some situations müssen can sound rude so you should be carefull when you use it to address other people. If you are, for example, relaying some order to someone else you should use sollen since using müssen will make you sound kind of forcefull and can easily annoy people.
The boss said, you have to clean the room
Der Chef hat gesagt, dass du das Zimmer putzen musst. (This would make me very annoyed)
Der Chef hat gesagt, dass du das Zimmer putzen sollst. (This is more polite)
You should also pay attention to the negation of müssen (nicht müssen) since the negation does not correspond to the meaning of “must not”. In English, must not expresses prohibition, while the German “nicht müssen” is used if there is no obligation to do something.
“Ich muss nicht…” corresponds to the english “I don’t need to”. For example:
I don’t need to clean.
Ich muss nicht putzen.
There are some exceptions, where sollen is used instead of müssen, such as the ten commandments.
But it happens rarely, so you will be absolutely fine if you pay attention to the above mentioned.
Sometimes you can choose by yourself which verb you would prefer and it can be really useful to communicate a certain mood in a sentence. For example:
My boss told me, that I have to finish this task until monday.
Mein Chef hat gesagt, dass ich diese Aufgabe bis Montag erledigen muss. (Slightly annoying)
Mein Chef hat gesagt, dass ich diese Aufgabe bis Montag erledigen soll. (More relaxed)
Sollen is more “soft”
Sollen corresponds to the English word should. Sollen is used to relay orders by someone else, or to make a request.
However, most of the times you would have to rephrase the German sentence if you want to translate it to English, since there are a lot of subtle meanings for sollen.
Sollen can also be used in the absence of an obligation, or if there is some more general obligation to do something (eg moral obligation, in a wider sense you can see the ten commandments as an example for this)
You shouldn’t hit the other children.
Du sollst die anderen Kinder nicht schlagen.
Sollen is also the most frequently used way to ask for, or give, advice. In this case you have to apply Konjunktiv II to it, when formulating your sentence.
Sollte ich mehr essen?
Should I eat more?
Du solltest mehr Sport treiben!
You should do more sports.
You can also use sollen, to express the inability to make a descision. When doing this you have to use an indirect question.
I don’t know what to do.
Ich weiß nicht, was ich tun soll.
Ich don’t know if I should clean.
Ich weiß nicht, ob ich putzen soll.