As software craftsmen, we have rules. Sometimes we feel bad when the rules must be broken. They're just rules though. What's important is that we have a moral center, a professional core, that refuses to compromise the quality of our work.
Robert C. Martin, on software quality and professional standards. One of the comments raises an interesting counter-argument: what if the client wants you to ship shit? In that case, there could be a mismatch between yours and their definitions of shit. If the mismatch is too great you'd better start looking for a new client.