Sponsored Link •
It's good for everyone.
Some little while ago I was talking with a technical type person. This unfortunate soul has decided that he wants to be on the management track. While I respect everyone's right to do what they want so long as they don't hurt anyone else it's been my experience that managers, at least development managers, have a hard time not hurting anyone else. However that's not really the point here. (Note to self: You will now never be hired at a traditional company again. Might just as well put up drunken, naked photos on myspace and try to be an elementary school teacher.)
The folks were I work are pretty remarkable. At least in my experience. While the skill level per capita has probably gone down over the years it is the case that I haven't had to deal with anyone who wasn't, in my estimation, at least competent. Which, if you've been around for a while, know is not always the case when a company get's above a certain size (seems to be around 100 or so). Regardless, I do tend to brag about both the people I work with as well as the culture (I'm really sorry for using that word) I work in. You know, "everyone is smart", "I can go anywhere I want in the codebase", "no, really, I could not tell you who I report to". Like that. Maybe you don't.
Anyway, this sort of caused this poor soul on the path of good intentions to talk about his ideal person to have working for him. One of the these ideal traits was "head down. Doesn't complain". Ok two traits. I stopped him at that point and asked for a some clarification. What does "doesn't complain" mean? This means, apparently, overcomes the inevitable obstacles and "just gets it done".
I have to say, I think this sort of person makes just an awful developer. Given my choice between a complainer and a just-get-it-doner, I'd totally rather have a complaining-get-it-doner (Yes, I cheated a bit there). It's my opinion that pretty much all software sucks or will come to suck soon. I mean at the code level. It's too complicated, or obscure, or slow or whatever. Not through the fault of anyone mind you. It just happens, even to the smartest, bestest developers I've ever developed with. How could it not? You've got 15 things in your head and the consumer of the chunk of code you've just written is one of them. But still it's pretty hard, for me at least, to not infect the consumable bits of the code with my understanding of the implementation. You know, it'll-never-be-a-null-argument syndrome or it's-obvious-what-this-does-itis. You know.
So when I jam these gems of suckitude into the codebase, and believe me I do, I really, really want to know about it. Except for the embarrasment, I totally don't mind dealing with someone, anyone, telling me that such and so could be easier. Or asking my how come a null is allowed but gives weird results. (I've even had someone come up to me and say something like, ""Hey, that thing you did?" which evoked my eloquent "Yah?" leading to the entirely succinct, "It's pretty stupid". No kidding, I don't think work ever gets better than that.) And I don't mind dealing with whatever code changes this might entail despite the loud cursing of my own limitations. How else am I going to get better?
What I don't want is to deal with the hacks, jumped-through-hoops and let-me-justs that a get-it-doner seems to inevitably arrive at. "Oh, this argument can't be null? Let me just initialize this to an empty string". Later I, of course, decide that a null argument is allowed and I make it such that null means something different than the empty string. Run my handy-dandy unit tests. Pass. Checkin. Wham, I just broke 2 thousand tests I didn't even think to run and now have no idea why they broke. Which means spelunking into a place, at a time, I didn't plan on. All because someone didn't whine a simple, even gentle, "hey, this isn't right" whine.
Whining, sometimes called complaining, is a skill worth cultivating I think. Being whined to is also a worthy talent. If you are working for a manager I'd even go so far to say (sorry and) that if said manager prefers just-get-it-doners you might be not be in the best of places to write your best code. See remarkable above.
|Rick Kitts has been making a living writing software for a little while. He's started a company or two, worked at bigger companies, but mostly at startups. Constantly on the look out for things to help him build better systems he's a bit of a tool and process slut, though he can't bring himself to try C# or get serious about UML. Go figure. He's convinced being invited to have a weblog on Artima is the result of some glitch in the matrix. He's keeping quiet about it though.|