Don't get me wrong. I certainly don't think majority of vendors who use a fixed-price model are trying to rip you off. In fact, when I started my business that's way we worked—which is why we have such great insight into flaws in system. But there needs to be a transparency to work. You need to know exactly what you're getting, how long it takes, and how much it costs. You need to know that you're only paying for time actually spent on your account. And you need to know that no risk will ever be taken with your system just to maintain your contractor's profitability. The inherent structure of fixed pricing makes this kind of transparency an impossibility. Here's why:
Fixed pricing is designed to function with absolute minimum amount of human attention. The more company does not work for client, higher profit. This creates an adversarial system where caretakers fight to do as little work as possible no matter how much they are being paid.
Fixed pricing encourages wastage. Since a fixed price contractor has an hourly rate in mind - say $120/hr - then when they quote $12,000 per month, that really means that they intend to spend no more than 100 hours per month on your account. But if near end of month they have only done 20 hours, for example, then what happens to other 80 hours? Nothing. You would have received inferior services for an astronomical hourly rate and have no recourse to approach contractor and ask that they put in a little TLC.
Fixed pricing encourages increased risk. This one has a little math behind it: If a problem can be corrected in 1 hour but has a 10% chance of reoccurring in 2 months, or can be corrected in 5 hours and will never happen again, fixed price contractor will always pick 1 hour solution. Why? Imagine that they have 10 different clients with same problem. They can spend 50 hours fixing it right way for everyone, or spend 10 hours fixing them all wrong way knowing that only 1 in 10 (10%) will have a problem in 2 months (incurring another 1 hour then). Therefore, total time saved by doing it wrong way is 39 hours. A huge savings to contractor.
Now imagine if that problem has downtime or data loss associated to it. This will never factor into their profitability equation.
Fixed pricing can be deceptive as far as measure of quality. Take database administration, for example, since that's what I know best. The measure of DBA job in a fixed price model is to ensure that database is up. Performance improvement or dealing with performance decline is not even in contract. Also missing is any diagnosis of complex performance or network issues which may involve more than one piece of architecture puzzle.