Jack entered my office like Ghengis Khan (the attitude, not the
horse and robes), certain of his intent and certain in his manner. He shut the
door behind him.
“Hello,” I said. (Always greet your boss. It’s a best practice.)
“Hello,” he replied with his trademark mischievous greeting,
all intonation and accompanied by a smile. Jack smiled often, but with this
one, I knew something was up. The mischievous hello of his started high, dipped
down, then slid up again, and always ended in a smile. Whenever he did that,
you knew something was up.
“Brian has resigned.”
See, something was up.
“What?” came my involuntary reply. “Oh no!”
I meant it.
Brian was not just my boss, he was my mentor. He had already
taught me a lot about our line of work, I was still learning from him, and I
was looking forward to learning more. I had many questions, and I knew how to
use them. I was so eager to pick Brian’s brain I was like a neurophysiology
graduate student in the research phase. This was not good timing.
“This is not good timing,” I said involuntarily.
“It’s great timing,” Jack said matter-of-factly.
I tried, patiently, to explain to Mr. Khan that I was still
in the journeyman phase of my developer career, and that I needed Brian around
to see me through its next phases. I got nowhere. I’m not sure if I didn’t
succeed in making my case, or if Jack didn’t care; all I know is that I was
talking to a wall.
Then, Jack took a deep breath and said, “And I would like
you to take his place.”
The look of shock on my face was even more involuntary than
my words: “What? You have got to be kidding.”
“Not kidding at all,” he replied simply. “Dead serious.”
I sat back in my chair and stared at him. He waited.
“Think about it,” he finished, then opened the door and left.
I can’t remember what happened next, and I’m not sure it
matters. All I remember is that a pair of little critters popped out of nowhere
and landed on me, one on each shoulder, each arguing an opposing side of the
big question of whether this was a good idea.
Good idea: It constituted a promotion. It was an entry into
Management, my first. I was being invited—nay, recruited—into that Role of
Ubiquitous Advancement. Of course, I was not “trained” for it, but apparently
that didn’t matter. Apparently I had Earned Something. That felt pretty good.
But the devil (or was that an angel?) on the other shoulder
had a point, too.
Bad idea: Think of that little matter of still learning from
Brian—something that necessarily went away as soon as I started this gig. I did
not feel ready to make this jump; I still felt a need to learn more stuff, get
more skills, cover more ground, see more binary sights. I’m a guy who likes to
have overwhelming odds in my favor; who feels ignorant until he understands
every last detail of everything there is to know; who wouldn’t play craps with
loaded dice. Mastery was my way, and I was not there yet. How could I just move
Good idea: It surely meant a raise, probably even an
above-average one. Who can argue with that? More money means more taxes, of
course, but the .NET income—I mean the net income—would be higher too. Who
could argue with that?
Bad idea: Think of that little matter of how I got here, the
writing of code. I surely would be doing less of all of that than ever before,
maybe even a lot less. What would happen to those thermonuclear skills once I
started neglecting them? Wouldn’t they starve and wither and die? Wouldn’t my
developer brain turn into instant oatmeal? Wouldn’t I have to turn in my Answer
Man uniform for a pair of khakis and a certificate in Advanced Excel Pivot
Tabling? What then?
Good idea: I would have more control, more influence. I
could say, “Let’s do this!” and people would have to do it. I could captain a
ship. I could run the show. I could call the shots. I could walk with a swagger
and say things like, “I’ll have my people get right on that!”
Bad idea: What if this turns out to be an example of that
retched Peter Principle, which, euphemistically stated, says if you do good,
people will ask you to do something you don’t know how to do and hope you can
figure it out. To be fair, it was more than just code-writing that got me to
this point; it was design and big-picture thinking and a way with people, as
well. But it had taken me a lot of hard work to get where I was; I felt like I
was good at it; I had confidence. Wasn’t I about to walk away from all that
surety and enter a realm of something that almost could not be done? Wouldn’t I
just turn into a “Management Professional”—good at jerking people around but
lousy at making an actual contribution to society?
I think it was a foregone conclusion that I would take the
promotion, even as I pondered the goods and bads of it. I sat there behind my
desk, door open, staring into the wall of nothing, pondering, for most of the
rest of the day. This was no small dilemma for me. On the one hand, how could I
pass this up? On the other, what was I getting myself into?
That was more than six years ago. I now have the benefit of
time and hindsight, the screwdriver and pliers that come in handy in so many
situations. And I can tell you with great confidence that the benefits were
real, but so were the costs.
Let me tell you a little about the costs. There are two.
The first is skill rot. It has been a little over five years
since I spent any serious, concentrated time in code-writing tasks, and what
you don’t use, God takes away. And I use the term “code-writing” very broadly,
to include analysis, design, testing, deployment, and support, as well as the
act of writing code, so don’t get hung up on semantics. Could I pick it up
again if I had to? Sure.
But I am in a pretty sorry state. From where I sit, two
things have happened in five years time: .NET has overtaken the world, and my
developer brain has turned into instant oatmeal. There’s so much new stuff to
learn, it’s like I’m back in kindergarten. I’m pretty sure the entire Pacific Northwest was emptied of timber just to print the books on Recent Developments in
Windows Programming. The last time I had that kind of library need I was in
college, and it took me four and a half years to read all those books.
Which means, of course, that I’m now useless as a developer.
The Little Rascal in me wants to squeal that this ain’t
fair. Nobody has changed the fundamentals. A For loop is still a For loop;
object-orientation is still object-orientation; code readability is still good;
design still comes before construction; the wise still unit test. I could go
on, but you know what I’m talking about. They’ve tweaked cars over the last
five years, but cars still have four wheels and a dashboard. So I still know
how to drive, don’t I? I can figure out where the headlight-twisty-thing is,
can’t I? Just give me five minutes and a decent owner’s manual.
In other words, isn’t skill rot beside the point if you’re
basically curious, motivated, and relatively street smart?
Negative, Captain. Skill rot, whether real or imagined,
directly and uncontrollably leads to the second cost of making the move to
management: credibility rot.
All that counts today in the developer Animal House is .NET intoxication.
If you know .NET and can code for .NET and have experience writing .NET and can
sling the .NET mud and routinely go to .NET pep rallies and recite the .NET
creed and share your .NET faith and have .NET embroidery wall hangings in your
home and name your children .NET-something and eat .NET breakfast cereal, you
have got their attention, baby. And if you’ve got one of those four-letter
Certs, you’re a god. If you have not all of the above, you are a dipstick.
Before I get letters from Java priests, SAP monks, and COBOL
legends, get my point. My point is that fluency is king. You must be soaked and
leaking in the letters that most recently appeared on the cover of Dr. Dobbs
Journal (or is that passé too?), or you are credibility negative. You MUST
know it all. If not, you don’t exist.
For me, that sort of rot has been the cost of moving into
management. I went from expert to novice within a span of months, and the more
veteran I became at management, the more novice I became at software
engineering. I doubt that other people who have not experienced this type of
thing fully grasp (then or now) what was happening to me, but I grasped it fine
and dandy, yes I did. I had both eyes wide open and watched the whole thing in
High Definition. I knew it was coming, and I knew it was here, and I knew it
I’m not saying that I forgot my craft. As the cliché has it,
you never forget how to ride a bike. I didn’t forget how to design or write
code or to vet it for the streets. Nor did I forget the thrill of the hunt; to
find the bug and show it no mercy. And I certainly didn’t forget the thrill of
creation, which is, in my view, the highest human pursuit of all.
But I did surrender something real, and I do miss it.
That was a promotion?
I’ve heard that midlife, where I am most assuredly right
now, is inescapably a time of crisis. The crisis, as the legend has it, arises
as regret about the life you never had overwhelms you; the contributions you
didn’t make haunt you; the risks you didn’t take mock you in the form of others
who took them and now enjoy headliner success. It is not so much about mistakes
as it is about inaction. You are filled with regret, and to get even, you make
some choices that can only be explained by some irrational exuberance over the
possibility that if you only do something stupid, life will get better.
I’m sorry to report that I have had no such crisis. If it
truly is inevitable, I’m still waiting for it to start. I have no regrets, not
even the move into management, and despite the fact that it cost me more than I
was prepared to pay.
In case you’re wondering, it has nothing to do with a
cost/benefit ratio. I found that the benefits of moving into management (Side 2
of this record) are not that important.
It has to do with the sublimity of risk. Those Peter
Principle prophets have one thing wrong, and that is the imminent doom of the
world. No one is ever ready for the job they’re about to take, and all jobs are
jobs you’ve never done, at least to some degree. But that’s OK. Some work out
fabulously. Some work out so-so. Others don’t work out at all. You don’t know
what you’re going to get going into it. But that is why you do it.
I know that some seek out the management type of role. Maybe
they’re sick of writing code, or their mother wants a VP in the family. Shoot,
maybe they’re just in it for the money. For whatever reason, they want to leave their inner computer scientist behind. I tip my hat to them, because
they are taking a risk.
I also know that some developers who move into management
never lose their skills. They are gifted ones; they find a way to do both old
and new. I tip my hat to them, because exertion of that magnitude involves
So with the screwdriver and pliers of time and hindsight in
hand, I have learned something. I have learned that you will come to many crossroads,
and every crossroad will present you with a risk, whether small, medium, or
large. You will have to choose whether to embrace or forgo that risk. And yes,
you will have to consider the cost of taking it. Just don’t forget that risk
rot is one of them.