Hacker News new | ask | show | jobs
by dusklight 5484 days ago
What this post shows me is that older developers are less willing to ask questions, less willing to admit when they don't know something, less willing to do anything to fix it.

My personal experience is that older developers just don't get it. They haven't kept up with the exponential increases in productivity that we have had in the last 5 years. Things that used to take 2 days 10 years ago can be done in 2 minutes now, but they are still used to thinking that they did it quickly if they finish it in 2 days, so that's how long it takes them to do it.

Also my personal experience is that older developers can't handle the asynchronous nature of modern communications very well. They always want to work on only one thing at a time and get confused/ much slower if they have to work on multiple things, whereas younger developers will happily be able to switch in between tasks while waiting for the previous task to finish compiling/running without problems.

4 comments

They always want to work on only one thing at a time and get confused/ much slower if they have to work on multiple things

This is the case with everyone. Multitasking negatively affects overall performance. There are many studies that confirm that. If some developers avoid it, maybe it means they are better at evaluating their own productivity?

So how old are you? Do you have any coworkers below 25? How well do they do with multitasking? Better than you?

Twitter, text messages and facebook have trained our minds to work differently. Have you been keeping up?

> Twitter, text messages and facebook have trained our minds to work differently. Have you been keeping up?

Have you?

> In a much-cited 2009 paper* in Proceedings of the National Academy of Sciences, for example, Stanford's Eyal Ophir, Clifford Nass, and Anthony D. Wagner show that heavy media multitaskers demonstrate significantly less cognitive control than light multitaskers. The heavy multitaskers "have greater difficulty filtering out irrelevant stimuli from their environment" and are also less able to suppress irrelevant memories from intruding on their work. The heavy multitaskers were actually less efficient at switching between tasks - in other words, they were worse at multitasking.

* http://memorylab.stanford.edu/Publications/papers/OPH_PNAS09...

If you read the details of that paper, they are really not relevant to what I mean.

Let me be more specific.

So when I talk about the asynchronous nature twitter/texting/facebook what I mean is that there are people now (usually young people) who are comfortable with carrying out multiple conversations with different people/groups of people that occur at different rates of time. I am not suggesting that someone who is frequently using twitter/texting/facebook while at work would be more productive than someone who doesn't, but that this experience helps them be able to manage multiple workflows better.

From my own experience, when I talk about multi-tasking as far as it relates to a developer anyway, let me give you an example of something that I can do all the time: I get assigned a bug, I look at the bug board to see what other similar or related bugs there might be, and I assign them to me. Usually this means that some or all of the steps to reproduce the bug are the same, so that if I have to step into the debugger to identify the problem I can set breakpoints in places that should help me figure out more than one bug at a time. In the middle of this, a co-worker sends me an instant message asking for something. I don't immediately know the answer, but I know the general area of the code to look for the answer, so I dig around for a few minutes and then either reply with what was asked or a "I don't know but xyz worked with that code and might be able to help you better." Then I go back to my debugging. I find the bug, or I find a clue that will lead me to the bug, and I write some code, deploy it on the test server, and start a test, which I know will take 20 minutes or so. In the meantime I might reply to some e-mail, do some code review to see what might be refactored to be more readable and/or maintainable, or work on another set of bugs. Then when the earlier test completes I go back to check on it. I might not immediately go back to it after 20 minutes depending on where I am with my other tasks, I would probably find a good natural stopping point first, but the point is at the end of the day I am able to finish all these tasks much faster than if I did them one at a time sequentially.

I don't think what I just described takes particular mental prowess and most of the younger people at my work (and a few of the older ones too) do the same as well. But there are enough older workers who just get hopelessly lost if you ask them to do more than one thing at a time, whereas if I ask a younger co-worker to do the same thing they have no problems, that I have noticed it.

Its an interesting claim. You could contribute positively to the discussion by providing some sort of experiement to test it.

Would it be fair to say you believe that your high level of interaction with various social media sites and technologies has 'trained' your mind's agility? If so, several useful questions arise which I'd love to know answers too;

1) Can you produce more lines of production code over unit time?

If you use a source repository you might be able to analyze this by check-ins. I suspect a large open source project like KDE or Hadoop etc where you could correlate 'agility' of committer with the commits could shed some light here.

2) Do the designs and implementations produced have similar, better, or worse levels of qualities than designs and implementations done by 'less agile' developers?

I'd probably track bug reports and rewrites against lines of code committed.

3) Does the scale of problem change the effectiveness ratio? Which is to say if you're coding/designing/implementing at the top level of a big project vs at the fringe, does the difference between people trained with social media exposure continue?

Bascially correlating the above two data points across all levels of the code and design.

I think it's an open question how to measure developer productivity objectively. I don't think we really have a good way to answer this question right now, but definitely lines of code checked in is one of the worst. Checking in a 1k line class file with lots of dependencies that easily breaks when other code is changed, using a slow algorithm, with lots of difficult to follow code, would not be more productive than a 10 line method that performs the same functionality.

But I see where you are going there.

I mean come on, if you are comparing a fresh out-of-school graduate with someone with 10 years experience I think most people will agree that the older guy in this case will be more productive. There are things you need to know about working with a large code base that can't be taught by school but can only be learnt with experience.

When I say "older" developer, I mean the 40-50 year old who probably was a really good developer 10 years ago, got a steady, cushy job, with a salary that he/she is more than happy with, and stopped learning because he didn't need to anymore.

I know a lot of exceptions to the rule. The older programmer who got into it because he loves to code, who stayed in it because he loves to code, he keeps up with the times and continues to be relevant. The older programmer who just wants to make a buck and go home to his family? He fell behind a long time ago and doesn't want to catch up.

"When I say "older" developer, I mean the 40-50 year old who probably was a really good developer 10 years ago, got a steady, cushy job, with a salary that he/she is more than happy with, and stopped learning because he didn't need to anymore."

Which I'd agree with, but that eviscerates your thesis about the new mind training regimen does it not? After all the learning engaged developer missed out on the training you got from social media.

I think everyone here knows 'bad' developers, I was astonished at the number of people who I knew responded to the question "Why computer science?" with "I hear it pays well."[1] I suspect those folks stop being developers as quickly as they can and move into management (since it has a higher pay cap). So whether you are 20 something and programming by 'cut-n-paste' or 40 something and 'retired-in-grade'

It's wrong to generalize, and it's often a prelude to discrimination to generalize an opinion based on race, color. religion, sex, or age.

I'd love to get better tools and insights into developer productivity. I think it could be a useful differentiating factor on a source code control system.

[1] This contrasts with the people who respond "What? They'll pay me to do this? Cool."

In reference to your comment on discrimination.

http://www.paulgraham.com/say.html

Reading my original post, I think you are right I should have qualified myself better. I was just really upset by the tone of the OP. IMO the reason why many older developers are worse than younger developers is because they THINK they are better than the younger developers. They don't have the hunger to improve themselves anymore, and so they don't.

In my case, they've helped to destroy my ability to focus (or provided interruption and excuses not to develop it)
"They always want to work on only one thing at a time and get confused/ much slower if they have to work on multiple things, whereas younger developers will happily be able to switch in between tasks while waiting for the previous task to finish compiling/running without problems."

The younger developers get confused/much slower when they work on multiple things, too, they just don't realize it. I'm pretty sure there is experimental data showing that everyone performs worse when they switch tasks often.

I actually just watched The Social Network for the first time a couple of nights ago, and one of the things I appreciated most about the movie is how they would yell at people who tried to interrupt someone who was coding with a question ("Don't interrupt Chris, he's in the zone!"). I suspect that attitude had a lot to do with the productivity needed to get Facebook off the ground, and they were certainly all young people.

(Or maybe the writers of The Social Network just made it all up.)

When I set to write that post I was trying to base it on some real data, not personal experience.
Your layout is nearly illegible in Google Chrome on Ubuntu 11.04. The "sky and clouds" background image + light blue text... why? Am I doing wrong? Did I miss something?
I have Google Chrome 10 on OSX and everything is fine. I won't say great, but fine. And the background is snow. Text is grey.
http://i.imgur.com/NDKrT.jpg is how it looks from here. Really not trying to be a dick, but that's illegible.

edit: Disregard, your background image http://blogblog.com/1kt/travel/bg_black_70.png is blocked by firewall @ work.

They haven't kept up with the exponential increases in productivity that we have had in the last 5 years.

I would love to know where you've seen exponential increases in productivity in the last five years. In my experience, developer technology has been largely chasing its own tail for quite some time. Productivity improves dramatically on individual, emerging platforms, but seems little changed in a wider, overall view.