Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Initiative or otherwise?

by ignatz (Vicar)
on Jul 07, 2002 at 23:49 UTC ( [id://180041]=note: print w/replies, xml ) Need Help??


in reply to Initiative or otherwise?

Did you think Programmer B showed initiative but that Child B cheated?

Yes. The programmer's goal was to get the job done. The children's goal was to learn.

Who did the better job?

Programmer B did because he used his knowledge to improve on something that already was and saved lots of time in doing so. Child A did because he learnt how to solve a problem for himself as opposed to getting someone to do the work for him.

()-()
 \"/
  `                                                     

Replies are listed 'Best First'.
Re: Re: Initiative or otherwise?
by cjf (Parson) on Jul 08, 2002 at 01:13 UTC

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

    • Programmer A would have improved his programming skills more than Programmer B.
    • Programmer A would know his resulting code better than Programmer B would know his.
    • Programmer A's employer wouldn't have to worry about licensing issues.

    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.

      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.

      "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 :-).

      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."
Re^2: Initiative or otherwise?
by Aristotle (Chancellor) on Jul 08, 2002 at 02:00 UTC

    I don't know about the saved time part. He saved time for himself, sure. How did it make any difference on the end result? Both were done around the same time.

    Like cjf++ I also don't buy the notion that existing code is necessarily better than your own. Safe for CPAN, I have come to assume any Perl source on offer for download is likely to be awful, and so far practice has shown me only few exceptions to this rule.

    Makeshifts last the longest.

      The notion of time saved stems from the scenario of the original post. If the situation had begun at the beginning of the week, that would be time spent solving other issues important to the business. Any company that spends it's time solving things already solved will have a short lifespan.
      ()-()
       \"/
        `                                                     
      

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://180041]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-03-28 18:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found