Wednesday, 19 June 2013

Developer/Programmer Communication

I've just had an encounter with an over defensive programmer, how do I know they're over protective?  Well, I was just telling them of the potential for a bug, I wasn't saying there was a bug - there actually isn't - but before they go off and do a piece of work I pointed out something fairly obvious with the physical machine.

Now, us software guys sometimes focus on the software and miss the physical and this happened to another team on this very same piece of kit, so before this chap went too far I just showed him the machine and asked "Have you noticed this?"... "No" he said, and looked, and was just fine...

Until I said "In code you have to beware of it"... the moment I said that, and remember he admitted he'd not spotted this problem before, the moment I mentioned his code or work... defensive defensive defensive.

You could accuse me of teaching him to suck eggs, but a very experienced team of folks missed this same issue not two weeks before, this lone chat working away in a room alone might very well miss the same issue but unlike a team with proper approach routes to advise and solve the problem this lone ranger is basically able to do his work and fade into history, leaving a gaping bug!

But his defensiveness just pissed me off, it was like "How very dare you point that which I have not spotted out", the annoying thing is I needn't have bothered myself, I needn't have had his attitude splash over me, I could have just sat back waited and then tested the results and pointed it out then weeks down the line!

I've learned - hard lessons - over time about being too defensive, I find it much more oiling of the cogs of interoperating with people to admit your can at least have a look at a problem, if not even just admit a fault - even if its someone else's and in someone else's code - and you fix it, and get the work done.  And if possible document what went wrong, how, when and why when the thing is actually working.

Its one of those things which helps you get along in software, you might know very well what you're seeing reported as a bug is not even from the code you write - I know I have - or you might be getting the sinking feeling there's some intermittent or timing related bug; which are always fun - NOT!  And if you get over defensive all you do is anger the tester/user and stop them wanting to help you, and that's what they're doing finding problems, or showing you how they actually use your software product they're helping you, they don't have to bother they don't have to use your software, they can ignore it and do any/all possible other things rather than use and support you creating their solution for them, and so you end up on the loosing side.

So, if you're a developer, don't jump on the defensive, be calm listen and don't put the person communicating with you down, remember if they stop doing their thing you miss out on so much.

Addendum: This chap just decided to come back over and have another moan at me, this time saying no-one had told him about the problem... I told you, two hours ago, and you got all defensive and pissy with me...

No comments:

Post a Comment