http://qs321.pair.com?node_id=180053


in reply to Re: Initiative or otherwise?
in thread Initiative or otherwise?

Assuming Programmer A and Programmer B are equally skilled to begin with, the situation following the project would be as follows:

The argument in favor of Programmer B is based on the myth that existing code is somehow superior to your own. This is a very dangerous assumption, look no further than MSA for examples.

Replies are listed 'Best First'.
Re: Re: Re: Initiative or otherwise?
by ignatz (Vicar) on Jul 08, 2002 at 02:09 UTC
    Your arguement ignores the power of open source software. Yes, it is true that Person A has built code that he understands better than the code that person B has modified, but that is only true for the person who has authored the code, not for anyone looking at or using it in the future.

    By reusing/improving upon something that already exists, Person B has a code base tested by users from around the world. By contributing back to the code base he insures that his code changes will get also get that testing. Since his code ties into the open source commons, his company can now leverage the communities knowledge base and as the codes tree matures, gives them access to free upgrades in the future.

    If a programmer brought to me a library that duplicated something that I knew already existed in open source, I would ask him why I am paying him to reinvent the wheel. Such an activity may be interesting for the programmer, but it is pure folly from a business perspective.

    Yes, it is true that there are times when the solutions available are weak and a good programmer can do it better, but such times are rare, and need to be carefully considered before the path is embarked upon. A solution to things already considered is a fragile flower with little chance of survival even when built by the best of programmers.

    We all stand on the shoulder's of giants. What better than to help everyone get a little higher?

    ()-()
     \"/
      `                                                     
    
      Person B has a code base tested by users from around the world

      How do you know this? How do you know you're not the first person to ever run it? How do you know the author hasn't completely ignored all patches sent his way? Just because the code exists doesn't mean it has been thoroughly tested.

      By contributing back to the code base he insures that his code changes will get also get that testing.

      What if management won't let him release the source? What if the project is not open source?

      Such an activity may be interesting for the programmer, but it is pure folly from a business perspective.

      Is allowing your employees to spend time improving their skills "pure folly?" I think not.

      When using existing code you have to take into account licensing, quality, and maintenance considerations. Same as if you wrote the code yourself. The same rules apply. Blindly trusting a piece of software because the source is available is very dangerous.

        >> tested by users from around the world
        > How do you know this?

        I think that it is safe to assume that code created from scratch that noone else has seen has had less viewing and use that code freely available off of the internet. A programmer that does not test any code that he writes or uses is a fool. If proper testing does not exist, write it, and post it for others to take advantage of.

        > How do you know the author hasn't completely ignored
        > all patches sent his way?

        I don't. Such things are a shame, but do not detract from the usefullness of the code for the situation at hand.

        > What if management won't let him release the source?

        The programmer needs to talk it out with management. They like saving money, and it they don't than hey, no harm, no foul. Things are always flexible. Apple is doing a pretty good job of being an open-source contributor at the same time as they use that foundation to sell commercial software.

        > Is allowing your employees to spend time improving
        > their skills "pure folly?"

        There are other ways to improve ones skills that writing yet another thing that does something that already exists. I think that one learns a heck of a lot by working within the confines of a larger whole: Teamwork.... managing and understanding large codebases... writing code that MUST play well with others. Tell me, who learns more: The guy who writes yet another 0.0.1a templating system, or the guy who makes a solid contribution to Axkit?

        UPDATE: fixed a typo.

        ()-()
         \"/
          `                                                     
        
(jeffa) 3Re: Initiative or otherwise?
by jeffa (Bishop) on Jul 08, 2002 at 03:32 UTC
    "The argument in favor of Programmer B is based on the myth that existing code is somehow superior to your own..."

    Well, i don't necessarily disagree with that, but .. "The program is required for a demo Tuesday."

    So sure, A will have improved some kind of skill - but there is an equal chance that that that skill will be thrown away with the demo. Besides, how can one say that B doesn't already have that skill and realizes that her/his time would be better spent with the family?

    Say that the program is not for a demo - well, any serious application is going to need more than a weekend to just hack together. Shops that don't realize this are doomed to spend endless hours debugging and recoding mistakes that could have been avoided by proper research and design - proper skills that i'll bet that B is familiar with. ;)

    But, we have digressed away from the original question, which was basically what is the difference between cheating in school and using existing code on the job. I'd tell you my opinion on this, but i would just be repeating what MeowChow has already excellently said.

    Update re: reply:
    I only said that because i speak from experience. I have written demo's that were never used and i have not completely forgotten any learned skills - but i didn't waste my time by re-inventing wheels that would end up in /dev/null either. ;) (that that that ... gotta work on my grammar). Oh, and give yourself a year - you will forget more than you credit yourself for remembering. I know i sure ... what's that word?

    jeffa

    "I drank what?"
    --Socrates
      Besides, how can one say that B doesn't already have that skill and realizes that her/his time would be better spent with the family?
      What's the point of comparing programmer A and B if we have to assume that programmer B enters the arena with much greater skill than programmer A?

      Makeshifts last the longest.

      there is an equal chance that that that skill will be thrown away with the demo

      Last I checked when I delete some code I don't suddenly forget everything I learned writing it :-).

Re: Re: Re: Initiative or otherwise?
by shotgunefx (Parson) on Jul 08, 2002 at 10:27 UTC
    As far as your first point, maybe. Some tasks are just linear. Many jobs I've done are equivalent to manual labor. Doing more or less the same thing over and over. These types of jobs don't expand your horizons much. As far as licensing issues, unless the results are going to be available to the public in some form, I suspect most people don't even read the license.

    That being said, I'm more or less a Type A.

    -Lee

    "To be civilized is to deny one's nature."