in reply to Code re-use: productivity gains vs. skill deprecation

If the most effective method of improving your coding skills is to code, and the most effective way to increase productivity and software quality is to re-use code (i.e. not write it yourself), then can you improve skill and maintain productivity?

On the surface, the answer is Yes. Assuming that you're not close to 100% reuse, you'll still be writing code, and there are always opportunities to increase coding skill.

Let's raise this a level and ask a meta question:

Given a choice between increasing your coding skills while holding productivity constant, and increasing your productivity while holding coding skill constant, which would you choose and why?

This meta question is important, because it gets at whether you're answering the right question.

I approach this with two beliefs: First, that there is a point of diminishing returns on the coding skill curve. There is a place on the curve where you the effort one needs to apply to get better is effort traded off against other opportunities. (It might take several years to reach that place*.) Second, that coding skill is a means to and end, and not, tempting as it might be, an end to itself.

*See Peter Norvig's Teach Yourself Programming in Ten Years.

  • Comment on Re: Code re-use: productivity gains vs. skill deprecation

Replies are listed 'Best First'.
Re: Code re-use: productivity gains vs. skill deprecation
by Phemur (Beadle) on May 22, 2002 at 16:58 UTC
    That's a very interesting question you've asked. Here's my take on it.

    I think the answer is "it depends". At the beginning of your programming career, coding skill is essential, because if you have no skill, then you can't produce. As your coding skills increase, so does your productivity.

    Switching emphasis to productivity occurs once coding skills reach a level where, as you said, increased skill doesn't translate into increased productivity. And I think the real trick is determining what that level is. It's a combination of goal (for a given problem, how much skill is required, and when must the solution be available) and cost of improving your skills.

    I partially disagree that coding skill is simply a means to an end. Some people aren't programmers by trade. They do so for the pure pleasure of coding, in which case productivity isn't part of the equation. For the purpose of this discussion, I'm talking about professional programming, in which case you're absolutely right.

    Phemur