Thursday, November 24, 2005

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.

Sunday, November 20, 2005

Q: What do IT managers and mothers have in common?

A: Telling either that the baby is ugly is a futility.

Well, I am doing consulting again: hired gun coder, take my mind for some money an hour.

I am four weeks into a project that has been going on for over a year. There has been lots of developer turnover. I am the eighth developer to touch the code. Of the four people on my team, nobody has worked the code base in its entirety. The project is due to ship in beta 1/1/2006.

It's an ASP.NET/C# solution under VS 2003.

The developers want to do good work. Nobody is going out of his or her way to make the code ugly. But it is. It's as if a group of well intentioned, community minded folks who knew little or nothing about the production of art decided that they wanted a mural made about a loosely defined theme but could not figure out which or how many artists to hire. So they hire a bunch and the mural becomes a hodgepodge of any artist's interpretation of the theme. Doesn't really work. I mean jeepers, a David or Rembrandt mural might have had many artists working on it. But, the artistic vision was unified under a Master. This a project is in need of a Master. Instead the patron is running the show and what do you get?

  • Marginally organized code base
  • Scrambled egg namespace organization
  • Haphazard version control using Visual Studio/Source Safe integration.
  • Lack of global architecture
  • No bug/issue management
  • Lack of feature lock
  • Development machine to production server deployment, no staging server
  • Imagining deliverable dates to assuage unreasonable deadline pressures

The list goes on....

And then toss the who Guy that wrote Coding Slave into the mix. Makes for a fun filled day.

Sorta feel bad in a way. At the beginning I tried to impose some beauty on the ugly baby by instigating broad, global changes. Turns out that my efforts were premature. The code base was too fragile for large scale change. I hurt more than I cured. As granny would say, “bad doctoring.”

Nonetheless I am still doing a honest hour's work for a fair wage. But part of me is mad at myself and at the world. I wonder, am I really doing any good? Can beauty happen while accepting ugliness? Or am I simply a self-deceiving accomplice in a Dance of Futility interested only in making some money to buy a meal?

Not that eating is bad, mind you.