@snoofle said:
For the record, I made him fix it, if only to force him to think for 10 seconds, thenr estarted my run, and found... yet another place with an uninitialized variable (-MAX_INT) being used as a map key leading to yet another null pointer.
I sent out a flame mail to the entire team (he's not the only one who pulls this) explaining the cost of NOT checking for null/uninitialized values, and that I was going to buy a CAR with the money I was going to bill because of their pathetic work ethic.
They were stupid enough to try and make light of it.
I quietly sent a copy of the entire email exchange (including the original referenced in the post) to a higher level manager (someone who is responsible for money); she was not amused and asked me in to her office to explain. I did. She asked what needed to be done. I explained that this attitude is pervasive amongst inexperienced (e.g.: low cost) people, and that they are more expensive in the long run when it takes twice as long to get something into production.
Any bets on whether anything good (besides me being able to vent here - thanks for listening) comes out of this?
mmph ... learned the hard way that making angry doesn't get anywhere. Ridicule can do, if you play it correctly (two weeks after a started a particular job I started a file of WTFs I'd found in the codebase I was working on, complete with smartarse comments, and passed it round), but perhaps the safest way is by crafting a detailed timesheet with cost of fixing the various bugs, whose checkin it was that caused it, etc. etc.
Having said that, you may also find that there are two levels of required standards for code: those working on customer-facing, money-making projects (i.e. the stuff which the other guy is working on), where the only criteria seems to be that it's written loosely using the Western alphabet, and backup systems, maintenance applications and internal tools where the slightest sniff of a possible bug is grounds for failing to achieve your objectives come appraisal time (and of course that's the stuff you're involved in).
Get that CV up to date.