Refactoring the code

We just got to the point in our work project where the word ‘refactoring’ got bandied about.
I’ve got a Pavlovian response to this word. By which I do not mean that i put cream and passionfruit on my head and offer myself as desert**, but by which I do mean that I start to panic and sweat because ‘refactoring code’ means ‘tidying up something that already works to conform to standards and readability and what it really means is them fucking up something you’ve already tested and assuming all will be ok and you have to do all your fucking work again’.

Why the heck people cannot refactor BEFORE testing is beyond me. Well in this case, it’s time restraints, sure.

I worked with one programmer, and I use the term loosely, who would just get in and dick with stuff that wasn’t broken cause he wanted to make it ‘better’ – code he saw while he was doing a ‘one line code change’. he often ‘refactored’ and utterly broke entire sections of code without telling anyone he’d done it (it was only refactoring!). He’d hide that he’d done it as he was so sure of himself that he didn’t ever think anything he could do could cause a problem. then not admit it was down to him when it all failed horribly. Caused the most amount of rework I’ve ever had to do with anyone. What a nightmare to work with.

The relationship between the tester and the developer should be one of trust. You trust them to do the best job they can and they trust you to figure out what they missed and tell you so they can do better. You work together to get something working as expected. It’s very different skill sets. I happen to be remarkably good at destroying things and lateral thinking and breaking shit, I also happen to really enjoy it.  Devs often say they cannot stand testing and don’t see how i can stand it, I kind of think the same of what they do. Urgh! but together – we do a good job! I love my current devs, I sit with three of them in a pod and we all get along very well.

So the process should be really simple, but this guy failed on all counts. He was arrogant and never wrong and would spend considerable time trying to point the finger at others if you found a problem in his code.

(I spelled that ‘cod’. hehehe. Very fishy, he was!)
At the time I was working with this guy we all learned to flinch when the word ‘refactoring’ came up. It’s since become a bit of a joke with everyone, but when a totally nother team brought it up the other day – i flinched and went into a panic!

This picture is now taped to our project wall:

Refactoring the code

Refactoring the code

The piles on the left are rejected code, the devs are standing around doing code reviews and he buckets of infinity on the right is the infinity of pain that it causes when certain people refactor.

This was actually a portrait of my team at the time. The evil black guy was the person in question. I vaguely recall that i am the little brown blobby sad thing on the left, I have no arms as they are not needed as I am not a programmer (I have tried. It is NOT my forte!).

 

**I have never ever ever ever liked pavlova. The fruit and the cream and the crispy stuff were fine, but whats happening with that slimy pink sludge that forms in the middle of the thing? That has to be the most disgusting thing in the universe***. It’s foamy and slimy and sweet. OH MY GOODNESS YUCK

 

***Feedback from someone who is sitting watching me type: “But that’s the best part!”. How intelligent can a person be and yet be so utterly and totally wrong?