Sunday, September 13, 2009

The notion of the 10x developer

I've been doing some reflecting on things work-related during my time between jobs here, and something I heard the Java Posse guys talking about in a podcast of theirs. Someone was talking about the 10x developer - which comes from the notion that some developers are found to be 10 times more productive than the average developer. Maybe as far back as Mythical Man Month? I cannot remember...

Anyway, like all such things, people tend to wonder where they fall on that spectrum. I'd like to think I'm better than average, but I think it'd be incredibly arrogant to think I'm 10x better.

They were also talking about the differences between prima donna developers and 10x and the "no asshole" rule that some of them have during the hiring process. Now that I'm sitting on the other side of the table of the hiring process, I have no idea how you convey that you are definitely NOT an asshole/prima donna, but that you are also better than average, and definitely not a dud. :) Tough line to walk.

How to define asshole/prima donna? Who knows, but we've all worked with them, and know that working with one, even if they are, actually, better than average (and that's not often the case, I think), it can still be a very un-fun experience. And despite what might seem most natural, these are not always the first people fired/laid off.

And that comes around to my reflection on whether 10x developers - or even 2x developers - are ones to keep their jobs over others during layoffs - or even firings. My thinking is that they are not.

Why do I think that? Well, if the relationship between 2x-10x (let's call them Nx) developers vs. prima donnas doesn't really have any correlation, and maybe even possibly a negative correlation, the problem may be that the people making the decisions about hiring/firing/layoffs may not be AWARE of the accomplishments of the Nx developers, and instead, knows about the latest shiny object type of "accomplishment" from very bad to just so-so prima donnas - because they are always bragging so much.

Let me give some examples of where people were agog at what I view as just doing my job, maybe because I didn't go constantly running to management like some of the more needy prima donnas tend to do, they might not have been fully aware of things I may have done better than other programmers.

During an exit interview when I put in my two week notice, and was asked by a team lead on the way out - "how is it that you and that other developer seem to crank out projects so fast, and are able to add new enhancements/fix bugs so quickly?" I didn't really know how to answer that then, and I don't now. The short answer is that the team lead was maybe an average programmer - at best.

The longer answer is the stuff that keeps project management up at night, tends to generate lots of ink, as well as stumps people trying to hire good people for their team. If this stuff was something to be done by the numbers, well, we'd certainly have a different hiring process.

The other time was when I was at a company doing some EJB in the very early days. I mean, very early. If you don't remember that time, let's just say Eclipse didn't exist, and the tooling for things such as EJB was TERRIBLE. As in non-existent. Anyway, we figure we needed X amount of entity objects, and IIRC, there were 4 files you had to make for each one, combining the classes and interfaces. Well, we split up the work among about 4 developers. The team lead was off doing something else, or it would have been 5 of us. We gave an estimate (I know, bear with me - this is work that wouldn't even register on radar now, most likely) of at least a week. I started creating the first set that afternoon, then the second....then, said, heywaitaminute, doing this by hand is stupid. Sort of a Neal Ford sort of moment, if you will, long before I've heard of Neal Ford - and he probably wasn't writing/speaking back then, AFAIK.

Anyway, I created a Perl script and debugged it for 2 hours, put the table names in a file and had it crank out ALL of the classes/interfaces in about 2 hours. What we estimated as maybe 4 man-weeks took two hours, and we could move on.

Well, shortly after that, I was made principal, since the team lead DID recognize what a boost that was, and passed that on up. I won't flatter myself and think it was JUST because of that, it was also most likely because of my physical proximity to management at the time, but I don't think this particular achievement hurt, either.

My point being, if I didn't have a team lead that put in the good word, virtually no one would know about this achievement, least of all management. Now, I just consider what I did the "right thing" to do - if you find yourself doing something repetitive and boring - automate it if you can. But I've met programmers that are honestly baffled by an attitude such as that. That might be where the divide between the terrible-to-average programmers and the Nx programmers. The people I've worked with that I've looked up to/would work to emulate would have viewed the automation as the natural route, too.

On the other end of the spectrum, I've had a manager that liked to "manage by walking around". He stopped by my desk, asking what I was working on, and I was right smack dab in the middle of something very much like the automation story above. This was the sort of guy that really didn't get it, even though he did have enough tech experience to know what I was talking about, and it really wasn't one of those typical gaps in communications between techies and biz folks.

He's like "here, I've got something more important to work on for you...." in a very condescending way, and the message was very much one of, "hey, do your job". I humored him until he left, but later, that night (I was a contractor) I went back to the automation step, anyway. All I know is that this particular thing probably saved WEEKS worth of work, but I didn't really communicate that to this guy as he was the type that would punish people if they didn't do things in the way he thought they should be done, even if they ended up, ultimately, making him look good for coming in under budget and on time.

What's the moral of these stories? I'm not really sure. No one really likes a braggart, so it's hard to walk that line between: tooting your own horn about what you've done, and making sure management knows - and more importantly, UNDERSTANDS why it's important to the bottom line.....or just being a horse's ass.

No comments:

Post a Comment