We had contractors scheduled to come in to replace some of the carpet in our house. They were not there on time. They were not an hour late. At an hour and a half, I called the company to ask what the situation was. It turned out that the relevant salesperson had lost our appointment, and was not in to address the situation himself. The contractor said he might possibly be able to bring someone in today, but also offered the first thing tomorrow morning if we'd prefer. As we had already corralled the cat and moved items in anticipation of the contractor, I told him we had a definite preference for today, if possible. A lose worker with a gap in his schedule was found, and will come this afternoon to do the work. In my last contact with the contractor, he thanked me for being both nice and flexible regarding their mistake (unlike a lot of their customers, who apparently like to begin with yelling). I suspect this is the reason he pushed to find someone today rather than postpone me until tomorrow--or later.
What good would yelling do? Getting angry gives you the satisfaction of disposing of your anger on someone else, and possibly a few concessions you can negotiate from a truculent and unwilling party--I know how willing I'd be to deal after being browbeaten. The guy I dealt with was just a person of responsibility at the contractor--he wasn't the one who made the mistake. I'm not sure I'd use this company again--we'll see how the finished product looks--but I also won't feel the need to steer others away from them.