I can’t decide if one coworker is ridiculously literal or what. I’m trying to convince myself the guy isn’t stupid, because you don’t have a programming career if you’re stupid but still… The best I can manage is that he’s mostly worked in a field where what he gets for specs is spelled out to the last crossed t and dotted i. Which does not work with something that’s grown like Cthulhu on steroids.
Take an interface to the Evil Third Party. It includes the ability (sort of) to do what is known as a Single Sign On – you log into my employer’s software, click a button and a new window opens with you automagically logged into the Evil Third Party’s software. To do this, someone has to associate your login for the Evil Third Party to your user account with Lovecraft, Inc (okay, that’s not their real name, but there are times when it feels that way).
So. You, being a good little programmer, are told that the Evil Third Party remote login feature supports the characters A through Z, a through z, 0 through 9 and a smattering of others including dash, dot and the at symbol. You are also told that Lovecraft, Inc wants to tell the users when they press the magic button if their login has characters outside the list. Do you:
- Block the software from saving any logins with characters that aren’t in the list as well as block the magic button if somehow someone manages to save something with “bad” characters?
- Get a second list that was being sent to Evil Third Party with a message to say “You told us your remote login worked with these characters and it totally doesn’t” and block only those characters from saving logins, but still block the magic button when the login has bad characters?
- Confuse both lists, fail to understand every attempt to clarify things, ask for reproduction steps when the tester tells you she can make the software save characters the DATABASE doesn’t understand, and then wonder why the tester is trying to put a head-shaped dent in her desk?
If you said number 3, congratulations. You are why I periodically harbor fantasies involving lining the streets with impaled programmers.
I gave myself a time out before I acted on said fantasies. Or asked said programmer if he was just trying to piss me off because I found some of the hidden places where everyone had missed a field size change and he didn’t like me pointing to lines in the code. (Three attempts later, he still hadn’t found the one missed size change I know is there. But he doesn’t want me “criticizing” his code, so he’s going to keep getting it back with “the field is still being truncated” until he works it out himself. His choice. I’d have simply said “here. This procedure, line 25. Change the declaration for this property to have a length of 99. Is there anywhere else that this thing could be hiding?”)
I started the code dives because this software is so convoluted changing something in one place is no guarantee you’ve actually done what you thought. After the fourth… fifth…. tenth time an issue bounces back because I’m seeing the same end result, I get irritated and so does the programmer.
Am I being so unreasonable here?
Stephanie Osborn liked this on Facebook.
Does letting him live count as you being unreasonable?
I am a software professional near retirement. I am not only much senior to him in experience, but also much smarter and much better educated.
I am delighted and grateful whenever anyone finds an error in my code–and for this I am due no kudos, for it is the attitude of any competent programmer.
You are not being unreasonable. His reluctance to have you point to or criticize his code marks him as an incompetent and a fool.
His boss should instruct him–once–to correct his attitude. If it does not evaporate like the morning haze by midday in midsummer in Southern California, then the firm will be better off without him.
My favorite: a bug that absolutely refused to die and error messages that wouldn’t display, no matter what surgery I did on the code.
The problem turned out to be the office manager, who had decided logging out and back in was too time-consuming (less than 10 seconds… I timed it!) and instructed the clerks to ignore my instructions.
When I figured out what was going on I walked through the office in a red haze, yanking power cables out of the backs of computers.
Funny, everything worked perfectly after the computers finished complaining about improper shutdowns…