Q: What's the second worse thing to tell an IT manager?
A: “I don't know.”
Wanna drive your boss nuts? The next time you are in the throes of trying to figure out why the hell your goddam code isn't working and your boss comes over and asks you when your feature will be done, just tell him the truth, which sorta goes something like this: “I don't know”.
Then, if you work in a typical corporation, prepare for the worst.
Corporations don't like, “I don't know”, even if it is the truth. For some reason the phrase is perceived as being tantamount to saying, “I am out of control.” This is weird to me. I mean, anybody who has coded anything for a while knows that there is a period of time, sometimes an extended period of time when you don't know what is going on. You think for a while, and if you're any good, you think for a long while. Then you sort of try this, then try that and then, after this period of not knowing, well... you know!-- which is usually about 30 minutes to 3 days before you deliver your feature. Thus, by saying, “I don't know”, you are saying that you are very much in control. From where I sit not telling the truth is a sign of being out of control.
Yet, except in very rare cases, have I met a corporate IT manager who can tolerate, let alone relish a developer saying, “I don't know”. Most would rather that you just tell him or her a date, any date, preferably one that fits into his or her bonus incented project plan.
I used to think that my experience was unique, that there was something about me that drove IT managers nuts when I said, “I don't know.” But having been coding, for better or worse, for over fifteen years, what I have come to understand is this: that one of the indicators of a dysfunctional organization is managers that can't deal with the phrase, “I don't know”.
The superstar tech managers are so on top of the code that he or she just knows when things will happen. The mere mortal variety of competent manager will ask, “what's stopping you from knowing?” The not so good just get mad. It's a sense of and a sensibility for knowing and finding the truth. The champs have it. The corporately challenged ask for dates.
I'll share something with you. I think that the dictum that says that a good IT manager does not need to know the technology of the group he is managing is horse shit. That's like saying that Tony La Russa doesn't need to know about baseball, Phil Jackson could be just as successful at GM as he was with the Lakers and that John Scully really was good for Apple. After all, he did well with PepsiCo, didn't he?
Yet sadly, I have come to discover that in the dysfunctional insanity of the Corporate State, there are more than a few people out there running IT coding groups or running people that run IT coding groups who couldn't tell a logical AND operator from an addition operator. (&&,+ in C# for those of you who might be interested in learning programming in the next 60 days). And, these are the people to which the Corporations give both millions of dollars to play with and imaginary deliverable dates that are usually made up to assuage the folks on The Street.
And the result is bad code that is expensive to produce, a nightmare to maintain and coding shops where the only joy in life shows up at 5 PM or when the code ships, whichever comes first.
(If I told you that I was in a group meeting a month ago, for an “important” project, with a insane deliverable date of 60 days hence, and I heard an upper, mid-level manager say, “I will learn programming if I have to to make this project succeed”, would you believe me?)
So here is what I propose, the next time your boss asks you when your feature will be done and you really don't know, try saying this:
“Well, I could pull a date out of the air, or I could do what the Guy who wrote Coding Slave suggests and tell you the following, 'If you have to ask, you'll never know.'”
You'll probably get fired or promoted; but no matter what, you will have stopped the insanity dead in its tracks.