I just (again) discussed an interesting problem with a close (female) friend. She frequently gets angry at people for no good reason. She is aware of the problem herself but can't help it.
For example, she is late for a meeting which the other party, fairly, frowns upon. This causes my friend to be very angry at that person. My friend knows that the other person has a "right" to be annoyed with her being late, while she herself has no reason at all being angry at that person in that situation but she can't avoid it.
My first advice to my friend was that she must learn to apologise and these days she is pretty good at apologising. She always gets back to people, including me, the day after and tells them "it was wrong of me to be angry at you yesterday" but this is exhausting for her.
Now we discussed how she can avoid ending up in these situations to start with. I think it is human to feel angry even when it is yourself that is to blame for the situation but I don't really know how I, or others, cope with it. It is kind of tacit knowledge. I can only tell her to "analyse the situation rationally and if you realise it is your own fault, then shut up" but that approach doesn't really work when the situation that triggers the anger is ongoing (obviously, when she has calmed down she can think rationally about the situations - that is why she is able to apologise later on).
What do you advise?
Edit: the goal is to act more rational in situations when she gets upset. Sometimes it is justified for her to get upset (e.g., when someone else is late for a meeting) but frequently it is not. How can she learn to distinguish between these two situations "in the middle of it" (she is good at making that distinction later on when looking back on what happened but then it is too late)?