I’ve heard the phrase “Developer QA” being thrown about quite a bit lately, and recently encountered it at work. Basically, when people talk about “Developer QA”, they’re referring to a developer ensuring that the code they’re pushing forward is of high enough quality to make it into production. Who could argue with that? Lots of people, it seems.
There is some disagreement about whether “Developer QA” is required, and I think it’s a language issue (read about my good friends Sapir and Whorf). “QA is not the job of the Developer; that’s why we have QA” sounds perfectly reasonable. Why should developers do someone else’s job? When using the phrase “Developer QA” the language suggests that Developers are given tasks from someone else’s job description.
However, I don’t think the suggestion in the language is the intended outcome. Certainly, ensuring that the code works is the developer’s job. (Feel free to disagree, but you’ll sound ridiculous.) So from now on, I’m not going to say, or enjoy hearing, “Developer QA”. I’m going to say “Do Your Damned Job.” I might even type DYDJ for short.
I’m not a big fan of negative reinforcement, but I am in full support of loud and critical commentary for every person that pushes a 500, blatant oversight, or other atrocity to QA. (Myself included; I pride myself on being my own worst critic.) When you do this, you are wasting your co-workers’ time, and that’s just not nice. They’re not going to invite you over for BBQ if you keep being not nice.
Writing tests is one very important way to DYDJ. On a project that has been well tested from start to finish, including a comprehensive suite of acceptance tests, I even feel comfortable pushing to QA without even looking at it in a browser. Few people out there will have code that is tested this well. If you have code that isn’t well tested, it can’t provide you with that level of comfort: You’re going to have to click through.
The bottom line is this: as a developer, it’s your responsibility to make sure your stuff works. That is not QA, my developer friends: That’s doing your damned job.