Casey had this to say:
I have actually seen organisations where (in one case actually explicitly expressed, and in many where it wasn't spoken out loud) software delivered roughly meeting the requirements on how the UI worked was considered delivered. The work to make it work (usually way more work than the initial delivery) was considered 'bug fixing' and therefore was billable additinally by the IT department or outsourcer.
Which reminded me of a joke about consultants, no relation to anyone I know, etc...
One day the manager calls the consultant to talk about the time sheet report...
Manager: You charged us on Wednesday for 19 hours, but you were here for only about 9 hours on Wednesday.
Consultant: Well, of course. Look, it is very detailed. I was here from 9:00 to 18:00, right?
Consultant: And because we left without a good solution, I kept thinking about it in the car, and when I walked the dog. You see, it is the entries for 18:00 - 19:30 and 20:00 - 20:45. From 19:30 - 20:00 I had dinner, I didn't charge you for that.
Manager: Nice of you. And the other 8 hours? 22:00 - 06:00 ?
Consultant: Well,when I walked the dog, I finally had a vision, everything came together in a moment of brilliance, and I could see the solution in my head. All I had to do is connect some little pieces and it would work.
Manager: Oh, so you did an all nighter?
Consultant: Ha? Of course not. I went home thinking about the idea, and then I went to bed and slept on it for 8 hours.
The above is not my modus operandi, nor am I willing to work with those who does. This is relevant because I am not going to consider practices built in those kind of shops as important to most of the discussion about software development.
All that aside, how the hell do you get the client to agree to pay for bug fixes? All my contracts include a 6 months guarantee for bug fixing, and most of the time they also include SLAs that says "drop whatever and get there", which is annoying as hell when this happened*. This means that I can't bill someone for bug fixes (change request are another matter, but those are for another time**), which is a great incentive to not have bugs.
* At one time I was called, after being on the phone for about an hour, came to the client, sat for 5 minute, sent a death treat to the DBA, and left. No space on the DB hard disk, argh! They backed it to the same HD and never cleaned it up.
** "Oh, you wanted it to also work? That wasn't in the original spec..." doesn't really fly in the real world