I suck at testing things. Always have. I keep trying to be better at it, but I’m just flat out awful at it. I don’t have that twisty way of thinking that would cause me to try and use something in a way that doesn’t seem logical to me.
There have been a few times in my career where I have been in a position where I was expected to fully test something that I’d been heavily involved in. It is after these experiences that I am convinced of two truths in software development.
- You shouldn’t be testing your own code. You get caught in a ‘pattern blind’ trap, because you coded that thing from the ground up. You know exactly how it’s supposed to work, and it’s incredibly difficult to conceive anyone attempting to use it in a way that you have deemed stupid in your own head.
- A good QA is worth their weight in platinum. They care enough about the quality that they will make your application sit up and dance until they break it. And they’ll break your application in all sorts of exciting ways in which you could never imagine.
We’re in a world where deadlines seem to trump quality. This is really bad from a consumer perspective. To give an example – I no longer pre-order computer games, or even buy them on release day. I wait until the first patch comes out to fix all the issues with the game before I even think to throw money at it. This has happened with every single game I’ve been paying attention to for the last year.
As a developer, I want anything I work on to kick bottom. As myself, I know that inspite of my best efforts, a tester I am not. An aggressive QA person constantly bouncing something back to me, while demoralising, means that I have an extra set of eyes making sure that my app is going to kick arse.
A bad review can completely destroy customer confidence. Which is why, as a software developer, my alarm bells start ringing if I interview at a place where they proudly proclaim ‘We don’t have a QA team’. Those same bells start ringing when a team is pushing a tight deadline, and the first thing to be pushed back on the table (or sometimes off it all together!), is the QA.
Dropping QA should never be acceptable. Love your QA, because by doing what they do, they are covering your backside. Instead of dropping QA to meet a deadline, I think anyone who cares about your product would much prefer you to just push back the deadline instead.