|Think about Loose Coupling|
What Kind Of Programmer Are You?by jcwren (Prior)
|on Feb 11, 2001 at 01:47 UTC||Need Help??|
I was talking with a friend/old employer of mine a couple of days ago, and he reminded me about an incident where someone misinterpeted some of my often dry, sarcastic (attempt at) humor.
While I never *really* believed that my code was flawless, I used to convey the attitude of "What?!? You think found a bug? What were you doing wrong?" Apparently, more than once, this was interpeted as severe arrogance on my part.
Now, truth be told, since I was writing device drivers and embedded code, I often was finding design flaws or limitations in the hardware. And I've always been willing to accomodate hardware changes in the code, since the code is much more malleable than physical hardware. More than one hardware engineer has been amazed when I would volunteer to add this or that in code, rather than adding hardware (apparently, the software engineers before me were notorious for being difficult about that kind of thing. Even flipping the polarity of an input required a one week conference, and much whining and gnashing of teeth.).
But, even so, I was being misread. Now, I'm normally not that difficult a guy to work with. I'm usually pretty quick to come up with a functional solution, and willing to change code right then and there to prove that some idea may work or not. And if I have to change a protocol to work with someone elses code (particularly if that person is slower to make changes), I'll change my end if at all possible, so we can get product out the door, and get paid (this didn't always work at Hayes Microcomputers)
These days, I still joke occasionally that "It can't possibly be my code, *I* wrote it", but I've found that it's much more effective to be self-depreciating about it. "You found a bug? Only 1? Are you even using this stuff?", things like that.
What have I found? That people accept that a lot more readibly. My experience has shown me that it's better to readily admit that it's your fault (even if it's not), show that it's not your code, or fix it in very short order, and develop a reputation as someone who can turn around a working fix in a matter of minutes (This was more my reputation at Hayes. "Let me get back to you tommorrow.", and come back in 30 minutes with a new build.)
Some might want to label such a learning experience as maturing. For that argument to work, one has to make a distinction between merely getting older, and getting more mature. I've met very mature 20 year olds, and very immature 45 year olds. So while perhaps it is maturing, it's in no way inherently linked to age.
So how do people perceive you? Are you someone willing to make a change, or do you claim it'll take three hours to fix a mispelled word on a menu (I worked with a guy like that). Do you immediately deny that it's your problem, or immediately offer to look in to it? Do you help out other people, just because it's an interesting problem, or if you're work is done, do you just sit and surf the 'net?