Recently, I had a conversation with a junior developer on my team. Let’s call him Alan. We were talking about a new notification feature that was going to be used to send reminder e-mails to potentially thousands of people if they had forgotten to enter certain data in the last month or so. Alan was confident that the code he’d written was correct. “I’ve tested it well.”, he said…
I was a full time test engineer / QA person for a while. My motto quickly became “nothing ever works”.
Pretty much any ticket behind a static copy change would have some problem or oversight. Sometimes even those would (did you account for very narrow view ports?)
Good developers would take this feedback gracefully. “Shit, you’re right, I need to account for mobile users.”
Bad developers would get defensive and upset. “We barely have any mobile users (me: did you check?). Alan already approved so I’m merging. I don’t want to waste time on this”
As a dev I’ve been on both sides to be honest. Especially when there is pressure to finish the next task. I think it needs good planning to create enough time for these things.
In the end bad devs will still shut you up about things they are not interested in fixing…