I have worked at places where I've been in the elite, and I've worked at places where I've been in the middle, and on occasion I even qualify as a Waste Of Space for a month or two. There are several factors that influence how productive I am, personally.
First, the fewer developers the better. This is more than just being a big fish in a little pond, it's about feeling responsible for the code. If I'm in a group of 20, my contribution doesn't matter as much as if I'm in a group of four, so I simply don't care as much.
Second, distractions must be minimized. I enjoy helping people and answering questions, but they really cut into my concentration. Unfortunately it's rude to ask people to use email instead of popping over for a visit or sending an instant message. Also, if I'm in an environment where I have meetings every day, scheduled such that they break my time up into hour-long chunks, then my attention is guaranteed to wander. For this reason, I tend to work best at night.
Third, history and familiarity with the code is very important. In code I've written and/or rewritten, I'm extremely productive. In code that I'm unfamiliar with, I'm not. It also helps a lot if the person who *did* write the code is willing to take the time to answer questions, without getting irritated. I also find that different people write the same program in vastly different ways, and if you're working on a codebase that was architected very differently from the way you would have done it, it can be difficult to ever get comfortable.
Fourth, management is important. For example, I need to feel just enough time-pressure to make me pay attention, but not so much that I give up in despair. I also need to get feedback as to how my work is perceived by users (did it suck? did it rock?) otherwise my work starts to seem pointless and I lose motivation.
Fifth, I find that as time goes on, my productivity does *not* improve noticeably. For the first three or four years it improved dramatically, but since then I seem to have plateaued. I currently have eight years of professional programming experience.
On the whole I agree with Uncle Bob, but I also agree that lifes not always as it seems. I have been to a number of companies and looked at code that has made me go weak at the knees. In my rooky days I would even express my distaste openly. This got me into trouble when a senior developer pulled me across to the side and told me to shut it. His basic argument was simple: they had been forced to hack away at what they were doing because of other incompetences - not directly related to the software development. It is this I still hang on to whenever I look at code.
However, another part of me says that if you are forced to make a hack, then you at least do it such that it adheres to good software principles. Maybe I first assertion was right afterall.
> Mind you, those were 2 90 hour weeks. So you're > asking me to believe you produced almost eighty lines > of debugged code per hour? Hmmm. It would be impolite > to call you a liar, so you are clearly among the world's > elite.
Gulp! I think I'm not able even to *understand* eighty lines of code in one hour. I feel I'm a dork...
From a pure managerial perspective: Even if they are only ten percent as productive, a billion Indians and Chinese are going to get more done than you internet-addicted pocket-protectors ever did. Now get back to work.
In my home town, 90% of the drivers think they are the best, yet my town has been nominated (Discover Channel) for having the worst drivers in the world (which is true). I think the same mentality applies to programmers in general.
Flat View: This topic has 19 replies
on 2 pages